Improving software delivery performance

Your organization delivers software, so it should be obvious that improving your software delivery means improving your organization. But how to improve your software delivery organization? I’m going to tell you how, and you’ll be amazed at its simplicity: To improve an organization’s performance you need to improve all the components of the organization. And, you need to know how to improve each component. An organization is made of… An organization is composed of people, process, and artifacts. ...

August 28, 2015 · 4 min · shlomo

Habits: The Essence and the Goal of DevOps

Or, The Seven Habits of Highly Effective DevOps. You may have heard that the goal of DevOps is to rapidly deliver and reliably operate high quality software-based services. But that is only partially true. True, that is the desired result. But fostering the habits that produce that result consistently is integral to the goal. Habits foster results. The goal is both. In my work with clients I have found several cornerstone habits essential to creating DevOps results, and I have helped software organizations embrace these habits and earn the payoffs. Let’s explore the cornerstone DevOps habits and why these habits are as much a goal as the results they promote. ...

November 5, 2014 · 12 min · shlomo

The four pillars of cloud computing success

Succeeding with cloud computing requires incorporating your organization’s unique economic, cultural, risk, and technological considerations. Success with cloud computing means adopting more than just technology change. It requires addressing the elements that make your organization unique: how you work, the risks you’re prepared to take, and the market in which you sell. Even a tailor with all the right supplies - several yards of fabric, a sewing machine, and an iron - needs to craft a garment that looks good, is of high quality, and is done in an efficient manner. Here are the key ways to incorporate your organization’s economic, cultural, and risk factors into your adoption of cloud computing and accelerate your success. ...

August 26, 2013 · 3 min · shlomo

Wanted: Change. Generous Reward.

Simon Wardley recently satirized the typical response of corporate IT departments to technology change as follows: Ignore, ignore, ignore, “no”, “no”, “I said ’no,’ dammit”, “Oh no”, “Oh, f**k”. It reminds me of the classic Toys-R-Us TV commercial from the 1980s featuring children singing about not wanting to grow up. Resistance to change is not unique to children or to IT departments - it is a feature of every organization. How can you help your organization avoid being stuck, and instead drive change before it’s unnecessarily painful to “grow up”? The key is urgency. Growing up is a good metaphor for organizational change: both are normal, both feature resistance, and in both the stakes increase over time. Immature people, like immature organizations, do not reliably achieve their goals. And the longer that inertia dominates, the further behind they remain. Failure to adapt - getting stuck - can be fatal, as it was for the Eastman Kodak Company. In personal as in organizational growth the pressure to change - the urgency - is fostered by discomfort. To increase urgency you need to cause people to feel discomfort with the current state of affairs. John P. Kotter’s seminal work Leading Change offers several kinds of tactics to increase urgency: ...

July 25, 2012 · 2 min · shlomo

Developing Means Delivering

An informal survey of my application developer friends revealed four main types of motivations driving developers. These four types of motivations are represented in this diagram: Individual developers can be motivated more or less altruistically. Individual developers can also be focused on the external manifestations of success - such as appreciative customers - or on the internal manifestations - such as more power or money. The diagram above is not a judgement of “better” or “worse” motivations - it is simply meant to capture two personality factors and their expression among individual developers. Also note that developers may have different motivations at different times, or even simultaneously in combination. ...

July 17, 2012 · 2 min · shlomo

Software Delivery Operations

Like companies producing any kind of offering, software companies require three elements in order to successfully deliver: knowing what to build, knowing how to build it, and knowing how to deliver it to the customer. When each of these three functions - research, engineering, and delivery - does its job independently, you get slow progress and uninspired, sub-par products. But when all three functions work together in a customer-centric fashion, you get excellence - in implementation, innovation - in concept, and world-class results - by delivering those two to the customer. ...

July 16, 2012 · 3 min · shlomo

The missing layer

Traditional descriptions of cloud computing and the various cloud operating models - IaaS, PaaS, SaaS - focus on the locus of responsibility for various layers of the system: facilities, network, storage, servers, etc. But these descriptions typically omit a critical element. Can you spot it in the diagram below? The missing layer is the only layer that really matters - the customer. Ensuring that your application can actually be consumed - that delivery can be successful - is a critical part of providing your value. Your application’s facilities, network, and storage may be running properly, but will your customers actually benefit? Without a properly staffed, trained, equipped, and managed operations team, your service won’t last long enough for customers to care. If your customer is important, then so is your operations team. ...

July 12, 2012 · 2 min · shlomo