Software Team, Team Roles and Responsibility

Film director Robert Altman famously said that 90 percent of a director's job is casting. The same is true for software development. Getting the right team in place is, without question, the most important thing you can do to ensure the success of a software development project. But wait! You may ask, “How do I build a team when I don't even know the technology choosing? Don't my team members have to be familiar with the technology the answer to all these questions is “not necessarily." First, let's understand teams.

Team and the Role : The team and the team size depend on the size of the project. However, any project could be classified into three layers of team-

  1. A Project Leadership Team
  2. A Project Execution Team
  3. Business Stakeholder; internal customer

Team and the Role : Project Leadership: The can be understood as a bridge between the tech team and the business.

The Project Leadership may include the following:

The Project Sponsor - This is the person to whom top leadership come and handed them directive to make sure the project gets done. The project sponsor may the negotiator-in-chief. The project sponsor’s role is a key project decision maker.

When the technology team says a business, requirement is too complex and time consuming, but the business stakeholder says it is the mission critical piece of functionality, the project sponsor will need to mediate the solution.

Key Business Stakeholder- Key Business Stakeholder might be the head of the finance, the one voice for all the stakeholder. < The project sponsor and key business stakeholder may be the same person> < The project sponsor has close interlock with program manager>

Program Manager - This is a person experienced in running l software projects who organizes all the teams, calls the meeting, directions, identifies needs, and leads all the other team members through technology, picking members and vendors, gathering business requirements, breaking down the processes (we will discuss) of deciding on project into tracks, budgeting, and leading execution. If the project sponsors non-technical or inexperienced in the type of technology under consideration the program manager will serve as her trusted technology partner and go through the process.

Project Manager - If you find yourself getting confused between program manager and project manager, think of the program manager as the ship's captain and he project manager as first mate. Figure 4.2 may help in clarifying roles. The project manager (PM) is a level down from the program manager. He or she is formally trained in the methods of project management. He oversees interacting daily with the technical team, making and tracking the detailed plans, and using project management tools to report on progress. You will see this person conducting daily status meetings, preparing agendas, capturing to-dos and follow-ups, and making sure they get done. This person will have mastery over project management tools such as sheets with lots of macros, ticketing tools, and project planning tools such specialized spread A good PM is worth his or her weight in gold, and no software development project can move forward without one.

Project Execution Team -> These are the people with the “hands on keyboard”, so to speak: gathering requirement, analysing business need, defining tasks, and doing tasks.

The project execution teem may include

Business Analyst (BA) - The Business Analyst business analyst (BA) is the person who collects, digests, and codified all the software development requirements from the business stakeholders. This person will often be found interviewing members of different departments, learning from them how the software will meet their needs and what it is expected to do when it's done. The BA then write all this 1 up in a way that both the programming team and business people can understand, with all the necessary- the level of detail, including all the diagrams and descriptions programmers will require.

User Experience (UX) - The user experience (UX) person is a professional who designs the user inter action (i.e., which clicks lead to what) and navigation in a piece of software. This person will often be found developing sitemaps and wireframes (mock ups that focus on functionality). Many times, a UX person develops interactive wireframes that provide some level of click response, so you can see how the software will behave.

Designer (UI) - Pretty much everyone knows what a designer is, and this role requires little explanation. However, for software development projects, it's especially important for the designer to be integrated into the team and to consider blended roles such as user experience and design. It is much better to avoid designers who come from a primarily (or exclusively) analogy world, meaning those who have done most of their design for print. Ideally, your designer should have a fundamental understanding of the technologies being used and what is possible within that technology.

Programmer - It's important to understand that front-end programmers are not user experience people or designers. What they do is take the user experience and design material and write the code that translates it into the actual front-end screens. They're often working with technologies called CSS, JavaScript, and HTML. Back-end programmers, on the other hand, are often database program.

Architect - An architect is the person who go between programmer and the managers of the hardware. The architecture will be accountable to develop “architecture map” or “ footprint”. These architectures will be machine, number of machines, size of machines necessary to run the software.

System Administrator - Obviously the software will need to be deployed on machines that will - There must be a person in charge of this hosting environment. That's called the systems administrator or Sys Admin.