top of page
Writer's pictureTyler S

Divide and Conquer: On Teams, Roles, and Responsibilities

Updated: Feb 24, 2024

Some companies that are involved in building both hardware and software in complex integrated systems have discovered that there can be a fairly convenient divide between the electronics and the programming, but it’s not in the traditional place. 



Instead of simply Software and Hardware, which made some sense in the early days of computing before software became so layered, consider partitioning your teams into Applications and Platform groups.  The Platform team is a combined group of low-level firmware and programmable logic developers along with the hardware designers and testers.  Given the importance of the close collaboration needed between firmware and hardware engineers, this makes a lot of sense.  A mature platform can then be handed off

from the Platform team to the Applications folks, and if done well the implementation underneath can change in moderate ways without requiring significant alteration to the Applications team’s implementation.  The Applications team would also work closely with or encompass the systems and systems test teams, and include communications, cloud, and deployment responsibilities. 


Two Team Model

Applications Team

Platform Team

systems architects and engineers

firmware engineers

systems test engineers and formal QA

hardware design engineers

applications software architects and developers

hardware test engineers

software test engineers

manufacturing engineers 

algorithm researchers and developers

supply chain management

computer programmers

integration engineers and technicians

dev ops specialists



The word Applications here does not correlate so much to the concept of the mobile phone app, app being short for application, as it does to the concept of applying the platform that’s been built to the problem that needs solving. The Platform team creates the means by which the Application team solves the problem.


Other ways this has been described are Software and Platform teams or Systems and Platform teams, or even a three team model.  


Three Team Model

Systems Team

Software Team

Platform Team

systems architects and engineers

applications software architects

firmware engineers

systems test engineers and formal QA

software test engineers

hardware design engineers

project engineers

computer programmers, developers

manufacturing engineers 

product, program, and process leads

dev ops specialists

supply chain management

algorithm researchers and developers


integration engineers and technicians



hardware test engineers

Among other benefits, these divisions create a convenient differentiation between software engineer and firmware engineer, between which there has historically been a lot of overlap. In this paradigm the distinction is more clear because they are part of different teams, and the two disciplines have become somewhat divergent in recent years as system complexities have grown. As an aside, it’s of course possible that your hardware and software testing or QA teams are large enough to bring out into their own group.


When you are forming hiring plans, have discussions about what you want your teams to look like. Be clear with your recruiters and job descriptions. You must care to understand the needs and capabilities of each team, and carefully identify your recruiting targets.


4 views0 comments

Recent Posts

See All

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page