Lately i’ve been pretty excited about work. For the past month i have been a Scrum master in a team of 4 people (including 2 developers, Jose and Pepe and the Product Owner Silvia, who is also the project manager).
What is Scrum?
In a few words, Scrum is an Agile metholodogy for project management. It applies mainly on software engineering projects but is also suitable for other kind of projects. The main idea behind Scrum is to have small iterations of works, delivering a shippable product at the end of each one. The client is really involved in the project (via the Product Owner) and can give his feedback over the product very often and very early in the process. Priorities are decided by him and on each iteration, the team focus on developing the most important stories first, based on the 80/20 rule (80 % of the users will use 20% of the features, so those 20% features should ideally be developped first). Its advantanges compared to more classical approaches (Waterfall) are numerous: flexilibity, frequent and early feedback, prioritization of the scope, …
Silvia is the project manager, but for the Scrum needs, she took the role of the Product Owner. Our business situation is a bit complex and it is impossible to get the client involved and working along with us. So Silvia had the dream role of trying to get the client to share his thoughts with us, and it was far from being easy. The day after the beginning of the Sprint, the client finally gave us screenshots of the sites we were supposed to redevelop, … The other main role of Silvia, obviously, was to decide about the priorities of the features. Although at the end we are supposed to develop everything, it is important to focus first on the most important, and thats what she helped us to do by bringing a more business-oriented vision to our daily meetings.
As a Scrum master, i am in charge of keeping the project moving on and making sure that all the team is following Scrum processes and artifacts. I lead the daily meetings and make sure that we are still in phase with business priorities, while also trying to remove impediments from the team. I am not actually doing any development nor have any decision-making role, but i try to help and encourage team’s communication and keeping track of everything that is done and try to foresee what is coming next to give Silvia some vision.
It is my first experience as a Scrum master and only my second experience overall in a Scrum team. One week ago we actually closed our first iteration, and made a demo to Silvia and some stakeholders (3 of my superiors including my head of division).
To be honest, for all of us, this first Scrum experience was really made in a complicated context – most of the time not compatible with Scrum:
- even after beginning the first sprint, we kept adding tasks and changing the sprint, first because the requirements were not 100% complete yet, and second because everybody was discovering the platform so there was many unplanned elements to configure and/or implement,
- the development team is only made of 2 people, not cross-technical. They can’t really replace each other (one is more front-end oriented whereas the other one is more back-end oriented) and don’t work at the same hours and same places,
- we are literally spread all over the world. Jose is working with me in Madrid, Silvia is working from home near San Francisco and Pepe is based in Mexico,
- Internet connections were sometimes failing in Mexico.
But we made it and actually got a nice result, thanks to everybody’s work.
The main issues we had
We had a lot of issues during the Sprint. Some we could and should have anticipated more, some we seriously couldn’t do anything about:
- for both front and back-end, we were behind an internal framework for which there is little documentation and we barely received any training. Good thing Jose was here, cause he knew a lot, but Pepe obviously did struggle for some time on learning how to actually use the framework for the front-end part (being based in Mexico, he barely has any technical support since people using the framework are all in Madrid). He actually learned fast and improved some of the basic stuff that were made from Madrid!
- requirements and technical details of what was REALLY needed were sometimes coming or understood late,
- since we had only two developers, sometimes one for waiting for the other for some explanation or some piece of code logic to be available.
The BIG mistake
We actually started the Sprint without fixing an end date. Although it is one of the basic thing for a Sprint, we thought that just fixing the scope would be enough. BIG MISTAKE. After a while, we realized that we were not focusing anymore on having something deliverable and shippable to show at a given moment. Thats when we started worrying about priorities and really put apart some of the stories, although it was hard.
Despite this, we managed to bring fresh air to the logic and the front-end.
And we are now running the second sprint
When doing Scrum, the best situation is when all the team is in the same room, with a big wall or a big whiteboard. People can draw a complete sprint backlog and a complete product backlog on the whiteboard, and physically moved stories (post-its) from one state to the other. The simple act of actually moving a story is usually a real plus in the process.
Unfortunately, due to our particular situation (4 people spread over 3 countries), the physical whiteboard would have been too complicated.
So we went for an Excel sheet, that i improved along the Sprint, basically saying for each story the remaining estimated time; and also gathering also information like the actual velocity of the team, the planned time (supposing people were able to produce 0,7 man day by day), …
We tried also Pivotal Tracker, but found some problems with retroactively doing a Sprint backlog, and with remaining estimations.
About the team communication, well most of it was done through email. Scrum meeting were held at 5pm (CET time), in a meeting room, using Skype for the calls and Webex to share my desktop. I would usually share the Excel backlog and directly input the info on it, live; as well as share the PDF documents or Firefox to read an email together!
And i think thats it… Other sprints are on their way so i’ll let you know about any relevant new info about Scrum or our use of Scrum!