Stakeholders in Software Architecture
Who are the stakeholders of software architecture? To answer this, we must first understand the meaning of stakeholders. Stakeholders are people or organizations with rights, shares, claims, or interest in the system or property that meets their needs and expectations.
These stakeholder interests influence the software project that is being worked on. So, their opinion must always be considered. If we don’t do this and ignore one of the key stakeholders, we can ruin the whole project, and that would be a lot more expensive than just letting bug production happen. Stakeholders provide opportunities and boundaries for the system and are a source of requirements.
The exciting situation often happens that stakeholders are not identified before the decision-making stage. But once a decision is designed, announced, or implemented, everyone affected by this decision will have a say. To save the project from potential harm, we are advised to answer why and to whom, then answer how or how.
Stakeholder Type
Who are projects usually made for? The satisfactory answer is for end-users. The end-user is also a stakeholder in the project. However, they may not be the most important. Therefore, it is good to focus not on the end-user in software development but also on the stakeholders.
It is not possible to create a comprehensive list of stakeholder types because, for different systems, they can differ significantly. Let us highlight the following stakeholders as the most common stakeholders. Also, let’s look at each category in terms of the consequences of ignoring their interests.
Those Involved in the Project and Working on It
The first group of software architecture stakeholders is a group of people or organizations that are directly involved. This first group can be grouped into four major groups.
- Project Team, They are a group of people who should be considered first when creating software architecture. Let us not make application solutions using the. Net language, if available in companies, is only java programmer, and none of them knows. It is necessary to pay attention to existing programmers’ availability, not to determine the technology used because it is trending. Unless the company gives time to learn or provide training in the programming language used and hire at least one senior who can direct and teach the existing programmer team.
- Management Team. They are a group of people we have to talk to and pay attention to before deciding to make architectural software. This management team is a group of people who will protect us so that everything we design can be carried out until it reaches the final goal.
- Third-Party. There may be several problems related to the integration process with third parties because of the complexity level. It is even possible that we have limitations that we cannot use their solutions. Therefore, third parties are also stakeholders that we need to talk to before creating architectural software.
- Supporting Team. This stakeholder group is an organization or person who supports the system at one or more SDLC stages. Generally, the support team will be involved after this application is used live. Suppose an architect forgets to create a support system. This condition will raise questions such as “Is designing this system just a hobby, and how do we support it?”.
Who are Influenced and Software Users
The second group of software architecture stakeholders is influenced and not directly involved but directly affected by the architect’s solution. This second group is classified into at least three categories.
- Customer. This group of stakeholders is an important stakeholder that must be considered because they are who pay the money for software development. If you are a solution architect who creates software architecture, you must always ask them and communicate with them. For example, sometimes, a fantastic technical solution for real-time data processing and synchronization was created. This solution was one of the foremost progressed techniques ever made in the programming world. Moreover, it was competently designed, developed, correctly tested, accurately tried, and shown to the customer. After that, it turned out that the client needed something distinctive. More absolutely, a specific arrangement and they did not require super synchronization at all.
- End-Users. This group is the user of our application. Yes, they will be affected by our software architecture, but, in real life, for the end-user in the company or not a public user, their influence was not powerful. On the other hand, if the user is a user public, their impact is powerful, and you must understand this user also is a customer of our public application.
- Head of Employee or Department Head. They are rarely encountered or face a team in practice, but they are foremost requesting stakeholders and one of the most demanding stakeholders. If you forgot their aspiration, then prepare yourself for them by putting sand in your wheels, and your project will face a problem.
Who Influence the Project but Are Not Directly Involved
The third group of software architecture stakeholders is those who influence the project but are not directly involved. This third group is grouped into at least four categories.
- Top Manager. The company’s profit, success, and position and the success of projects are essential for them. We should try to take this into account.
- Company Owner. They get very upset hearing the words “project” and “risks” in one statement. Try to minimize them when designing your project.
- Shareholder. The company’s profit is critical for these stakeholders. Additionally, they want to get all profit stable and as soon as possible. Designing software that will be done in more than two years, although you can divide it into small iterations and start earning tomorrow, is a mistake that can cost you your career.
- Regulatory. Regulatory is very important to our software. Suppose you design a system that does not conform to some standards and guidelines, and then your solution is banned from the AppStore? That is simply not the right solution. So we must always stick to procedures and standards.