0 / 0

Teams in Agile Software Development

A successful software development endeavour is combination many elements including:

  • Understanding and managing client expectations
  • Well-defined scope and requirements
  • People and skillset
  • Identifying and managing risks etc.

Whether building a software in tradition Software Development Life Cycle (SDLC) or in agile environment, team is a key component of any successful project as it could overshadow many of the factors listed above. A great team may not necessarily be a team with most skilled people, but a group of people with problem solving skills who communicate well, share the same vision and respond to changes fast.

So how do good teams look like?

  • Understanding of individuals’ skills: teams with good understanding of individuals’ capabilities and skillset work more efficiently as people work on their areas of expertise. Creating a skills matrix in the beginning of project is great way to find out who is good at what. You may need to update it when more people join your squad. This will help you when you want to create roles and assign responsibilities.
  • Assignment of roles and responsibilities: having roles and responsibilities mitigate confusion and reduces conflict as each person knows what they should work on.
  • Leadership: a successful part of any team or organisation is having a leader who could provide direction to the project, mediate people when making decision and steps in conflict resolution (if team members are not able to resolve among themselves)

Below is brief overview of roles and interrelation that could help you to be more efficient. It is important to note in agile teams, people are not limited to do one thing, neither is their involvement ends in a phase. For example in waterfall SDLC, a business analyst was only involved in the requirements gathering phase and a tester was only involved in the testing phase. While this is true to a certain degree but roles and people are dynamic and move across different works specially in smaller teams.

Team leader

[Web Development] - [Mobile]

Every team has a leader. In agile context the role of team leader is different from its traditional definition. As agile teams are meant to be self-organised, team leaders act as facilitator and enabler (rather than manager). Team leader helps:

  • Create and maintain collaborative environment for all team members
  • Help team to power through and focus on task(s) in progress
  • In smaller teams, like your squads, team leader could be the person who communicates with the stakeholders such as product owner and tribe leader or facilitates the session

Team leader needs to have great communication, facilitation, project management and decision making skills. Understanding various technologies would be a great plus for team lead. In your squad, team leader could be one of the senior students with good communication (and ideally technical) skills.

Business analyst

[Web Development] - [Mobile]

Business analyst (BA) is one of the most valuable roles in software development. BAs work very closely with product manager and technical lead (or team lead) to define the scope, translate business requirements to deliverables (epics, features and user stories) prioritise requirements.

In small teams such as your squad, team leader and developers could act as BAs.

Software engineer (developer, programmer)

[Web Development]

Development team includes developers/programmers as well as business analysts, designers.

Developer/programmer role is probably one of the roles that is changed the most as result of agile practice. A developer is no longer just programmer that codes but is involved in design and testing. The scope of developers work is really depends on size of team, project and organisation.

In a team size of your squad, the scope of developers’ responsibilities extend to being BAs and testers

Developers are responsible for developing (coding) items i.e. features and user stories laid out in the sprint in two different ways (fronts)

  • Frontend developers build how a website looks Working closely with designers, front-end developers responsible for implementing look and feel of website using CSS, JavaScript
  • Backend developers build how a website works: There is no shortage of languages for developers write code in but these are most popular ones: PHP, Ruby, Python, react, Node.js and java and Django.

Mobile software developer

[Mobile]

Similar to developer (web), mobile developer are responsible for coding and developing items in mobile platform iOS or Android.

Designer

[Web Development] - [Mobile]

Designers play critical role in bringing vision into reality. Specially in agile environment, they are involved from very early stage of developing low fidelity model to high fidelity prototype. Their work include developing wireframes (low fidelity), mock-ups (medium fidelity) and prototype (high fidelity). They liaise closely with client/product owner and developers to create the right user experience as well as ensuring the client is satisfied with ‘look and feel’ of the product.

There are various tools designers, below are some of them:

Data Scientist

[Web Development] - [Mobile]

Data science in word is ‘spotting trends’ but opening this can, many things will come out: Data preparation, data visualisation, machine learning, deep learning, pattern recognition and text analytics.

As a data scientist you will need knowledge in IT, business knowledge, and math and statistics, so upskilling is something students may need to undertake in statistics and machine learning, coding languages in R and Python, data visualisation and reporting technologies – the future is very bright for data scientists so this is a great investment with high Return On Investment (ROI).