What's in a Software Development Team?

Welcome back to Dev Shop 101.  Today, we’re digging into the different members of a development team, what each is responsible for, and how that affects your project.  

Software development teams come in all shapes and sizes.  Often developers will wear a variety of hats on a particular project, especially within small development firms. Not every firm will have an individual for each of these roles, but they should cover all these roles with someone, even if it really is just one person playing every part.  

Additionally, as a development team gets larger, they will add additional roles and responsibilities that are not covered here. We always suggest familiarizing yourself with a firm’s process and who will be working on your project before hiring that firm.  We endeavor to be as transparent as possible for just this reason.

Without further ado, here are some of the key roles within any development team: 

Project Manager - Guardian of the Development World

The Argonath.jpg

We start with the Project Manager because typically this person will be your main point of contact for your project.  The Project Manager is responsible for coordinating the project, tracking the budget, making sure things are on schedule, and often acts as the voice of the client in the process.  

These responsibilities are vital in any development firm, as often there are multiple hands touching a project and all must be accounted for. Additionally, by having someone there to coordinate logistics and budget, the engineers can focus on what they do: build.  

It is important to get to know the project manager on your project well and make sure that you work well together.  Software development can be a rigorous process for both the development team and the client, and friction does occur.  Having a good relationship between client and PM is essential to making sure that when bumps happen, things get back on track smoothly and effectively. 

One note: a project manager and a product manager are NOT the same thing.  A project manager ensures the project is on track, a product manager is responsible for thinking through the problem and solution and ensuring that the product being built solves the need. 

Director of Engineering - Commander of the Code

Aragorn.jpg

The Director of Engineering (may also be called the VP of Engineering, Chief Engineering Officer, or the Chief Technology Officer depending on the organization) is head of all software development in the firm.  This person manages all the engineers, sets standards and processes, ensures quality and best practices, and has final say on how a project is built. 

This person’s direct involvement in your project may be limited.  In a small firm, the DoE is likely going to be doing some actual coding, but that isn’t a certainty.  That said, a DoE is responsible for ensuring that your project is built up to the specifications with the best possible quality.  Even if they aren’t doing the actual coding, their policies and procedures will affect your job, ideally for the better.  

While it is not as important to build a relationship with the DoE, it is a good idea to know who this person is, what their background is, and how they think about technology and development. We always suggest doing some homework on senior leadership, process, and philosophy before hiring a firm.

Designer - Wizard of the Mockup

Gandalf.jpg

Not every development firm will have a dedicated Designer, but every firm will have someone responsible for design.  As a firm grows, it will either partner with a design firm or hire its own in house designers.  

Design is often under appreciated and overlooked by those without a lot of software development experience.  Software projects start with problems and ideas about solutions.  Design is what takes those ideas and gives them form.  Often designers will be the ones asking deep questions about the problem, then crafting potential solutions, typically in the form of simple mockups.  As the idea comes to life, the mockups will become more detailed until the project is fully understood and can be built by the engineers. 

Great design leads to great technology. The more that can be understood up front, the more focused the engineers can be in the build process. Design, like software development generally, is an iterative process, especially when there are a lot of stakeholders for a project.  A good designer can cut through the noise, get to the substance, and present solutions in innovative ways that you likely never considered. 

Full Stack Engineer - Knight of the Database

Legolas.jpg

You will often hear engineers referred to as front-end, back-end, or full stack.  Each of these terms means something about what the engineer typically focuses on.  There are a number of other elements to an individual engineer’s makeup, but for our purposes, we’re going to focus on the two most common: full stack and front-end. 

Full stack engineers are typically responsible for the back end of the project, but can do front end work when called on (though in my experience most full stack developers prefer to stay as far away from front end as possible).  This is the database, infrastructure, and foundational logic of the system.  For our purposes, this is the way the project will function, it’s core systems. 

Full stack engineers speak a language all their own, which takes years of careful listening for a layman to really start to grasp. Yet in all the jargon, they are building all the gears and levers and mechanisms that will make up your project and allow it to function smoothly. 

Front End Engineer - Captain of the Modal

Gimli.jpg

Front end engineers are specialists.  They are part artist, part engineer, and part copywriter.  The job of the front end engineer is to take the mechanisms being created by the full stack developers, along with the designs from the designer, and create the world the user will enjoy.  

Front end engineers create the systems and processes the user will go through when accomplishing tasks within the project.  They create the buttons and the pop ups, the forms and the tables. They will add the animations and the graphics, and create a user experience that is both pleasing and effective.  All while carefully plugging in the vital architecture to make the project work. 

Depending on the firm and the size of the project, you may have multiple front end and full stack engineers working on your project.  You may meet them from time to time when assessing particular elements of the project.  These are the real heroes, so it pays to always be respectful and grateful for the time, effort, creativity, and thoughtfulness they are putting into your technology. 

Hobbits.jpg

There are other members as a development team grows larger.  I mentioned Product Managers earlier.  There may also be data scientists and other specialists focusing on particular elements such as infrastructure, cloud, mobile, and more.  The amount of specialization that is possible within software development is significant, allowing engineers, designers, and product specialists to fill all sorts of niches.  

As with any team, a software development must work in cohesion to accomplish the goal.  Each member has their role to play in order to give you the best quality product.  It is important to understand the members of your team, and to respect the incredible work they are all doing.  None of this is easy, but when done well, creates incredible technology and beautiful products.

Andrew Wynans