Nowadays, companies from all industries are turning into software companies. The pressure is high, and companies are trying to be as competitive as possible to meet it. And the key to success as a software company is continuous delivery.
Technology and software development are key elements to deliver value to customers and stakeholders as they help increase process velocity. However, they cannot deliver value by themselves… something more is required.
DevOps is a very good approach to improve value delivery through software development.
These are some metrics from companies that implemented DevOps and are considered as High Performers during 2017*
- 46 times more frequent code deployments (multiple deployments per day)
- 440 times faster lead time from commit to deploy (less than 1 hour)
- 96 times faster mean time to recover from downtime (less than 1 hour
- 5 times lower change failure rate (0-15%)
- Taken from State of Devops Report, by Puppet
High Performance companies have the best benchmarking, but it works even better when comparing with other categories. According to a 2 year study mentioned on the Accelerate book, these are numbers from 3 different categories:
2017 | High Performers | Medium Performers | Low Performers |
Deployment Frequency | On demand (multiple deploys per day) | Between once per week and once per month | Between once per week and once per month* |
Lead Time for Changes | Less than 1 hour | Between one week and one month | Between one week and one month* |
Mean time to recover | Less than 1 hour | Less than 1 day | Between 1 day and 1 week |
Change failure rate | 0-15% | 0-15% | 31-45% |
*Low performers were lower on average but had the same median as the medium performers.
The secret formula these high-performance companies used to differentiate from Medium and Low Performers was the effective synergy between Devops and Lean UX principles to develop a DevOps culture within the organization.
Organizational Culture
According Torben Rick “Organizational culture refers to the philosophies, attitudes, beliefs, behaviors and practices that define an organization”.
Ron Westrum, Sociologist Professor at Eastern Michigan University has defined a typology with 3 different culture models:
- Pathological (power oriented): Everything is done because of fear and threats. There’s a lack of transparency on what employees say and do.
- Bureaucratic (rule oriented): Employees protect their departments within the company; everyone follow the rules of their own department; no cooperation exists.
- Generative (performance oriented): The whole company is united and focused on the final mission and the goals.
Westrum also shows how information flows through the company and provides three characteristics of good information:
- It provides answers to the questions that the receiver needs answered.
- It is timely.
- It is presented in such a way that it can be effectively used by the receiver.
Now, let’s see how organizations from different cultures process information:
Pathological | Bureaucratic | Generative |
Power oriented | Rule oriented | Performance oriented |
Low cooperation | Moderate cooperation | High cooperation |
Messengers despised | Messengers neglected | Messengers trained |
Responsibilities shirked | Narrow responsibilities | Risks are shared |
Inter Departmental Bridging discouraged | Inter Departmental Bridging tolerated | Inter Departmental Bridging encouraged |
Failure leads to scapegoating | Failure leads to justice | Failure leads to inquiry |
Novelty crushed | Novelty leads to problems | Novelty implemented |
Trust and cooperation between people are required across the organization for information to flow, but according to Westrum’s theory these are some key benefits:
● An organization works more effectively.
● Better organizational culture can lead to higher quality decision-making because the decisions are easier to reverse if they turn out to be wrong.
● People do a better job since problems are more rapidly discovered and addressed.
A Generative Culture brings together all of the required aspects to achieve the flow of information, as stated by Westrum. Having this kind of culture enables software delivery performance to continuously improve, since there is a direct impact on cooperation, creativity and process improvement.
Other well-known authors, like Jez Humble and Gene Kim, predicted that applying Lean UX principles fosters organizational culture transformation.
Lean UX
Lean UX, 2nd Edition book defines the concept of Lean UX as:
“Inspired by Lean Startup and Agile development, it’s the practice of bringing the true nature of a product to light faster, in a collaborative, cross-functional way”
Lean UX is guided by some easy to follow main principles for team organization:
- Cross-Functional Teams: Teams are made up of various disciplines involved in creating a product: Developers, QA Engineers, UX designers, etc. Diverse teams create better solutions because each problem is considered from many different points of view.
- Small, Dedicated, and Concentrated: No more than 10 people dedicated to one project and working in the same location. Smaller teams are easier to keep current on project status, changes, and new learning.
- Self-Sufficient and Empowered: Remove external dependencies from the team. Give them the tools they need and permission to solve problems with users and customers through first-hand contact, increasing their efficiency.
- Problem-Focused Team: A team must be organized around an outcome.
- Moving from doubt to certainty: Software development is complex and filled with uncertainty. We need to start with an assumption. As we work, we gain clarity by validating your assumptions and so reducing risk
- Outcomes, not output: Features are outputs and the goal is to create an outcome. That means creating a meaningful and measurable change in customer behavior. Based on this, we can decide if a released feature should be kept, changed or replaced.
- Removing waste: The final goal is to improve outcomes. Everything that doesn’t contribute to creating an outcome should be removed. By doing this, you can increase productivity and have more effective teams.
- Shared understanding: Sharing knowledge is a key factor to reduce the time required to solve a problem.
- No rockstars, gurus or ninjas: Lean looks for a team-centric vision, rather than focusing on one single person.
- Permission to fail: We need to test our assumptions and ideas, most of which will fail. We need to create a safe environment where we can experiment, in a way we can foster creativity.
A good way to enable some of this behavior is to implement a Continuous Integration / Delivery process. This kind of practice will allow you to:
- Work in small batches
- Create a comprehensive configuration management
- Apply Test Data Management
- Apply the concept of “Everyone is responsible”
- Adopt Test Automation (TDD, Code Quality, Pair work)
These practices will start transforming the way your organization works and the way time is invested by your teams.
Conclusion
Working towards a generative culture will improve the performance on our teams, increase creativity, and add additional value to our customers through better quality. The key is to not only adopt DevOps but complement it with culture boosters like Lean UX principles that will drive your organization’s culture transformation.