Agile World - A developer point of view - Part -1
Disclaimer: im not an expert on the agile world. I have had the role of scrum master and i am also a developer with some years of experience. So this post is based on my experience :).
So when you enter to a new company they always tell you that they are agile and they use scrum and teams are organized in scrum teams.
Cool right ? So you have daily standups.
First day is super cool you meet the team and you see that they report what are they doing but nobody else asks any question. Maybe there are no bugs in the team you think to yourself.
After a week, same ceremony. You even notice that other people is just checking their phones and waiting for their turn to speak. So you think ‘ok, maybe team is super proficient and they dont have problems to share with the team’.
Later that day a dev in the team reports that there is a big issue that QA has reported yesterday and he wont be able to deliver the fix.
Next day, daily standup is done same dev report that he wont be able to fix the issue on time. So you think. Ok i will help. But then the tech lead tells you that you should not help as the other dev should fix this asap by himself. And two devs sitting together is a waste of time. Scrum Master just nod his head and updates the jira. End of the meeting.
Some two weeks have passed and now you are used to these futile daily standups. Now its time for the sprint reviews. So you are super excited to show off your work and also see what the other teams have done.
So it is time for your demo. Your progress is just the backend of the feature. So you prepare some api scripts to show your API. So teams enter to the meeting room and you show your API and explain what it does. Time for questions you think. But nobody asks questions. The business people tells you that let the know when all is completed so they can see what they offered to the customer. One QA asks you if you can share the scripts so he can use them for his/her testing.
So you think. Ok no big feedback so my progress must be good !.
Then its the turn of your favorite co-worker and you are ready to asks questions. Demo is good but you notice that there is a gap that will cause some users problems. So you ask the questions but your questions are quickly answered by one of the leads of the team: this is the scope of the release and adding more scope involves more resources and time that they dont have. The scrum master and the product owner nod as sign of agreement.
So answers to doubts where kind of the same:
- There are no resources
- This is the initial scope
- It could be included as a bug in the next release
- Why don’t you ask this in the planning ?
- Lets have a meeting after this one and talk about it.
Release is done and some features were delivered with reduced scope and bugs. Despite all you are still happy that your first little assignment was delivered on time !.
So it is time for the planning for the next release !!.
So you are now assigned for a big task. It is time for estimation. So you have read the requirement document and also the technical design document. So the scrum master starts the ceremony and assign poker cards. After 30 minutes of explanation of poker planning. You are ready to listen to the tech lead to explain the feature. So everything is explained and some questions are asked. Then each member of the teams give its estimation based on poker. So estimations are ok and then JIRA item related to this task is created.
So after one week and you are doing progress and then you open your email and an urgent bug was assigned to you. As you are no longer a new member you can fix production issues. So you try to solve the production issue but you dont know to whom should you ask. So you start having meetings with support team and also with some business people. After 3 days you can reproduce and understand the issue and you finally send the code to review. Now you are back and report in the daily standup that you fixed the prod issue but now you have a little delay in the feature. But as the feature was already sold; it must be delivered anyway. And you start working extra hours so you can deliver the feature….
All of this happens in every release. And then you enter to an infinite loop…for all eternity !!
——— The End. Is it ?
No, it is not the end.
IMHO doing the scrum ceremonies does not imply that you or your company is agile !.
So what is the essence of being agile ? IMHO again. It is feedback based on observation, learning and experimentation.
Lets use the daily stand-ups to explain myself about it.
Typical Daily Stand-up
Day 1:
- Scrum Master starts the meeting
- Nobody talks.
- Somebody starts to report to the scrum master or tech lead.
- Nobody asks questions.
- JIRA is updated.
- Repeat from 3 to 5.
Day 2:
- Scrum Master starts the meeting
- Nobody talks.
- Somebody starts to report same as Day1. E.g. Im still working in this item.
- Nobody asks questions.
- JIRA is updated.
- Repeat from 3 to 5.
And so on….
Enhanced Daily Stand-up
After 1 month of having typical dailys:
Day 32: (FEEDBACK)
- Scrum Master starts the meeting
- Nobody talks.
- Somebody starts to report to the scrum master or tech lead.
- Nobody asks questions.
- JIRA is updated.
- Repeat from 3 to 5.
- Give the team a SURVEY with the following questions:
- Why dont you ask questions about your co-worker feature ? Please explain.
- Do you consider this meeting useful ? How can be improved ?
- Do you consider JIRA useful for you ?
Day 33: (LEARNING) So the scrum master have read all the answers to the survey. And he is surprised but happy with the answers. He realizes that stand-ups were not useful for the team but only to himself and the stakeholders. And also that nobody asks questions because team is repeating the same items over and over. So the scrum master and the team agree a new way to do stand-ups
Day 34: (EXPERIMENTATION)
- Stand-ups are now every two days.
- Any member of the team starts the meeting
- Somebody starts to quickly explain a subtask that he is doing today and tomorrow. But he might need helps of QA for an item.
- QA asks questions.
- JIRA is updated by the scrum master in the meantime and without interrupting the team.
- Repeat from 2 to 4.
Obviously this is not perfect yet and it might failed too. But then you ask for feedback again and propose a new experiment. But that is the essence of agility: to be FLEXIBLE and learn in order to deliver more value to the customer.
EOF