Agile Survival Guide

Tuesday, June 11, 2019

 

Working with Agile can be a daunting task. One may find himself overwhelmed by new processes, daily events and constant deliverables.  Agile has been a buzzword in software engineering for almost two decades now, yet it is still quite a challenge for any newcomer to adopt, be that as a team or an individual. Here are a few tips on staying afloat the raging waters of Agile and, perhaps, enjoying the trip.

be open, exercise responsibility and honesty – we all like to believe that we are honest to others and to ourselves, but the Agile way of working puts that to the test. In the Agile framework, there is no way to hide behind the veil of long-term deadlines and badly defined features. No genius engineer locked in his cubicle, creating hard to understand code that no one can ever touch. The deliverables are due to next week and the team took extra pain to define them as accurately as possible. Each team member has its job and everybody knows what everyone is doing at any given time. This transparency can be scary, yet, if the team members accept it as soon as possible, it can help the team self organize and elevate their everyday work process through better communication.

accept failure as part of the process, without compromising – due to its inherent transparency, the framework brings individual failures in full view of others, something no one is really comfortable with. Learn to accept those moments, be humbled by them and learn. Failure is the greatest teacher, after all. By its nature, Agile accepts the possibility of failure and even encourages approaching it with a mindset of “fail fast, learn fast”. So fail early and correct accordingly.  

realize the added overhead is just a stepping stone – Agile puts a lot of emphasis on ceremonies. They are not that many, really, but at times it may feel as a waste of time to spend more or less a day planning and looking back at the previous two weeks, realizing mistakes and proper actions. That is one day spent out of ten, our productivity is going down, right? Wrong. These ceremonies are essential to delivering on-time, proper working software. Each one is there to engage the team with the product they are delivering, giving the opportunity for open discussion and knowledge sharing. If nothing else, they serve as the synchronization points of the team. It is easy to work in a fast pace alone, yet it is quite the challenge to do it with a team. Continuous communication between all concerned parties is essential. At the end of the day, as communication improves, each ceremony is expected to take less and less time, reducing the actual overhead and compacting useful information absorption.

embrace change, adapt and overcome – traditional models, like waterfall, are much more in accordance with human nature, setting a long term target and moving on a straight path to the end. People naturally resist to change, as the comfort of the known path is always soothing. Agile challenges that perspective, recognizing that change, despite the effort required to face it, is an inevitable path to progress. What is a fact today may be disproved the day after tomorrow, so one may not rest at the comforts of familiarity. By splitting down the huge final product to smaller, much more easily handled deliverables, agile makes sure that every step of the way, the slowly accumulating product is always relevant and easily adaptable to constant changes. Only a likeminded team may follow such an approach, a team that embraces change and celebrates it.

bring your individual strengths to the multidisciplinary table – being part of a multidisciplinary team can often be confused with a case of “everyone does everything” . This is would perhaps be acceptable in a world where people are processing machines of equal power, but not in the real one. Here, each member of the team is exceptional at one, or perhaps two, technical fields, but here lies the beauty of a team with multiple competences. Through constant close proximity of the team members, the knowledge flows in a downhill steam, lifting the skills of the entire team up. This is known as the T-shaped skill set, where each member remains expert on some fields, while getting familiar with at least the basics of all the skills the team encompasses. Sprint after spring, the overall team skill set is improved and the team learns to speak a common language, which facilitates communication even further. One must be prepared to alternate between the teacher and the student role on the fly.

Agile goes beyond the professional, it requires personal improvement on many levels. The individual becomes part of the team, more so than in any other way of working, and through this integration the team may tackle harder and harder challenges.

Working with Agile can be a daunting task. One may find himself overwhelmed by new processes, daily events and constant deliverables.  Agile has been a buzzword in software engineering for almost two decades now, yet it is still quite a challenge for any newcomer to adopt, be that as a team or an individual. Here are a few tips on staying afloat the raging waters of Agile and, perhaps, enjoying the trip.

be open, exercise responsibility and honesty – we all like to believe that we are honest to others and to ourselves, but the Agile way of working puts that to the test. In the Agile framework, there is no way to hide behind the veil of long-term deadlines and badly defined features. No genius engineer locked in his cubicle, creating hard to understand code that no one can ever touch. The deliverables are due to next week and the team took extra pain to define them as accurately as possible. Each team member has its job and everybody knows what everyone is doing at any given time. This transparency can be scary, yet, if the team members accept it as soon as possible, it can help the team self organize and elevate their everyday work process through better communication.

accept failure as part of the process, without compromising – due to its inherent transparency, the framework brings individual failures in full view of others, something no one is really comfortable with. Learn to accept those moments, be humbled by them and learn. Failure is the greatest teacher, after all. By its nature, Agile accepts the possibility of failure and even encourages approaching it with a mindset of “fail fast, learn fast”. So fail early and correct accordingly.  

realize the added overhead is just a stepping stone – Agile puts a lot of emphasis on ceremonies. They are not that many, really, but at times it may feel as a waste of time to spend more or less a day planning and looking back at the previous two weeks, realizing mistakes and proper actions. That is one day spent out of ten, our productivity is going down, right? Wrong. These ceremonies are essential to delivering on-time, proper working software. Each one is there to engage the team with the product they are delivering, giving the opportunity for open discussion and knowledge sharing. If nothing else, they serve as the synchronization points of the team. It is easy to work in a fast pace alone, yet it is quite the challenge to do it with a team. Continuous communication between all concerned parties is essential. At the end of the day, as communication improves, each ceremony is expected to take less and less time, reducing the actual overhead and compacting useful information absorption.

embrace change, adapt and overcome – traditional models, like waterfall, are much more in accordance with human nature, setting a long term target and moving on a straight path to the end. People naturally resist to change, as the comfort of the known path is always soothing. Agile challenges that perspective, recognizing that change, despite the effort required to face it, is an inevitable path to progress. What is a fact today may be disproved the day after tomorrow, so one may not rest at the comforts of familiarity. By splitting down the huge final product to smaller, much more easily handled deliverables, agile makes sure that every step of the way, the slowly accumulating product is always relevant and easily adaptable to constant changes. Only a likeminded team may follow such an approach, a team that embraces change and celebrates it.

bring your individual strengths to the multidisciplinary table – being part of a multidisciplinary team can often be confused with a case of “everyone does everything” . This is would perhaps be acceptable in a world where people are processing machines of equal power, but not in the real one. Here, each member of the team is exceptional at one, or perhaps two, technical fields, but here lies the beauty of a team with multiple competences. Through constant close proximity of the team members, the knowledge flows in a downhill steam, lifting the skills of the entire team up. This is known as the T-shaped skill set, where each member remains expert on some fields, while getting familiar with at least the basics of all the skills the team encompasses. Sprint after spring, the overall team skill set is improved and the team learns to speak a common language, which facilitates communication even further. One must be prepared to alternate between the teacher and the student role on the fly.

Agile goes beyond the professional, it requires personal improvement on many levels. The individual becomes part of the team, more so than in any other way of working, and through this integration the team may tackle harder and harder challenges.

 

Author: George Makkas.