So coming off several posts on DevOps and how its practices combined with agile development can lead to an improved execution, I thought to share some incites on how to recognize and improve IT culture.
Signs that IT culture is Heading in the Right Direction
- Agile teams get things done first, worry about process mechanics later - When introducing agile practices - or even when agile has been used for some time and the team is looking to mature its practice - I find that strong teams will think agile, focus on execution first, and address mechanics of the process second. So for example, a new agile team should gets its backlog going first and commit, worry about story points and how to handle unfinished stories at the end of a sprint later. A mature agile organization with multiple teams prioritizing stories, figures out the communication mechanics between teams during the sprint, and formalizes communication practices by discussing issues at retrospectives.
- Know how to use the business' products so that they can see where and how to make improvements. User interface, workflow, and access to insightful, actionable data is so important to successful customer facing application design and business system workflows that the technologists working on them have to step into their user's shoes and learn for themselves.
- Individuals are hungry to learn more and take the initiative to train themselves - Sure I can get individuals and a team formal training, but that's not where it starts. A strong IT culture prefers rolling up the sleeves and experimenting first, training once they know the basics.
- It's not always the Business' fault - Agile teams might blame the product owner for over promising and everyone has something critical to say about the business strategy, but strong IT teams will think through how to improve their own practices before tossing blame or being critical of other business functions.
- Speak openly about where they suck and need to improve is important. I want to hear about technical debt from software architects. Ops team need to look at metrics and decide where improvements can have business impact. QA needs to own up when their testing is inadequate. Most importantly, teams need need to speak up when they recognize a problem - and a problem well stated is half solved.
- Share information on how things work, document process, and educate colleagues on how to fix things. IT teams that horde information, over-complicate things so that business users don't understand how things work, or make it impossible for their colleagues to enhance their technical implementations are impeding organization growth and scalability.
- Want to get involved understanding business priorities and challenges. They ask the product owner questions on the priorities or want to understand how their efforts are contributing to growth or efficiencies. They'll seek out multiple solutions to a problem and debate which ones provide optimal solutions. They'll listen to marching orders, but seek out to participate in the debate on what and how the business should move an agenda forward. They are strategic agile thinkers and learn how to innovate.
- Leverage data and ask questions - To become smarter about their own operations, they will collect meaningful data, convert them to metrics, look for trends, and prioritize improvements. They will learn to ask good questions about data, and take other steps to help become a data driven organization.
- There is an interest in spending time together outside of the office and having fun - My last team threw summer family picnics, and assembled everyone for pot luck Diwali celebrations. Good teams want to spend time together, celebrate wins, appreciate individual interests, and be human.
- Are responsive when there are operational issues - It's one thing to have all the systems monitored, ITIL practices to handle incidents, playbooks to recover from an issue, and strong technical skills to research root causes - all things strong Ops teams work toward - but the best ones also develop a good bedside manner, are responsive to even the most difficult users, find ways to communicate using language everyone understands, and make sure business teams receive regular updates when there are problems.
And here is one bonus one - probably the most important
- Great IT teams refuse to fail, are willing to take on challenges and find ways to make their initiatives succeed.They are relentless to hit deadlines. They seek to keep things simple. They promote enthusiasm and heal downers and doubters.