Making sense of the roles in a software project
Making sense of the roles and responsibilities involved in a software project will make your life much easier. In this section we will give a short overview of the different roles that can be involved in a software project.
As a general guide, the start of your project will involve an initial discovery and design phase. This can last anything from a few days to a couple of months. During this phase you will need to involve a product owner, project manager, business analyst, UI/UX expert and at least one senior technical expert. It is useful to have a senior tester involved if your budget allows.
It is towards the end of the initial discovery and design phase when you can determine the roles required and the number of people in each role. The number of people will be primarily affected by your time-to-market needs and budget. The roles involved will be determined on what it is you want developed.
So, what roles are required for a software project?
There are many roles and responsibilities, not all of which are required all the time, and some which will not be required at all depending on the type of project being considered. Below is a brief overview of the more common roles and responsibilities that would be involved.
Suitable secondary roles
Product manager, business analyst
"Individual commitment to a group effort--that is what makes a team work, a company work, a society work, a civilization work."
This role should be filled by a senior person who has good knowledge of the business. They need to have the authority to makebusiness decisions throughout the project's lifetime. The project executive is responsible for delegating business decisions to the product owner and the day-to-day management of the project to the project manager. Normally this role is found within the client-partner’s business.
The product owner has the ultimate responsibility for ensuring that the project requirements fulfill the needs of the business.They must also make sure that the final product lives up to these expectations. This role requires an understanding of the strategic objectives of the project. Furthermore, this position requires an understanding of how all development requests are expected to deliver value for the business.
The project manager maintains the portfolio plan. The product owner on the other hand will own the portfolio on behalf of the company's senior management and is therefore usually an employee of the client-partner.
The project management role cannot be fulfilled by "just anyone". You want someone that is candid, structured and organised. The project manager is responsible for managing the project and its people on a day-to-day basis. A good project manager facilitates the flow of work by ensuring everyone fulfills their responsibilities. This is a role that is often given less emphasis than it deserves – an experienced and skilled project manager is worth their weight in gold in terms of the business value and cost savings they deliver by ensuring tasks are well understood, the project team members are fully utilized and that timelines are realistic and delivered.
This position is responsible for the overall systemdesign of the product. This includes the integration between various component systems. Given this role needs to understand the interactions between all the different system components the person is usually a senior technician, often having experience within the specific industry segment for which the software is being developed.
The technical lead is the go-to person for advice on technical issues. They play an important role in making sure the businessgets what it needs. Technical leads are respected for their knowledge and willingness to help others within the team.
Business analysts work closely with the product owner and the end users. They have the skill to ask questions that uncover business needs that you might not have thought of. Once the business analystunderstands your business needs they document the necessary requirements for delivering the right solutions. This isa key role that is sometimes thought of as an adjunct to the Project Manager role or the Product Owner role, however the skill in documenting the business needs in a way the technical team members understand is a key attribute of the Business Analyst.
The result of a project is intended to make the life of the end user easier and more efficient. Because of this, the end user is one of the most important roles in a project. As the end user knows best what they need help with they are responsible for defining the capabilities required of the product together with the businessanalyst. They are involved throughout the project to make sure everything that is delivered solves a problem and makes their life easier.
The end user makes use of user scenarios and acceptance tests to confirm that they are getting what they need from the project. As they are involved throughout the project they can quickly raise concerns if they are not getting what they need.
The role of quality assurance entails ensuring that the development process keeps an appropriate quality level throughout. They are also responsible for making sure that all elements of the product mesh together and do not interfere or counteract each other.
Testers are responsible for ensuring that the developers' work passes the documented acceptance tests. Therefore they make use of test cases to ensure the quality of the product is as expected, as well as catch any bugs that might have made their way into the code. This is necessary to ensure that new functionality does not break existing ones and that features deliver the required capability.
Well thought through automated testing can save time and reduce the number of professional testers needed in your team.
UX developers and designers make it easy andintuitive for people to work with digital solutions. Therefore, they need to understand how people naturally work. A good UX developer has an interest in how humans think and act. They use their knowledge of your users’ culture and society to make sure your digital solution does what they expect. UX developers create wireframes and carry out usability tests before the frontend developer implements the functionality.
The designer works closely with the UX developer to produce the desired design of the product interface. They ensure that the digital products represent the business brand in addition to providing the desired user experience.
A frontend developer crafts the visual representation of you have asked for. They do this based on the wireframes and design, as well as documented user scenarios and acceptance tests. Itis this interface that the end user sees and interacts with to use final product and because of this visibility is often thought of as the most critical component. In actual fact the visual representation should just be a reflection of all the quality work that goes on in the background.
Backend Developer (business layer)
The backend developer implements the digital core logic needed by the business. Backend developers take data and turn it into information that can be used by people and other digital systems. They give you seamless flows of information across your organisation and to your suppliers and customers. End users interact with the features created by the backend developer indirectly, through the frontend developer's interface.
Your business data needs to be stored and managed. How and when this data is used will dictate how you store and manage it. Database experts have the knowledge of how to create and maintain the digital storage of data.
Search Engine Optimisation (SEO Expert)
If your business is dependent on reaching customers online, you need an SEO expert. They help craft information in a way that allows search engines to find you and give greater exposure to your customers. The SEO expert works with your marketing department to make sure that your digital content is promoted by search engines.
Analytics and Reporting
This role in software development is responsible for documenting the analytics. Additionally, it includes fulfilling the requirements for good analytics and reporting tools. This task also often requires integration with third party tools.
The security expert oversees the security of digital systems. This includes preventing the exploitation and use of the digital systems for criminal activities, such as accessing customers' credit card information.
It can be daunting to be faced with a list of responsibilities as outlined above, especially when time and finances are tight. What is the best configuration for your specific project? How can the team be constructed to make best use of your available budget? How can your project or system maintenance be delivered cost effectively with high quality?
Forbytes can help answer all these questions, but one area where we often get questions is with regard to multiple roles.
In large companies several people are likely to have the same or similar roles. For companies with limited resources one person may take on several roles. It may even be that the roles of individual team members change from project to project, to provide variety and broaden their experience.
Naturally it is important that the individual taking on a position possesses the necessary skillset to do the job. This is no less true when taking on multiple roles. Additionally, some roles are more easily combined than others. This can offer cost savings and help utilize the time of individual project team members more fully too.
Below is a chart indicating our view of which roles can be combined. Note that as with all aspects of teamwork, it is the ability of the individual person that makes the combination work.
Suitable secondary roles
Project manager, business analyst
Additionally, if different client partners have compatible, non-competing businesses we may able to offer the sharing of individuals between two (generally not more)teams. These options will all be discussed during our set-up process so you can be confident you will receive the business facility you require on budget and on time.