Today our focus is on roles and responsibilities within a software development team.
Lesson
Learning Objectives
Describe the roles and responsibilities within software development teams, including:
requirements engineer
business analyst
software designer
programmer / coder
software tester
software release engineer
technical architect
domain expert
independent tester
Describe the roles and responsibilities used in agile software development, including:
product owner
scrum master
sprint leader
List the skills required by each of the roles listed above.
Explain the generic skills required within software development teams, including:
leadership
communication skills
analytical skill, creativity
attention to detail
team working skills
Describe the main roles external to the software development team that interface with the software development team, including:
Customers
Users
Operations
Service Management and the generic term 'stakeholders'
Explain how the different roles within a software development team relate to each other in terms of typical interfaces and accountabilities.
Recognise that software development teams may be structured in different ways, depending on organisational considerations.
Distinguish at a high-level between a functional structure, a project structure and a matrix structure.
Describe the roles and responsibilities of the main functions that typically interface with software development teams, including Customer Business Units; Operations; Service Management; Service Desk; Application Support; Technical Support, recognising that different organisations may use different titles and different
combinations of functions.
Describe the structure of a typical software development team.
Explain how the main roles and functions external to the software development team (listed above) interface with the software development team and at which stages of the SDLC these interactions occur.
Recognise that software development is undertaken within governance and management frameworks that organisations use to control and manage projects, programmes and Operations.
Explain the difference between the terms 'programme' and 'project' and the relationship between them, and how they relate to software development.
Explain the role and responsibilities of a project manager in software development.
Describe in outline a generic project lifecycle and the purpose and scope of each stage of the lifecycle, the stages being initiation; planning; execution; completion / closure.
Describe effective team-working and how this contributes to effective delivery of software projects, including, organisational behaviour theory; decision making; conflict resolution; collaboration; communication.
Explain the importance of working closely with the customer and users during requirements analysis.
Explain the role of technical architects and domain experts during design.
Explain the role of Operations and Service Management during design, in order to help ensure that the design of the software end product meets non-functional requirements.
Explain ways in which team working is beneficial during code development, including learning from others; reviewing each others’ work; aiding communication; sharing the workload; utilising strengths and weaknesses of team members; providing motivation and support; contributing to retrospectives.
Explain why collaborative approaches are especially important for software development using agile and/or DevOps approaches.
TASK - find job adverts for some of the generic software job roles above. Read the job descriptions. What kind of experience does the individual need? What salary can they expect?
TASK - find job adverts for Scrum Master and Product Owner Agile job roles. Read the job descriptions. What kind of experience does the individual need? What salary can they expect?
The role of the Project Manager
The project management life cycle is usually broken down into four phases:
initiation
planning
execution
closure
The Project Manager is responsible for the project's scope, budget, team and resources. They are ultimately accountable for the success or failure of the project.
Project Manager versus Scrum Master
A Scrum Master is NOT the same as a Project Manager.
A Scrum Master:
Coaches team on SCRUM principles
Facilitates the Daily Scrum (standup)
Removes blockers that are hindering team members
Ensures good communication between the team members
A Scrum Master does NOT manage budgets or project scope.
Product Owners versus Scrum Master
The Product Owner liaises with the Customer / other stakeholders to understand their needs and then plans and prioritises work for the SCRUM team.
What is a Stakeholder
A Stakeholder refers to someone who is directly or indirectly affected by the outcome of a project.
Matrix versus Functional organisation
A Functional organisation groups people based on their specific skills and knowledge e.g. the Marketing function, the Sales function.
In a Matrix organisation, individuals work across teams and projects as well as within their own department. An individual will have multiple managers, one managing the project they work on and another who is their line manager for their yearly appraisal.
This video explains how a Matrix organisation works:
Generic roles in the SDLC
(as defined by the BCS!)
Business roles
Project sponsor
Business analyst
Domain expert
End user
Project roles
Project manager
Team leader
Work package manager
Technical roles
Technical architect
Solution developer
Solution tester
Implementation and support roles
Release manager
Database administrator
System administrator
Project versus Programme
PRINCE2 is a project management method. PRINCE2 defines a project as 'a temporary organisation that is created for the purpose of delivering one or more business products according to a specified business case'.
It also defines a programme as a 'group of related projects managed in a coordinated way to obtain benefits and control not available from managing them individually'.
TASK - find job adverts for Project Manager and Programme Manager jobs. Read the job descriptions. Which job role has more responsibility?
IT Service Management (ITSM)
Service Management ensures that an organisation can efficiently implement, deliver, management, and support IT services. It is end-user focussed. For example:
monitoring against SLAs
change management - co-ordinating changes to infrastructure and systems
running an IT Helpdesk
incident management - responding to service disruption
asset management - recording & managing hardware and software assets
handling service requests - e.g. software upgrade requests, password changes
TASK - find job adverts for an 'IT Service Manager'. What does their job description involve? What kind of experience does the individual need? What salary can they expect?
IT Operations Management (ITOM)
Operations Management manages all the components of an organisation's IT infrastructure and executes routine tasks required to support the operation of applications and services. It is internally focussed. For example:
installing networks
securing systems
installation of hardware
performing upgrades
performing backups
monitoring of performance
Assignment
Research how software teams are organised in companies such as Google, Amazon, Facebook and Spotify. Are they functional, cross-functional (matrix) or project based teams? What is the reporting hierarchy?
Update your portfolio to describe the roles in your software development team and the reporting hierarchy.