Working with 20+ companies with various flavours of Agile, I’ve benefited from seeing the good, the bad and the downright ugly (methodology, not people!) of Agile implementations.
Typically, small companies seem to adjust to introducing Agile better than the corporate multinationals, although I’ve seen it thrive in both environments. The smaller companies already have the fail fast mentality. Staff are used to juggling different hats and embracing change, whereas larger organisations tend to have long established processes and policies to undo and overcome.
Small teams can produce an amazing amount in a short space of time, given the right ingredients.
Agile Key Ingredients
Product ownership: Although I have seen this work driven from the development team, it is far more likely to succeed and work efficiently when there is a committed product owner who is able and willing to prioritise the general themes for each sprint.
Action: Identify a strong and committed product owner from the outset.
Stories: Grooming good quality stories with enough key high level information in a way that makes sense to all parties saves time and provides the first stepping stone to success. If the business is unsure of what they want; the development team will struggle to relate the story to their environment; or the testers can’t validate the output, the story will struggle to succeed. The aim is to have enough information to know what is needed to successfully complete a story without over engineering the story to the nth degree - it’s an art!
Action: Cross train the team to groom stories to 'good enough' to take into a sprint.
Ownership: Agile promotes team ownership of the problem domain and for a team to strive they will benefit from being made up of self-starters who are not only empowered, but also encouraged to make decisions on behalf of the company. Let the team identify what is possible in a sprint at planning stage and own the stories that are taken into a sprint. Naturally, with team ownership, they will end up owning the success and failures of a sprint which will build a more unified and efficient team
Action: Avoid managing a team by truly facilitating team ownership.
Can do attitude: Agile is not about pigeon holing individuals to repeatedly perform the same task, although you will always have domain experts. A can do attitude, with a willingness to cross train and help out in other areas of the team as needed quickly reaps rewards. Cross training becomes a norm within a strong Agile team. The cost today of cross training becomes the strength tomorrow when your domain expert is on holiday or you have a sprint heavily utilising a certain skill set, as multiple team members will be able to help out
Action: Allow time for some cross training in each sprint.
Business interaction: Gone are the days where never the twain shall meet, the business and development teams need to have close and constant interaction to not only groom stories to an acceptable level, but also to provide feedback and tailor the finished solution
Action: Team engagement with the business is vital for successful story delivery.
Delivery frequency: Agile promotes small iterative solutions based around finished functionality that are tested throughout the development phase. Completing and implementing 1 or 2 features in a sprint is far more useful than starting, but failing to finish 20 features. With continuous integration, some teams (and businesses) can deliver these features daily to a live environment, whereas others prefer to make a weekly, fortnightly or even monthly single delivery
Action: Find the right team cadence by balancing the cost of delivery vs the frequency.
Review and Feedback: There is always room for improvement. With team empowerment comes a need for a team voice and the retrospectives encourage team colleagues, along with stakeholders to learn from their recent lessons and improve the process. This can produce a really powerful and streamlined process with even the quietest members having their say
Action: Learn from retrospectives and work towards at least one improvement per sprint.
There are many flavours of Agile, but a lot of it comes down to common sense and what works for your business. Keep communication channels open, provide the appropriate stakeholder support and believe in your development team and you can go a long way!