Scrum is the most popular project management methodology used in today’s IT industry. On the one hand, it allows to build products in a fast and cost-effective way, and successfully cope with changing requirements. However, on the other hand, it’s quite different from project management within any other field, so when we meet a new client, say, a startup in the automotive industry or a consumer electronics manufacturer, we 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 for failure and ways to success.
Download this article in a PDF handbook format.
Participants and their roles
There are usually two major parties of the development process — the client and the development company. On the client's side, there are many interested parties 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 you own a restaurant and want to develop a mobile or a web service for online table reservation. So, as the owner, you are the internal stakeholder. Other internal stakeholders might be the administrator, the hostess, and other staff. You all 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's side, they are the development team and their leader, Project Manager (PM). We suggest keeping the PM’s position in outsource development, even though it's not common for Scrum. The reason is that the 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 (for example, iOS developers, and front-end developers), designers (if needed, but the client can also hire a third party design company), QA experts, UAT specialists.
The Product Owner is a representative of the client who makes sure the development team has the right product vision. So, before starting a development project, you should define who will be responsible for this role in your company.
The Product Owner focuses on building the right thing, meanwhile, the Project Manager focuses on building the thing right. They are also mediators between the client and development company, helping all the participants to communicate and understand each other.
Basic concepts and definitions
To better understand how the workflow goes, we need to understand what a product backlog, a sprint backlog, and a sprint are.
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 one I like. I can choose the reservation date and time. Also, I can specify the number of guests at the table."
Then, your Product Owner together with the Project Manager on the development team's side generates the product backlog, which is a wish list of everything the final version of the product should be able to do.
Later, we split the product backlog into sprint backlogs.
A sprint is a timeframe within which a defined set of tasks should be done. Each sprint launches with a planning meeting. The purpose of this meeting is to agree with all the participants (product owner, project manager, development team) on what amount of work the development team should have accomplished by the end of the sprint. The product owner defines the key features for the developers, then the team and the project manager divides the product backlog into more detailed tasks of the sprint backlog.
A sprint goal is a short statement of what the team is going to achieve during the sprint. It is written cooperatively by the whole team and the product owner. The following are examples of sprint goals:
Implement basic reservation functionality including add, remove, and update.
Build a registration form to input the name and the telephone number of the customer.
Develop the reservation process to be able to choose the date, time, and number of guests at a table.
Create extra features: see the map of the room and the position of tables, 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 called project management software. It is an environment where everyone involved in the project can review backlogs and track the project's progress.
Today, there is a huge variety of project management platforms. Here are a few of the most popular ones: Redmine, Basecamp, Asana, Trello, Jira, Codebase.
We usually use such project management tools as Jira and Codebase. Jira is the most popular since it can be integrated with other services, but Codebase has many benefits too. You can create tickets that contain all the relevant information for a developer, as well as 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.
At Lemberg, we are usually open to using the client’s software if they have strong preferences.
‘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 project management is planning and organization, as well as the implementation of the created plans.
Usually, 10-15% of overall product development time is spent on management. The project manager knows what each member of the development team does and sets the status for each member. Typically, there are 10 people on the team. On average, sprints last two weeks, but this number can vary based on the team’s size or some other factors.
A very important key to a successful project is communication. Discuss your expectations and the expectations of the team before starting working together. Decide on some general rules for your teamwork, mention how often you would like to get in touch by email, call, or in actual in-person meetings (if possible). Talk over who should the product owner contact with if the project manager is unavailable.
While creating the backlog, make sure to describe the features in such a way that expresses the value for the end user (either customer or business).
Try to write product backlogs in the 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 the last time I visited this restaurant was.”
Reasons for failure
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 timeframe. All members of the project team need to be on the same page, therefore, it’s crucial for you as the client, to express all of your expectations and business goals. A lack of such communication is 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 which will support the whole structure of a house. If the project manager doesn’t dedicate 10-15% to this stage, the project has a high chance to experience complications 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, a successful software or hardware product, we recommend following several tips.
First of all, define very clear requirements for your product, considering your internal and external stakeholders' suggestions.
Second, appoint a 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 a project manager (or with your outsource team if a PM is not involved), and avoid forcing the development part before planning is 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.
You can also save this article as a PDF book.