Scrum is the most popular project management methodology used in today’s IT industry. On the one hand, it allows to build products very fast, cost-effective and successfully cope with changing requirements. However, on the other hand, it’s quite different from project management within any other fields, so, when we meet a new client, say, a startup in the automotive industry or a consumer electronics manufacturer, we quite often receive dozens of questions on how workflow actually goes. In this article, we will look at all of them — participants and their roles, project management software, timing, as well as reasons of failures and ways to success.
Download this article in a pdf handbook format.
Participants and their roles
In general, there are usually two major parties of the development process — client and a development company. On the client side itself there are many interested personas who might suggest their requirements and recommendations for the product. According to the scrum methodology, we divide them into internal stakeholders and external stakeholders.
Let’s imagine when you own a restaurant and want to develop a mobile or web service for online table reservation. So, as an owner, you are the internal stakeholder. Other internal stakeholders might be an administrator, hostess and other staff. All you want to have an online table reservation, which would be user-friendly and would attract customers.
Your customer is an external stakeholder, who wishes to make a table reservation in an easy and fun way, at any convenient time, even when the restaurant is closed late at night or very early in the morning.
Speaking of the participants on the development company side, they are the development team and their leader — Project Manager (PM). We suggest keeping PM’s position in outsource development, even though it is not common for scrum. The reason is that Project Manager acts as a facilitator for the Product Owner and the Development Team ensuring clear communication and on-time project delivery.
A typical development team includes a mix of developers themselves (for example, iOS developers, front-end developers); designers (if needed, but the client can also hire third design company); QA experts; UAT team.
The Product Owner is a representative on the client side, who makes sure the development team has the product vision. So, before starting a development project, you should define who will be responsible for this in your company.
Product Owner focuses on building the right thing, meanwhile, the Project Manager focuses on building the thing right. They also are kind of “mediators” between the client and development company side, which help all the participants to communicate and understand each other.
Basic concepts and definitions
To better understand how the workflow goes we need to look at what are: product backlog, sprint backlog, sprint.
Your Product Owner should collect information and requirements from stakeholders. They describe their needs in simple, non-technical language. An example would be, "As a customer of a restaurant, I can review the tables that are available for reservation and pick the table. I can choose the reservation date and time. Also, I can mention a number of guests at the table."
Then, your Product Owner together with Project Manager on our side generates the product backlog, which is a wish list of everything that should function in the final version of the product.
Later, we split the product backlog into sprint backlogs.
A sprint is a timeframe within which defined tasks should be done. Each sprint launches with a planning meeting. The purpose of such a meeting is to agree with all the participants (product owner, project manager, development team) what amount of work your development team will have accomplished at the end of the sprint. The product owner defines the key features to the developers, then the team and the project manager divides the product backlog into the more detailed tasks of the sprint backlog.
A sprint goal is a short, laconic statement of what the team is going to achieve during the sprint. It is written cooperatively by the team and the product owner. The following are examples of sprint goals:
Implement basic reservation functionality including add, remove, and update.
Build registration form to input the name and the telephone number of the customer.
Develop the reservation process to be able to choose a date, time, amount of guests at a table.
Create extra features: see the map of the room and tables position, pick the table (in front of the window or next to the fireplace), order romantic decoration with candles and flowers, etc.
Within each sprint, the development team builds and tests a functional part of the product.
Project management software
A tool for managing all the development processes is project management software. It is an environment where everyone involved in the project can review backlogs and track the project progress.
Today, there is a huge variety of project management platforms. Some of them are Redmine, Basecamp, Asana, Trello, Jira, Codebase.
We usually use such project management tools as Jira and Codebase. Jira is the most popular, which can be integrated with other services, meanwhile Codebase has many benefits. You can create tickets that contain all the relevant information for a developer, you can track time and assignments.
Redmine is an open-source management tool, which has multi-language support.
Basecamp gives you the ability to send private messages for quick discussions. It is easy to save and track the client’s feedback and approval.
Asana, like Trello, is another project management solution you may have heard of. The app lets you create to-do lists and reminders so you always meet deadlines. And more importantly, you can track everything you and your colleagues work on.
We might also work with our client’s software if needed.
‘Plan your work and work your plan’, Napoleon Hill
As mentioned, the whole purpose of running a project is to achieve a certain goal. Hence, a major part of the project management is planning and organization as well as the implementation of the created plans.
Usually, it is needed 10-15% of time spent on management. The project manager knows what each member of the development team does, then the project manager sets the status to each member. Typically, there are 10 people on the team. On average, most sprints tend to last two weeks, but this number can vary based on the team’s size or some other factors.
A very important key to the successful project is communication. Discuss your expectations and the expectations of the team before starting working together. Decide together on some general rules for your teamwork, mention how often you would like to get in touch by email, calls or actually conduct a meeting. Talk over who should the product owner contact with if the project manager does not do well.
While creating the backlog, make sure to describe the features in such a way that it expresses the value to the end-user (either customer or business).
Try to write the product backlogs in suggested format by answering who, what and why: As a [who], I want to [do what] so I can [achieve what goal]. A good example is, “As a user, I want to view my previous reservations, so I can remember when was the last time I visited this restaurant.”
Ways to failures
It is essential to have a clear image of the client’s ambitions and expectations so that the development company can offer relevant solutions that fit your budget and time frame. All members of the project team need to be on the same page, therefore, it’s crucial for you as a client, to express all of your expectations and business goals. Lack of such communication we define as the first step to failure.
The next one is trying to launch the development process too fast before preparation and planning are done. Decent preparation and planning at the beginning of the project are like building a foundation for a new house, which supports the whole structure. If the project manager doesn’t dedicate 10-15% to this stage, the project has a high chance to meet different issues in many areas later and the team might have to spend lots of time fixing them.
To sum it all up, to achieve your business goals and develop together with your outsource team software or hardware product that will bring you success, we recommend following several hints.
First of all, define very clear requirements for your product, considering your internal and external stakeholders suggestions.
Second, appoint the person from your company who will be responsible for communication with the development team, i.e. product owner.
Third, before starting the development process, discuss all details and plan the work with project manager (or with your outsource team if PM is not involved) and avoid forcing the start when planning isn’t done.
And last, but not least, agree on common rules for teamwork. Talk over how the communication with your development company will be conducted and how to de-escalate issues, in case if you have some recommendations to the project manager performance.
You can also save this article as a pdf book.