Wednesday, June 9, 2010

Agile Adoption

Thinking about Agile adoption
IT companies nowadays think about the decision of moving to Agile, is it the right step for us? Will it succeed? What is the risk? Is Agile suitable for us as a small company/big company? and many questions that are flying around in every company thinking about Agile adoption.
When it is announced in a company that “Our company is going AGILE” these are the magical words that make everyone in the room spinning and looking in each other’s eyes wondering What does it mean? We are good this way, why moving to Agile? What do we need to learn? What will be my role in an Agile team? What if we FAILED? People are always afraid of the unknown, we are afraid of the dark because we cannot see in it. It is the same situation here, people are afraid of transition to Agile because they are afraid of how things will be. It is the role of the decision makers in the company to post the message in a positive way, so employees become positive about it, and become eager to learn all about Agile.

Let’s agree that transition to Agile is a cultural challenge. Getting people out from their comfort zone and introducing new roles, new responsibilities, and new culture needs patience and needs the company to empower the team not to lose their identity in the transition phase. Making the company goals clear and share the vision with the employees will help getting the desired results. Introducing Agile into a company is a huge step that will determine whether the transition phase will pass successfully or people will resist the idea. The introduction phase of Agile is like introducing new product in the market, it needs a well-planned marketing campaign to succeed and to make people enthusiastic enough to know, learn, and practice Agile.

Moving to Agile Software Development
Teams will be motivated to move to Agile if they were able to see, feel, and understand the value added from practicing Agile. Moving immediate from traditional methodologies to Agile may be risky, best practice is to move gradually and to start with a pilot project and invest time with its team will reflect if moving to Agile is the right step for your company or not. Applying basics of Scrum, Lean, XP, or whatever approach you want to apply will motivate people to learn more about it and when they get the value from it, they will spread the spirit all over the place.

We are good the way we are
• Almost 45% of delivered features in software are unusable. In Agile we do the highest value work first and stop when we deliver the required business value.
• Most of the time we have low customer satisfaction after delivering the agreed on product. 60-75% of the customers do not work again with the same company as they do not get what they expected. In Agile it is highest priority to satisfy the customer which will guarantee great reputation in the market and potential projects with the same customer
• Requirements are not a Holy Book. The customer who is providing us with the requirement is the one who is asking for a change. People hate change because it means rework and introducing chance for new change. In Agile we are open to change, feedback because we are working iteratively and change will be easily managed.
• Developers have to read requirements book (sorry, requirements document) before starting implementation with no time to understand the business and get what the customer really wants. In Agile, business people and developers are working together which enables the developers to develop better solutions, and deliver what is expected from the client’s side.
• Developers, designers, or architects can’t resist complex designs and abstract meta-models, but what is the business value from such a complex design? In Agile, technical excellence is about using the right frameworks and supporting tools to be able to deliver higher quality software.

What to Learn
Agile is a mindset. You may need to think different to cope with an Agile team. Agile team consists of value-driven members, who are collaborative and understand the business very well. It is a team in which everyone shares the same vision and looking for the same results for their project.
Learn to be a team player; Agile is not a one-man show. Agile is about working, delivering, taking responsibility of our project as a team not as individuals, and in case we won or we lost we will be team in this as well. Agility is the methodology not the technology, it won’t tell you how to be a team member or how to do your job right, but it facilitates communications between team members, and between team and customer.

What will be my role in an Agile team?
Collaboration between all team members to deliver business values iteratively, and engaging the customer from the beginning so early feedback put the team on the right track of development to deliver a highly valuable product.
People will resist if they felt that transition to Agile will threaten their positions or jobs. So the change needs to be designed, and had identifiable start point and endpoint. Moving with people in an iterative, time-boxed manner, you may get less resistant, and even grow with them. At the beginning explaining each team member’s role and identifying what is expected from him will help people to do their parts correctly. An Agile team member may have a specific role, or may play more than one role, it depends on the work agreement between the team and the criticality of the time and budget for a specific team. What is your role in an Agile team, it actually does not matter as long as you are doing it right and everyone is gaining value from it.

What if we failed
It is always recommended before you start a new technology or take a new approach, that you have a clear understanding of it first. If you did not, then do not be surprised when you fail. Before deploying Agile into your company, you should know first what is the problem that you need Agile to solve. Identifying your problems may save you time, effort, and money in your transition to Agile.
You have equal chances to fail or to succeed, so do not think about it much and start now. If you succeed, you can move forward with it and even transit to a higher level with your company. If you fail, well at least you now know that Agile does not fit your company at the current moment. Whatever is the outcome, do not leave it to chance.

Remember, it is your choice! you know what suits you and what would work for your company. The world is speeding around us and we need to cope with it or we will be left far behind. So, do not leave a chance for gaining an experience pass by without taking it into consideration.