The Takeaway: Automation adds value to your DevOps/SDLC process and can be a large part of your project’s success in the marketplace.
I feel that management theory is not only necessary for understanding a individual’s place on a team, a team’s place in an organization, and an organization’s place in the market. Not only that, but I like reading and talking management theory.
While I do recommend Michael Porter’s Competitive Strategy and Competitive Advantage to anyone wanting to know how to better understand how businesses compete in the market or how their business affects and is affected by internal and external forces, I also understand these books are a bit hard to read through with understanding.
“…strategically relevant activities [disaggregated] in order to understand the behavior of costs and the existing and potential sources of differentiation.” (Porter, Competitive Advantage, p. 33).
The way you stay in business is by doing things either cheaper and/or better than its competition. Once you separate and examine each individual activity in your collection of activities performed to design, produce, market, deliver, and support the thing you make, you start to gain an understanding of where the resources go. Where do we spend time that we can cut out? Where do we spending money that makes our product better than our competitors’? This is the (basic) idea behind the aglie manifesto, right? Cut out the things that cost time and money unnecessarily
- processes and tools
- comprehensive documentation
- over contract negotiation
- following a plan,
and focus on the valuable things
- individuals and interactions
- working software
- customer collaboration
- responding to change.
Focus resources on the things that matter, and you’re a step ahead of competitors that don’t.
Value Activities + Margin = Value Chain
The total Value Chain is comprised of Value Activities and Margin:
“…physically and technologically distinct activities a firm performs… building blocks by which a firm creates a product valuable to its buyers…” (Porter, Competitive Advantage, p. 38).
There are Primary and Secondary (Support) activities. We’ll focus on support just to keep things simple.
The typical primary value activities do not apply across all industries equally. Manufacturing, for example, relies much more heavily on inbound and outbound logistics than software development, for example. For our purposes, I’ll rely on a classical approach to software value chains provided by Boehm and Papaccio (1987, NTRS), and state that the majority of software development falls under the Operations and Service value activities.
Operations: Transforming inputs into the final product form (requirements into an application)
Service: Providing service to enhance and maintain the product’s value
“…the difference between total value and collective cost of performing the value activities…”(Porter, Competitive Advantage, p. 38).
Margin depends upon the efforts placed in the value chain that add value to a product over and above the costs incurred in the value activities.
What Automation has to Do With The Value Chain
The good news for automation engineers, is that automation can be a crucial part of the value chain. For any task that can be automated effectively, the cost of that activity decreases significantly. For testing, as an example, instead of using three resources for a week to regression test your application, you can do it overnight, and view the results the next morning. Certainly, there are resources required to develop and maintain the regression testing suite, where the value obtained form those efforts starts small, but will increase over time. However, proper planning and execution can help ensure that value is delivered as quick as possible.
Additionally, automation is helpful in the detection, reporting, and verification of defects. A system defect drives down the “worthwhile-ness” of any product. Good automation efforts discover defects before your customers do, and can, if executed correctly, discover them before manual testing efforts.
The important thing is to start thinking of any repeated task as something that can be automated. Not every repeatable task should be automated, so discernment is required in order to ensure that the right things are automated. But, progression of automation efforts has been shown to increase the value of the activities you perform in your software development life cycle.
As we continue this series, we’ll delve further into aspects of automation that help deliver value over its costs, how you can implement automation to achieve these goals, and what to look for in order to be successful with software automation.