What is Agile? What is Scrum? What is Sprint? Though these English words have their own meaning, but also they got ability to confuse a novice. If you are practicing Agile in any form, you might have already got sense of what is this all about. Here we explore the basics of Agile, what are the tenants of Agile? When one says, I am doing it in an Agile way, what is it that he/she is doing differently? Let us find it out.
More than a project management technique, Agile is a thinking process of individuals and team. Hence, before getting into the activities to implement Agile, one first needs to think in an Agile way. So what does it means thinking in Agile way? To answer it, we may start with what we can achieve by using Agile. Here is a list –
- Cost benefits
Now whenever we talk about Agile way, we have to keep above goals in mind. Every thought in Agile process has to satisfy these goals. How to do that? Here are the tenants of Agile, the basic building thoughts of Agile –
- Break it down
- Important things are actually important
- Let the team decide
- Earlier the better
- Don’t forget to learn
These five points can govern thought process behind each and every activity in Agile. Whenever there is a doubt, how can I do something in Agile? Go through these points and you will have answer to the question. The outcome based on these points will keep you very close to Agile than flowing back to the conventional waterfall model. So how can one read these points in depth. Here is a bit of insight.
Break It Down
Break any task to the smallest logical and meaningful unit. Whenever there is an activity to be performed, just ask this question, have I broken it down into smallest possible (in the context of that activity) tasks? If the answer is no – repeat the break down task again. Keep in mind that the logical and meaningful unit is derived from the context of problem being broken down.
Important things are Actually Important
Always as this question – Am I working on something that is the most important at present? If not, then something is wrong with the prioritization. Get it corrected and move forward. Before starting on any larger goal, ensure prioritization.
Let the Team Decide
If team is working on something, instead of external people forcing something on the team, let the team decide how much they can do, how they can do, and so on. Thumb rule is – let outsiders be outsiders. When we formed team, we have already ensured that they have got all skills to deliver as a shared responsibility. Then let the responsibility and decision process of execution be of these capable people who are actually going to do it on the ground, than somebody who is not going to own the end delivery.
Earlier the Better
Any validation/verification/correction, the rule is – earlier the better. Example – When can I do the performance testing of a project? Answer – start as early as possible, may be at unit test level itself, and even earlier evaluate architecture for performance, still earlier validate the requirements itself, and keep it doing continuously.
Don’t Forget to Learn
If Agile is close to nature, then stick to the fundamental characteristic of nature – evolve. Change yourself to align to circumstances continuously. Learn from previous activities – repeat that helped you, and throw whatever troubled you in doing activity.
Hope next agile decisions are not going to be a jinx for you.