An Agile View Beyond Common Practices
Bhushan Sahni | December 31, 2018
There is much hype around Agile practices in the IT world. The basic understanding of Agile is that it is an iterative approach to planning and guiding project processes, but if you try to dig deeper you will find varying opinions, views, and misconceptions. Adding to the confusion are the various jargons and models associated with it. While there is a lot of literature around the common practices in Agile, this post focuses on how Agile requires a massive shift in the way teams work and think.
- The Different Agile Methodologies: While Agile Practices can be used in any industry, we will focus on their application in software development. Agile can be implemented using different methodologies:
- Scrum: This is most useful for managing complex full-scale product development where requirements change constantly, and budgets are limited.
- Kanban: This is highly recommended for teams working in projects/processes that see a lot of unplanned work being added during different sprints. E.g., application support.
- Extreme Programming: Also known as XP, Extreme Programming is most helpful when the customers do not have a firm idea on what the system needs to do, and system functionalities change frequently.
- Lean Agile: It is similar to other Agile models, but focuses on making the process more sustainable than flexible.
- Agile Begins With a Shift in the Mindset: Agile is not just a practice, it’s a mindset. Even before you ready the workplace and infrastructure, you and your team need to be prepared for Agile. For Agile implementation to be successful, teams should prepare themselves mentally and be prepared to change the way they think, work, and interact. Be it the Agile team members or the management; everyone needs to change their mindset in addition to the way they work. People need to be more transparent, cooperative, flexible and need to work together as a team rather than in silos. In parallel to implementing Agile, there is also a critical need to train people to adapt towards the Agile methodologies.
- It’s All About Team Synergy: This aspect deals with synergy among the team member, and between the team members and product managers. The product manager is the crucial link between the actual users of the product (client) and the development team/Agile team. Product managers should be more involved in day-to-day development and play a more active role in defining the requirements using stories/epics. Team members should have synergy among themselves and with the product managers. The flow of feedback from the client and to the client extremely crucial and this is where synergy between all involved plays a vital role.
Creating an Agile Workplace: Agility is the ability to respond quickly and effectively to rapid change and high uncertainty. To be successful, Agile teams should work in war rooms instead of cubicles. A war room, also called a command center or control room, is a centralized physical or virtual meeting space that facilitates visual communication of project activities. The war room arrangements have repeatedly been shown to affect team communication positively. Since data visualization is an important aspect, it is always advised to have whiteboards, sticky notes, photos, etc. in the war rooms to see, organize, and synthesize ideas.
The most efficient and effective method of conveying information to, and within, a development team is face-to-face conversations. Often projects are composed of geographically spread out Scrum teams that are dependent on one another, and the simple communication solution in such cases is video conferencing. Workers who participated in the Interaction Associate’s survey reported that the most effective way a leader can build trust is to seek input from the team on decisions that affect them. After all, ‘Individuals and interactions over processes and tools’ is the first core value as per the Agile Manifesto.
The Value of Transparency: All the practices followed in Agile are based on sharing information. All team members are expected to be part of these practices; stand-ups, retrospective meetings, etc. Transparency is usually an unobserved factor in the success and cost of projects. It has benefits at all levels and for every member of the team. The product manager is the link between actual users/clients of the product and the technical teams and knows every feature being worked upon and the way it is heading. The feature is usually broken into small stories, and each story needs to be accepted by the product owners, which includes the product manager. This gives the product manager visibility of the product being developed. Since the product manager is always in touch with the client, he can easily accommodate any changes/new requirements into the product. With iterative deliverables, clients also get a chance to provide frequent feedback about the product.
Transparency yields an environment where everybody can see what their colleagues are doing and what they have accomplished. This is a great way to build everybody’s sense of worth, appreciation, and identity. When a developer does something good, it is easy for his/her peers, management, and even the client to see that a great job was done. There are other direct/indirect ways the developer is benefited. Since Agile recommends Continuous Integration and encourages frequent check-in of the working code rather than waiting for a bulky check-in, it helps quicker fixes in case of issues, keeps the code robust, and speeds up the overall development work. A well-designed transparent development environment benefits all the stakeholders in the software development process. Transparency delivers trusted information on demand, shortening the feedback loop between the client, manager and the developers. Finally, a fast and accurate feedback process improves performance and reduces costs.
Understanding Agile Roles: There are various perspectives of seeing different roles in Agile. For a person who has not worked in Agile, he/she might come up with technical roles in a team like that of Developer, Technical Lead, Architect, Manager, Quality, etc. If you ask someone who has worked in Agile or has knowledge of Agile, they would say that there are just four roles, Developer, Quality, Scrum Master, and Product Owner. So, how do we understand what are the different roles in Agile, or rather, what is a Role in Agile? In Agile, there is a famous story of a chicken and pig which highlights the difference between commitment and involvement. The original idea was that a Product Owner is usually involved, whereas the rest of the team is committed. This is the generic view about how the roles play in a scrum team.
There are roles which keep changing with time, and there are roles which stay. The roles which keep changing are Story Lead, Quality, and Story Team Member. In many teams, the Scrum Master also changes in alternative/few sprints which is not a good practice. The Scrum Master is a dedicated role and should be a person who has an excellent understanding of Agile practices and can drive the team to successful Sprints. The Scrum Master may be a master for more than one team. As the name suggests, the Scrum Master plays the role of a Servant-Leader and acts as a facilitator and not the manager of the team. In addition to managing dashboards, conducting stand-ups retrospective meetings, the primary responsibility of the Scrum Master is to assist his/her team from any impediments.
In conclusion, Agile is more than just a set of processes. Agile is a mindset, a way of thinking, and for an Agile implementation to be successful, organizations and teams need to focus on not just following Agile, but ‘Being Agile’ and ‘Living Agile.’