What I learned when using agile

During my time at university I worked for a company as part of my degree, with a strong focus on agile methodologies. As I have just started my first job I thought I would share some key things I have learned so far. It will be interesting to see if my views change over the years as I gain more experience.

The first thing, communication is an extremely important skill. It is linked to every part of any project from requirement capture with clients, discussing ideas within the team, briefings, explanations, presentations and so on. Good communication skills are vital to keeping a project on track and progressing smoothly. You don’t want to find out three months in that you are going in the wrong direction. Also you should record things like meeting minutes and group decisions. People forget a lot.

Second, plan ahead but be prepared to adapt. You should always plan ahead so you know where you are going and can manage your time. However, be prepared to add features, modify or just remove them entirely. These changes can happen for any number of reasons, someone gets a good idea half way in or there just isn’t enough time to do everything. Another key thing when planning is to prioritise the key functionality and try to get a minimal viable solution (basically the least amount of work to meet the objective) as soon as possible. From my experience it allowed our team to have a much larger pilot/testing phase than the other teams and the feedback we gained from our clients and testers allowed us to produce a much better experience for the end users.

Next thing, agile methodologies are great but it’s not do or die. My team used many of the agile methodologies such as rapid prototype development which allowed us to keep the project moving forward and on track, as well as keeping our client involved and informed through out the project. However we found some methodologies just didn’t work for our team. Such as stand up meetings, they are a great idea, but when members work from home it doesn’t make much sense to spend 40 minutes traveling to and from the lab, just to have a 10 minute meeting. Using a group chat will achieve the same thing and be a much more efficient use of time. So agile is great and I would highly recommend it to everyone but if it doesn’t work for you don’t do it.

Final thing, learning. You should always be learning, it doesn’t matter if it’s learning more about the language you are using, or about some other part of the project you are not involved with. You should always be trying to gain new skills. This will help with discussing ideas in the team or making up for skills your team lacks, pushing you and your team to produce better results.

So these are some of the important things I have learned from my experience, I hope you found then useful.