What is DevOps?
DevOps came from the idea that by working together, Developers and Operations teams could drive the delivery of business value through software.
Here are three ways to start adopting DevOps practices and cultures. The hope is that this helps you work with Developers, Product Owners, and stakeholders within your organization.
Define Target Outcomes
Things can go very wrong in any endeavors where the outcomes are not clearly defined and prioritized. Output and artifacts are significant; we produce them in design thinking sessions, feature building, and discovery sessions. However, outputs and artifacts quickly depreciate in value when teams misunderstand their goals.
The critical point here is not to confuse outcomes with outputs. You shouldn’t run a design sprint to produce a backlog for your developers to develop off of; this is an example of an output. An example of an outcome is having your critical stakeholders, including your developers, understand the problem space to begin developing the solution. If you’re running a session or event and have artifacts and checkboxes to produce, that’s great. This ensures a role and responsibility to be handled. These responsibilities should be a separate agenda handled by that role.
Teams that align with the same outcome get better value and results. Accelerate is an excellent book that talks about this within organizations adopting DevOps. Targeting outcomes ensure processes involving tech and people align with your business needs.
Create Safe Environments
Safe environments are essential to maintaining the health of your organization. Employees do their best work when they feel empowered. The key takeaway here is maintaining a safe environment for everyone to contribute.
If you are maintaining a healthy team, excellent, you are probably meeting your target outcomes, driving value across the organization or group regularly, and have lessons learned. Great feedback often causes a desire to further improve or experiment with current processes.
If you are struggling with delivering value and meeting your target outcomes, there are few practices to help enable learning from your team, like retrospectives. Dare to Lead is a personal favorite of mine for rumbling with conflicts and complexity within an organization.
Regardless, we can not predict chaos so, within execution cycles, it’s often necessary to pivot. Changing current outcomes and processes across your organization can be difficult especially concerning team morale and team dynamics. If these changes cause unmet deliverables this also lead to dissatisfaction and blame.
Some indicators of lowered team morale include feelings of frustration that things aren’t working, push back, and an increase of questions. Here are some tips for pivoting if you are experiencing mid-sprint or mid-execution pivots that are hurting your team:
- Ensure the change aligns a defined target outcome
- Constrain the change by time / ensure the shift is timebound. This is especially important when making changes mid execution.
- Explain to your team in the context of point #1 and #2.
Maintaining a safe environment will help grow a culture where individuals gain autonomy, allowing value to scale.
Organizations see the need to adapt and innovate to stay competitive and current in their markets. With the increased adoption and emergence of technology (there are 1,200 CNCF projects now, wow!), team members across the organization must understand the technology landscape of your company.
Ensure documentation is current and available regarding the architecture of your application.
If you do not have any architecture diagrams, take the time to work with your team to produce, at a minimum, a big picture diagram that spans across your environments. Present this to your organization and ensure everyone understands how each tool and framework within your environment interacts.
With reference diagrams, your developers can understand the software application and point out any missing details concerning current work in progress. Getting the big picture also allows you to determine better which areas that will most benefit from the adoption of technologies.
Understanding how your tools and technologies benefit your software development life cycle accelerates your software delivery.