These days, building a house (unless it’s a hut in the wild) is most likely done not by its owner, but by a whole team of contractors who know their work well. But in order for the result to be exactly the way the owner wants, it’s important to show up regularly at the construction site and check on the progress that’s been achieved. However, the control functions, to a large extent, can also be entrusted to specially hired people.
Developing software that meets modern realities is similar to building construction. In a serious software project, many specialists are involved in various roles. In addition to the developers, it’s mandatory to include a Product Owner (PO), Project Manager (PM), and Technical Lead (TL) in the team. Why did we use the word “mandatory“? Good question. If you read this article to the end, you’ll have an answer. Also, you’ll know what each of these roles is and about the expectations the development team has for the business they’re working for.
What? “Expectations for the business”? That’s right – it’s a two-way street. After all, the contribution of each partner depends on how clearly the interaction between the main participants of the project is organized. Clear interaction leads to successful implementation of common goals. Of course, the real world makes its own adjustments. But even if (surprise!) you have to mix the functions of different specialists, it’s useful to know who should actually be responsible for what.
Driving the SDLC: Roles and Responsibilities
Concerning SDLC, it would be appropriate to briefly remind you that we at Django Stars prefer to use the Scrum methodology, which involves breaking the development process into repeating intervals called sprints. The results of the work after each sprint is a workable product (or prototype), which becomes more and more perfect with each successive iteration. The positive difference between the previous iteration and the new one is called an increment. You can read more about popular approaches and the main stages of the SDLC in the article that looks at the Software Development Process from the Inside.
Who are the PO, PM, and TL?
The three main roles in the SDLC are:
- The PO (product owner), who is a business representative or a voice for the stakeholders. Another name for the PO is the requirement owner, as they make sure that development is done in accordance with the project requirements.
- The PM (project manager), who can be considered a team representative. The PM’s task is to coordinate the work of the participants and organize meetings and negotiations.
- The TL (team lead), who focuses on technical implementation and advises on how to translate initial ideas into technical solutions. They also monitor the architectural logic of the product and solve other technical issues.
How the Lead Roles Interact During Development
Let’s take a look at the “ideal” scenario of interactions among these roles. At Django Stars, we usually strive to adhere to them.
The PO creates tasks, prescribes requirements, and sets priorities. After the team discusses the tasks and evaluates them, the PM, based on information about the team’s estimates and velocity, shows which scope — part or all of the proposed tasks — the team can take into the sprint. The PM draws up a Commitment letter, and after PO approval the team is ready to start the sprint. Also, the PM organizes any necessary meetings for all project participants. Meanwhile, the TL helps shape the initial ideas into software solutions, builds the product’s architectural logic, and oversees other technical tasks.
After implementing the sprint tasks, the PM prepares reports (including reports on the tests performed). This information is passed on for review by the PO and stakeholders such as the client’s CEO, investors, and other persons who provide feedback and make the final go/no-go decision (whether to release the achieved results).
What is Needed for SDLC Management Roles?
Next, we’ll delve into each of the roles and how they should be performed to make the project meet your expectations in terms of requirements, timelines, and costs.
Product Owner (PO)
The main responsibilities of the PO are to set the direction and prioritize. Since he or she represents the stakeholders, the PO must clearly communicate their interests to the development team.
The ideal PO has many important skills, namely:
- Expertise in the business domain;
- A strong understanding of the product, its requirements and objectives;
- The ability to remain fully involved in the process;
- Competence in making decisions about prioritizing, accepting work, and identifying important features;
- The ability to communicate decisions to the main decision-maker (if it’s not the PO themselves);
- The ability to convey information to the team (i.e., the ability to create good User Stories);
- Knowledge of how to communicate new requirements and keep old ones up to date;
- A vision for the future.
Clear understanding and the ability to communicate it are critical. If the PO fails to explain the requirements or prioritize correctly, the team runs the risk of deviating from the course. In other words, something necessary may not be done, or something done may require redoing — and both mean additional costs.
Good to note: As for the creation of User Stories, we recommend that you check them using the INVEST rule. This means you should make sure each story is:
- Independent (allows for implementation without the need to implement any other User Story)
- Negotiable (leaves space for discussion with the developer team)
- Valuable (brings value to the users/stakeholders)
- Estimable (is measurable in terms of the time and effort required to implement )
- Small (fits freely within one sprint)
- Testable (allows validation by QA)
If the PO isn’t very familiar with the User Stories, a reliable vendor can help.
Please note that the business owner and the PO are not the same person. Unfortunately, these two roles are often confused. Of course, it’s possible to combine them. Sometimes a business owner says: “It’s easier for me to take part as a PO than to impart my experience and knowledge of the domain to someone else.” However, keeping in touch with the development team, tracking progress, keeping track (documenting) of what’s been done, and scheduling further tasks are all jobs that take time and attention. For example, at Django Stars, the standard team schedule in a current sprint includes backlogged task research to prepare for the next sprint (in Scrum, this process is called Backlog Refinement). This helps us avoid downtime but usually requires maximum involvement of the business representative.
Thus, the business owner needs to take a sober look at his capabilities. For those who aren’t ready to participate in regular calls with the team at least once a week and promptly answer questions in chats, it’s better to hire a PO. The good news is, if you don’t have a suitable candidate in your company, the right vendor can provide one. If you have high expertise but little time, some part of the worries can be compensated with more business analyst (BA) involvement. And of course, the more detailed the requirements, the less often our team needs to contact a business representative.
But one more important nuance should be taken into account here: the PO must be ready and authorized by the business owner to make decisions. Or, if the business owner wants to make the most important decisions, PO must be able to contact them quickly. After all, the speed of decision-making is crucial for any business (not to mention the fact that delays lead to cost increases).
Tips for the PO
When participating in a software development project, the PO should take into account many nuances. For example, here are a couple of points to watch out for:
- PО and testing.
Often, the PO tries to take on the testing, as they approve the work developed by the team. But the PO must understand that testing is QA’s job. And the approach “I’ll click it myself and see if everything works” isn’t enough here. The PO must have its own acceptance criteria from the point of view of business logic, functionality, and product value for the user. In contrast, QA digs deeper and makes sure that all the functionality works the way it should, that there are no bugs in the code, and everything works efficiently.
- PO and stakeholders.
Delivering the sprint results requires review from the PO and a go/no-go decision by the business party. This means the PO and all the stakeholders need to be involved every 2 weeks (when there are 2-week sprints). Therefore, it’s important to plan such activities on the business side, so as to involve everyone who should see the results before the release.
- PO and feedback.
If PO isn’t the last link in decision-making, then any product changes need feedback from those who are that last link. Revisions, if any, need argumentation because it helps the team understand where and how to improve the product. As a tech partner, we can offer the most effective solutions if we understand the ultimate goal, priorities, and context.
Project Manager (PM)
As an integral part of the team, the PM organizes the smooth operation of all processes and ensures there’s clear and open communication between the business and the vendor. As the person who monitors development progress and resources, the PM will have to:
- plan time and tasks for the preparation of versions and releases according to the Project Roadmap;
- manage development iterations;
- coach and sync the development team;
- report on time/efforts and the delivered features;
- ensure efficient communication between the team and the Product Owner.
Who is the PM to the PO?
For a project to progress quickly and successfully, an effective PM should know the project well, anticipate possible difficulties to avoid them, and smooth out roughnesses in team collaboration. However, at Django Stars, the PM acts not as a wall between the PO and the team but as a liaison that establishes uninterrupted communication between all participants, debugs the process, and ensures that everyone receives enough information for their work and decision-making.
What can the PO do for the PM?
For the PO, it’s important not to hesitate to use this support and communicate new decisions to the PM clearly and promptly to avoid possible misunderstandings. The fact is that proper time and cost planning in project development depend on the level of mutual understanding achieved.
Team Lead (TL)
It’s up to you to decide who is “mom” and who is “dad” on the project, but the PM and TL are really like parents in the sense that they provide the team with everything they need to develop, including requirements, priorities, context, and solutions. Just keep in mind that a TL is appointed exclusively by the vendor because they need to be trusted by the team.
The tasks that the TL can handle are the following:
- projecting the right architectural solution;
- monitoring how the solution is being implemented;
- communicating with the PO;
- helping make the right decision if there is a dispute (concerning technical solutions);
- helping to validate the roadmap (concerning the possibility and advisability of choosing this or that solution).
Who is the TL to the PO?
The TL not only coordinates the engineering team’s activities but also assists other lead roles in the software development life cycle with planning. In addition, the TL ensures that the developers’ estimates are realistic and align with everyone’s velocity. For the PO, as the person responsible for development results, it’s useful to rely on the proposals of the TL when prioritizing. And this is the person who can show the PO better ways to manage their major task: to deliver the best outcome with minimal output.
TL’s Expectations of the PO
It’s good if the PO sketches out a roadmap 3-6 months in advance, in view of the fact that product architecture decisions and development detail depend on this. Overall, when the team understands clearly what’s being done, and how and why, and sees where the project is heading (not only with the planning horizon of next two weeks but also in the annual perspective), it can benefit the business by making reasonable proposals, improving the quality, and optimizing resources.
Also, the PO mustn’t hesitate to consult with the TL. If the PO doesn’t understand any technical points, it’s wise to clarify them before making any decisions. The fact is that even a minor change in product design can strongly impact the architectural implementation. Then, the TL expects the PO to notify them as soon as possible about the intentions and reasons for the changes made to the requirements so they can consider the dependencies of the various parts of the project.
The Chemistry of an Effective Team
At what point does a project become successful? What does it take for the chemistry to happen between the main roles in the team? These are tough questions, and each team always looks for its own answers. But, perhaps, the search will be easier for you if you take a glance at the list of the major role interactions:
- PO and TL
While the PO liaises with stakeholders and thinks about product features from a business point of view, the TL’s concern is technical optimization and improvements.
- PO and PM
The PO can discuss the delivery rate with the PM, who considers the available resources to plan how the project can be implemented more efficiently.
- PM and TL
The PM and TL together control the scope of the requirements. They validate the PO’s requirements from two sides and, after agreeing with each other, transfer the information to the Team.
In short, the PM thinks about resources, the TL focuses on solutions, and the PO is in charge of priorities and desired deadlines. For more details, refer to the table below:
SDLC Roles and Responsibilities
| || || |
It remains to be said that these roles shouldn’t stay apart from each other. Quite the opposite: in a well-managed software development life cycle, roles and responsibilities constantly “enter into reaction” to create something new.
Conclusion: Be on the Same Page
As in many other areas, much of the success of a software project depends on the right choice of people for the key roles. A good vendor — meaning not just the performer, but a vendor that can be called a technical partner that provides end-to-end solutions — is ready to take on most of the worries and even provide problem-solvers from its side. But if a project belongs to you, you definitely want to have the privilege of making timely course adjustments. And this means that you need to give the project enough attention yourself or find people who will do it for you.
Take advantage of your knowledge of the qualities necessary for the PV, PM, and TL. Only as a result of their coordinated work can a project be sustainable, built on time, and in line with the plan.