Helping Teams Instill Sound Daily Habits
Daily practices are the glue that holds your process and your team together. Done right, they become habits – muscle memory – and the entire team works more effectively almost without noticing that they’re doing it. The right practices empower your team, foster communication, and reduce conflict and friction throughout the development lifecycle.
Your team’s fired up about agile – and then you hit the requirements wall, where so many agile adoptions get hung up! How do you scope smaller increments without losing their value? How do you get skeptical customers or executives on board? What’s the right level of detail so your developers understand what to build (and what not to build yet)? You’re “failing faster” on purpose, but how do you keep morale up?
A single strong product owner/product manager empowers the team by listening to all sides and taking accountability for tough decisions. A great Scrum Master or agile coach helps the team stay positive while keeping the course. Training for executives helps them understand the big picture. And sometimes you just need an outsider’s perspective to help you see and solve the tough problems.
Develop and Test
Most teams are moving away from methodologies that prescribe every aspect of the developer’s day-to-day experience, but we can still learn from those practices. Think of it as cafeteria-style: you pick and choose the strategies that work best in your circumstances, and you build upon them as you go.
If classic pair programming doesn’t fly with your team, it’s still worth a look to see how you can get your team members working more closely together – not just programmers, but across all roles. Can your developer call over a tester to take a quick look before checking in, or vice versa to duplicate a bug before filing it? Shhh… don’t tell them they’re pairing.
Do you struggle with test-first TDD? Maybe it’s enough just to test before checking in, and let the coder decide whether that means before or after or side-by-side. Now you’ve got tests you can plug in for continuous integration… and robust builds lay the foundation for more advanced test automation, or maybe better branch management for parallel development, or maybe even continuous deployment. It’s up to you.
Everybody seems to think you’re “done” when the product ships. Regardless of your process, most of the time deployment just means a new phase of hard work is starting. Bugs and outages? Feedback flooding in? Do the customers want changes? Or are they loving it and clamoring for more?
Think agile, then extend your agile process with specific practices like continuous delivery and active feedback management – your stakeholder reviews become specific and actionable, and you get everything you need to fill up your team’s next backlog and beyond.
Code management practices and tools
- Source control
- Branch management
- Build automation
- Unit and integration testing
- Code analytics
- Architecture validation
Testing and quality
- Test planning
- Test case management
- Acceptance test-driven development
- Manual and exploratory testing
- Rich bug reporting
Product, project, and portfolio management
- Requirements tracking
- End-to-end traceability
- Project timeline and resource alignment
- Agile backlog and iteration planning
- Metrics, reporting and KPI’s
Deployment and operations
- Configuration management
- Advanced build and deploy
- Performance and load testing
- Production diagnostics
- End-user feedback management