To paraphrase Kent Beck: software delivers no value apart from runtime. Ideas
take physical form in hardware, virtualized only part of the way down, and
someone other than the developers makes the ideas manifest. So then: ops
folks are the crop's caretakers; developers design the seeds.
Well, of course this isn't true. Developers don't turn pie-in-the-sky math
into socially constructive math that sysadmins then make useful. No:
developers write code that makes things happen. We care about runtime just as
much as ops, so we need to know how our software is helping people in
reality-and how it can do a better job-in order for us to refine both the
ideas and the implementation.
So cycle-time shortening-the metric of continuous delivery, and one of the
Twelve Principles of Agile Software-is equally about users and makers.
Working software delivered sooner is better for ... (more)
Technical decisions around data persistence are hard, which is why we
surveyed 583 IT professionals on everything from current DBMS and ORM usage
to modern database engines' data structures and access patterns to storing
data on a mobile device.
The demographics of this survey are as follows:
69% of these respondents use Java as their primary programming language at
work. 68% develop primarily web applications. 66% have been IT professionals
for over 10 years. 45% work at companies whose headquarters are located in
Europe, 27% in the USA. 44% work at companies with more than 500 ... (more)
Fail fast, fail often. Yeah, but the first failure blew up the
satellite. Well, this is just a photo-sharing app..not rocket science. Okay,
but your photos are accessed by users who have passwords that they probably
use for other things..and aren't some photos as important as satellites?
Several problems arise when the harm of software failure cannot be treated as
an unbound variable. Here are some thoughts on two. I'll write more on two
more (one cognitive, one computational) later.
Problem 1: Identity Persists Across Non-Obviously Coupled Systems (So the
Stakes Are Higher Than ... (more)
Cloud technologies have been gaining traction for some time now. Increases in
connectivity throughout the computing world with the creation of more and
more connected devices, including mobile and IoT technologies, as well as
more and more connected applications on those devices, means cloud computing
adoption is ever-increasing. Expectations regarding an application's
availability are high, and solutions continue to emerge to increase
availability and make scaling applications easier when a user load gets too
New patterns, platforms, services, and software are pushing appl... (more)
If the cloud was once (ever) bleeding edge, now the cloud is sheer necessity
for anyone doing anything on the Internet. It has changed the way we
architect applications, build IT budgets, grow userbases, even write
individual lines of code. As the Internet continues to lambdify, cloud
services will become more specialized; but for now, how can you take
advantage of the granularity, elasticity and pre-baked-ness of modern cloud
services? And, on the flip side, as your applications expand outside
blade-boxes and even beyond individual data centers, how do you design
applications ... (more)