Picture this: Two teams, with 5 members each, are working on their term project of 4 weeks, to come up with the design of a new eco-vehicle. Specifications are given at the beginning of the Project. Both teams decide to split tasks and start with their designs. Both teams, meet regularly, discuss tasks, daily status, obstacles and have weekly reviews, and follow all the agile principles at work. However team A seems to be lacking the pace of team B. What could be the reason?? Is team A not agile enough??
I came across a series of writings that emphasize on the agile attitude more than the agile practices. Here is my attempt to summarize my findings on ways to cultivate the agile attitude.
Product owner is a customer
Product owner is the customer for a scrum team. With agile we get this advantage of involving the customer (product owner) early in the life of software, and at regular intervals. Many times as developers we understand how our users think and can implement features in ways that are both elegant and intuitive – but not always. With agile the onus is on our customer (product owner) to shape the development activities so that the final product is as useful and valuable to the end user as desired.
Stop designing alone
Most of us like to design in silos; this is applicable to both UI and product. Designing involves making multiple choices and each needs to be considered from different perspectives. While designing alone it is only the designers perspective and may not necessarily contain all possible dimensions of the design. There might be an issue that was overlooked and comes up in a review done by another peer/senior later. This additional time of review and repair can be saved if the designing were done in a pair/group.
Have more workshops than meetings. This helps draw more attention from participants, and their participation as well. Collaboration tools can be used to create live documents with details of the whole workshop conversation and/or decision making.
Help in decision making
The team shares the Product Owners responsibility of backlog planning and implementation details. The team helps him in decision making, by providing all possible options, the various pros and cons for each of those, so that he can decide better. Agile requires us to give up some control over the software development process. This might not be agreeable for many developers. This is more evident in cases where we are asked to do things that we don’t agree with. In such cases do voice your opinion. But remember deciding what needs to be done and when is up to the Product Owner. Do voice your opinion in time and respectfully. If your points do have a value add, but was not considered in the current iteration, it would come up in the next, and you will have your say.
Present the problem and discuss possible solutions
Rather than imposing a decision for a team, a Product owner, should discuss the problem in detail with the team and be open for feedback. Such collaborative decision making provides employee empowerment in a true sense to all the team members.
What works with one team might not be the exact match for another team. Be pragmatic to be agile.