I read “The DevOps Handbook” a couple of years back. I enjoyed the book and applied a few lessons from that book and experienced first handedly how it improved team productivity and morale. That book is catered to more for engineers than managers. Accelerate did a good job by providing metrics to evaluate each organization. It also covered in-depth knowledge of organizational culture and transformational leadership. It’s a good book for engineering leaders and it provides nuggets of knowledge about how to build high-performing teams.
Software delivery performance:
- Lead time
- Deployment frequency
- Meantime to restore(MTTR)
- Change Fail percentage
Westrum organization culture predicts — trust and cooperation between people and organizations; open, transparent, and high-quality decision making; high productive teams;
“what my . . . experience taught me that was so powerful was that the way to change culture is not to first change how people think, but instead to start by changing how people behave — what they do”
This is my favorite quote in the book. We need to set the right behaviors for leaders and engineers to see the change in the culture.
“Continuous delivery practices improve delivery performance, impact culture, reduce burnout and deployment pain.”
The key principles of continuous delivery:
- Build quality in
- Work in small batches
- Simplify and automate repetitive work -
- Relently pursue continuous improvement
- Everyone is responsible
Characteristics of architecture for high performing teams:
- Make large-scale changes to the design of their system without the permission of somebody outside the team
- Make large-scale changes to the design of their system without depending on other teams to make changes in their systems or creating significant work for other teams
- Complete their work without communicating and coordinating with people outside their team.
- Deploy and release their product or service on-demand, regardless of other services it depends upon.
- Do most of their testing on-demand, without requiring an integrated test environment.
- Perform deployments during normal business hours with negligible downtime.
The above list should be used as a checklist when we are designing any applications or refactoring existing applications. Following the above rules will help us to deliver the application with minimum coordination overhead.
Integrating infosec in the development process. Rugged DevOps is the combination of DevOps with the Rugged Manifesto. Recognizing that software has become a foundation of our modern world and will be attacked by talented and persistent adversaries who threaten our physical, economic, and national security.
Lean product management:
- Limit work in progress
- Visual management
- Feedback from production
- Lightweight change approvals.
- Gather & implement customer feedback
- Team experimentation
Organizations can fix the conditions that lead to burnout by fostering a supportive work environment, by ensuring work is meaningful, and ensuring employees understand how their own work ties to strategic objectives.
Managers who want to avert employee burnout should concentrate their attention and efforts on:
- Fostering a respectful, supportive work environment that emphasizes learning from failures rather than blaming
- Communicating a strong sense of purpose
- Investing in employee development
- Asking employees what is preventing them from achieving their objectives and then fixing those things
- Giving employees time, space, and resources to experiment and learn
How to reduce & fight burnout:
- Organizational culture- by creating a blame-free environment, striving to learn from failures, and communicating a shared sense of purpose.
- Eliminating roadblocks
- Creating an environment that supports experimentation, failure, and learning.
The five characteristics of Transformational Leadership:
- Inspirational communication
- Intellectual stimulation
- Supportive leadership
- Personal recognition
Managers, in particular, play a critical role in connecting the strategic objectives of the business to the work their teams do. Managers can do a lot to improve their team’s performance by creating a work environment where employees feel safe, investing in developing the capabilities of their people, and removing obstacles to work.
The above statement explains very well what an engineering manager supposed to do day in day out.
- Limiting work in progress. Stress to deliver incrementally rather than the batch mode.
- Build quality by adding unit test automation tests and integrating them with build and deployment.
- Integrate execution of unit tests, regression tests, and automation tests as part of every commit and build.
- Build a culture where quality is everyone’s responsibility.
- Increase test automation percentage for data pipeline jobs.
- Invest in a platform that helps to build core products, that differentiator for our businesses.
- Writing secure code and building applications rugged to security vulnerabilities.
- Create opportunities and space to share team member knowledge and information — tech blogs, wiki pages, tech conference presentations.
- Create a “yak” day to reduce technical debt.