Software Development: Project Management and Teams

Paul Hsueh
4 min readJul 14, 2021
Photo by Leon on Unsplash

As I began to approach the job search portion of my bootcamp I decided to focus this blog on software development teams. My background is in Finance and IT, and I saw a contrast in how team members worked together. Their structure and the way projects are managed impacted productivity and professional growth, which is why I thought I would use this opportunity to look into software development teams. I’ll share what I found regarding software development teams and briefly touch on a project management methodology called Agile.

A very-very high level introduction to Agile

As expect, most software engineers will work on teams. Depending on the organization and scope of the project many teams end up adopting an existing project management methodology or a hybrid approach. Over the years, many different ideas of how to maximize productivity of software development teams have been introduced. However, it is likely through your job search that you will come cross the term ‘Agile’. Agile has a tremendous influence on how software development teams work. You might see this come up in interviews and is adopted in many organization. My interpretation of Agile in software development is that it provides a management framework for teams to make application iterations quickly, while focusing on communication with the goal of always having a ready to deploy application. Below are some Agile values.

· Individuals and interactions over processes and tools

· Working software over comprehensive documentation

· Customer collaboration over contract negotiation

· Responding to change over following a plan

Source: TechTarget

Team Roles

Because of the expansive nature of Agile, I will pivot towards roles on software development teams. Below is a list of common roles on teams that a software developer might come across.

· Product owner is the person that has the vision for the project/application, how the product should function, and who the end-users are. They are the ones that have the highest-level overview of the application that is being developed

· Project manager as the name implies is the person managing the project. They track the progress and help streamline the workflow. They are sometimes call the ‘scrum master’ in Agile terms

· Business Analyst may not be on every team, but their job is to look for ways to improve the application and interact with the stake holders involved through the project. They can also oversee documenting problems from those stake holders and look for solutions

· UX Designers make design choices. They can research or conduct interviews to determine how the user interface of the application should be designed so that the product is easy and pleasant to use. They conduct user interviews, market research, and design what the application experience will be like with end-users in mind

· Software architects make the high level decisions on how the application should be built. They are usually a highly-skilled software developer with extensive experience and expertise. They provide guidance on making technical choices for the application and determine which tech stack to use

· Software Engineers/Developers take instructions from the software architects and build the application in accordance to the vision of the software architects — they build the application!

· Testers are generally part of the Quality Assurance team. They will use various methods to test the application usually from the end-users perspective to ensure that the application is error free

Source: Perfectial

Looking Ahead

I hope this provided a high-level overview of what a team dynamic will be when working as a software engineer. I am sure this isn’t how every team is constructed, but it is likely that software engineering candidates will be interviewing with members of a team. Hopefully understanding how a team could be constructed gives an introductory overview of which roles to look out for and helps with your interview process. Thanks for reading!

Resources

Agile terms: https://www.agilealliance.org/agile101/agile-glossary/

--

--