World is Faster, thus Our Work is Agile
World is Faster, thus Our Work is Agile
What is this mysterious agility, why is it so now and demanded, and what are the predispositions of an agile team?
Why Go Agile?
As our lives have become faster, we don’t want to wait half a year for something they could have ordered already last year. We want to see at least a bit and as soon as possible. We are happing having a bit today and another taste next month, which will gradually bring get us the full ordered portion.
The biggest advantage of agile, iterative development is that you can say anytime you want things differently, and this change won’t mean a complete reorganisation and revision of already finished work and thus unnecessary extra cost.
How Did it Start? Pretty Naturally.
Who ever works in IT projects knows that a few years ago the common standard of was so called waterfall, i.e. running a project based on particular blocks from analysis, through design, development, testing, deployment and finally – launch.
Let’s walk through this with an example: a big corporation has decided they want a new intranet. They have called a tender, as they were not able to supply their own capacities. They have picked the winner and kicked off the project. Analysts came into the company at the first analytical stage to examine the client and the needs, as to see what the customer is actually after so that the new intranet is designed accordingly. The analysts have noted everything down and produced a 150 document called business analysis, full of text, charts, tables, while this stage took the usual 2-3 months.
Following this, the document was approved for "production", after which an army of developers was deployed, who started producing the whole intranet following the agreed set up. Then they had worked for 5 months on the first stage, which they were gradually showing first to their own testers and then the client. So now after three quarters of a year, the client could "already” see what they actually ordered only to find out they want at least half of it done differently and thus submits a change request, which results either in final price increase or in project extension. The changes have been accepted and final testing was done, after which finally one day the intranet was launched for the company employees. From the kick off until launch passed one year. From every day experience we know that only that is the moment when employees spot series of bugs, as they were used to working differently with their intranet and the new one operates differently and they are not able to look up things as fast as they need to.
There have been millions of projects of this sort both on the Czech and international market. In the course of time everybody has come to the realisation that the process needs to be sped up, and go to the client with the product whatever kind of product it is, so that we get feedback without delay, which will be then reflected so that the newly upgraded product can be delivered as soon as possible. And this is how agile came about. There are many agile methods and approaches, while the most used and known is Scrum.
Scrum is a handy, universal guide defining how an ideal project team should look like, what the roles in a team should be taken up so that it works properly; and how the team should go about producing the expected product.
Let’s have a look now at what and who make up Scrum and how it actually works.
Scrum defines three main roles - Scrum Master, Product Owner a Scrum Team.
Let’s go through them.
- Scrum Master is an insightful, alert and communication-capable organizer who constantly oversees if the team works happily, undisturbed, and makes sure the team always has enough smart ideas and tasks in stock. In practice, it is the usual former "project leader", who is easy to communicate with both the CEO and the junior testers. S/he organizes all the scrum sessions / meetings, and acts as SPOC (Single Point of Contact). S/he serves both as a buffer and a communicator between the outside world and the team.
- Product Owner
- as the name suggests, this is the person who comes up with and prepares what is actually to be produced. S/he has a carefully organized and well-arranged list called Backlog - a job stack. S/he is the person who represents the client; s/he acts in the client’s interest and wants to deliver as soon as possible what the client has ordered.
- Scrum Team
- is a creative team, that's the hands that make it all happen. Usually, they're developers, coders, testers, analysts, and more. The most common scrum team is usually made up of 5-10 people. More or less may be actually do harm and a team with more than 10 people is no longer so agile and efficient.
Artefacts – or so called building features
In software development methodology, *Artefact stands for a visible output that is produced during development.*
As much as standard waterfall projects, agile projects contain artefacts. This entails (mainly) physical outputs and documents following the project process, yet in comparison with waterfall projects, the outputs are much more active, more often edited and shorter in their content, thus more practical for swift development.
Backlog - We have already mentioned it above. Imagine it as a list of all to dos, a work stack that needs to be resolved or made and delivered. Items listed at the top have the highest priority and need to be started on as soon as possible. Product Owner exclusively manages it, but everyone has can contribute and chip in with their idea. Then the Product Owner reviews it and decides, possibly after consulting the team, whether the idea will be implemented or not, and will determine its priority.
Sprint - is a time unit, most often a 2 week block, which has a clear start and end; and, ideally what we deliver to the client what we had planned at the beginning. - is a time unit, most often a 2 week block, which has a clear start and end; and, ideally what we deliver to the client what we had planned at the beginning.
Sprint Backlog - is the part of Backlog, which is the focus of one development block - Sprint. It’s a list of tasks and work for one Sprint.
Increment - means a piece of a finished product that can be used in some way. Picture it, for instance, as screen wipers on a car - it already has the control lever, the engine, and the wipers. When it is all connected to the electricity the wipers will wipe. The whole product – in this case a car -is composed from such similar pieces (i.e. increments).
Burn-down-chart – something has burnt down, or what? No, don’t worry, that’s not the case. I it is a detailed chart indicating where we are at with completing the individual sprint tasks.
Scrum Board – it is best to use the good old style board, or a wall and post-its. Each member of the team has its own line, has its assigned tasks (every task gets a ticket), which are gradually shifted from columns (TO DO - IN PROGRESS - DONE), as to make clear what has already been done, what is in progress, and what there is to do. The board should be public so that even a person outside the project can see at one glance how the team is doing and what has been done.
*Session means a development meeting of people working on the project.*
Agile allows much more flexible communication between the client and the supplier (whether it is internal or external), nevertheless this communication must follow certain rules. Agile does not mean that we can change everything all the time, but it clearly indicates appropriate intervention moments. Scrum meetings, or sessions, help to keep the right direction, and at the same time they show when it is good to intervene and change the direction.
Planning - is about planning work for the next Sprint. Product Owner determines the Sprint Goal – i.e., the main goals that must be achieved, and thus takes the individual” notes" with tasks. Scrum Master then officially launches the Sprint. This meeting should not take more than an hour.
Grooming serves to help the development team evaluate and dispute the idea the Product Owner has brought to the team. For example, he thinks he wants to overwrite, enlarge, and add new features to all buttons and other active elements on all screens. He thinks it can be handled one Sprint, and the team either confirms it or disproves it, and explains why it's not easy. Also Grooming should ideally not take for more than an hour.
Stand-up is probably the best-known concept of all agile development. This is a very swift and quick, synchronizing meeting that should ideally take just as many minutes as there are stand-by members. Thus a well-organized team of eight should be able to have this meeting in eight minutes. Each member during his minute of glory will say just what s/he did yesterday, what s/he will do today and whether s/he facing any obstacles or issues. Scrum Master notes down such obstacles, and resolves them the meeting, because not everyone is interested in the same problem. The advantage is that every team member knows on a daily basis what is happening on the project. (unlike in a weekly status system). However, the main goal of Stand-up is not the micro-management of individual members, but above all to know what the team will be doing as a whole in the next few hours.
Demo - Sprint is followed by a Demo. A client’s representatives attend demos, or the client can come personally. It is for people outside the project to show what the team managed to do during the last Sprint. Clients can provide interesting insights and feedback, discuss them with the team. Demo takes about an hour, it can be more in case of bigger and more active audience, but it should not exceed two hours.
Retro - or retrospective - is an in-house meeting of team members, assessing their own work and the approach they have taken. They give each other positive and constructive feedback both about the individuals and the team. They say what they have been enjoying, what they do not like, what they want to start with, what to close with. At the end, 3-4 main outputs will be determined, and then the Scrum Master will designate the person responsible, who will ensure remedy until the next retrospective. This meeting should not take longer than the magical one hour.
More Time for Work
So if we have a ideal team, a well-planned two week Sprint, and a well-organised Backlog, we can easily do the maths, which will tell us we don’t have to spend 2-3 hours a day in meetings, and discussing the project. We just need 1x planning, 1x grooming, and 1x demo, 1x retro a 10x stand-up. This means our meetings will take up maximally three hours a week...That’s a bit of a difference, right?
Scrum has also become a useful tool also outside the IT world. These days we can see companies having regular Stand-ups; company managements don’t plan a few years ahead. They aim for shorter goals instead, which are assessed without delay, feedback is given through retrospectives, teams meet more often for shorter periods of time, and no on is annoyed by long meetings.
All in all, Scrum is a universal development method, and can save a lot of time and resources when organised well. Its best upside is that it reflects changes extremely fast, and it will give you just what you want. It puts larger emphasis on team organisation and engagement of individuals, rather than the standard „waterfall“ development method. It certainly causes no chaos.