With the explosion of mature technology that has the ability to change our traditional industry to a cutting-edge industry, every company is trying to adopt a least one innovative technology in their organization. However, from our past experience, implementing technology in our companies has had less than ideal results. That is why you hear a lot about how companies and vendors are using Agile methodologies to be able to best implement any technology and evolve their processes.
I am a true believer in Agile and think every implementation can benefit by leveraging Agile. I have written several blog posts on Agile. At SSI we are using true Agile in our development as well as the many implementations we have conducted with our clients over the years. I do not recall a single project that has not been a success. Knock on wood.
With Agile being now a buzz word I am finding everyone is saying they are using Agile when in actual fact they are only using specific portions of Agile. Agile is not something that you can only half commit to. Well you can, but you simply will not attain the full benefit of Agile this way. I know this from experience. We at SSI used to practice portions of Agile several years ago, but once we fully committed to all the Agile methodologies our implementation and development projects had greater results in record time; it was absolutely amazing.
We all know that Agile focuses on small iterations (e.g. Sprints, Milestones, etc.) compared to a single Big Bang. Even though that is correct, there is so much more to Agile than doing things in small iterations. I will not get into all the specifics of Agile as there are many resources on it; however, I will mention the top three areas where most companies go wrong with Agile in my experience.
1. Measurable Milestones
With Agile you will need to have specific milestones which have a specific goal. These should be kept relatively small (1-3 months). This should not be confused with the term Sprint which is a common term you hear a lot when a company is using Agile. A sprint is a time box duration spanning a week to two. Multiple Sprints will be in a milestone.
The two common mistakes I see are that the milestones goals are:
- Too broad and large. A good milestone has a specific goal which you want to attain. It does not have to have all the features you want but just what you need to successfully accomplish the goal of the milestone. The benefit of having frequent milestones is that you can focus on future benefits, features, processes, etc. in a future iteration. There is no reason to boil the ocean for each milestone.
- Do not add value by itself. The milestone should be able to stand by itself and when completed will add value to the organization or can be used to test an assumption. If a milestone does not satisfy either of those criteria, then you are losing a key aspect of Agile.
The key thing to remember is all successful complex systems were grown from a simple system. Keeping your milestones small and with features that can add value to your organization, you will be able to attain benefit quickly and be able to build on a solid foundation.
2. Learn to say “Great Idea, but not Now”
A key thing you hear a lot in Agile is that you need to be able to say No to functionality that is not required to attain your laser focused milestone goal.
I have seen many projects go astray because the team does not know how to say “No” to new functionality. There may be political reasons as well as culture reasons since it is always hard to say no to a VP. However, what most people do not realize is that if you do not say no, you will start to introduce scope creep and the end result will be that you do not deliver anything that is useful. I promise you that saying no early is a much easier conversation than dealing with your missed deadlines or lack of quality of what was delivered.
In my view, you are never really saying, “No” but rather “That is a great idea. Let’s evaluate it with all the other great ideas you and our team have come up with in the next iteration.”
A common saying I use is, “We are at a stage with technology where we need to determine which great ideas we are not going to do right now.” With any implementation or development there are many great ideas that will come up. This is what Agile expects and was designed to handle. Just because someone comes up with a great idea does not mean that we should implement it immediately. If your milestone goal is already determined and the great idea is not required to reach your goal, then it will need to be evaluated for the next milestone.
The beauty of Agile is that the next milestone is not far away. If the great idea is something you want to do, then the next milestone goals will be set and it will be scheduled.
3. Culture Eats Everything for Lunch
I am sure you have heard the saying “Culture eats ENTER WORD HERE for lunch.” This is so true. We all know that it takes People, Process and tools for any implementation. Even though we recognize that people are a big part to every company transformation and implementation, it is always underemphasized. Always.
For Agile to work, it is important that the entire team have a culture of being collaborative and work together to solve problems. This is required by the whole team including any senior management on the team. If people are afraid to voice disagreement with anyone on the team, then your team has an infection which will grow over time and really slow down achieving the goals.
Agile does try to improve (not solve) culture by having frequent and effective meetings to enable collaboration and not just communication. Agile provides a sense of responsibility and ownership, sets clear goals, gives everyone a share in success and helps a team learn from failure (very important).
Everyone is looking at how they should implement their next innovative technology. Agile is a great framework that can guide you to a successful implementation. However, with Agile being such a buzz, it seems many people are saying and even thinking they are implementing Agile when in actual fact they are not. When a company only implements some of the Agile methodologies they will usually have less than ideal results and will wrongfully conclude that Agile does not work for our industry.
Three main areas I see companies failing with their Agile methodologies are they do not have small and focused milestones, they do not know how to say, “Great Idea, but not now,” and do not put enough emphasis on the importance of culture. In my opinion Culture is the first thing I would focus on before tools or process.
I have been on projects that practice true Agile and others than only practice portions of Agile. There is not one Agile project I have been part of which would be considered a fail; however, I cannot say the same for the non-Agile or partial-Agile projects.