Know Your Colleagues
Know who is on your team and what they can do.
We'll cover the following...
Programming is sometimes a solo activity. But for the vast majority of the time, it’s a team of programmers building a product together, and we’ll need to work in cooperation with others to be effective.
Roles
First, let’s talk about who’s on our team and what they do. These roles vary depending on the company, and there may be specialist roles at our company that we don’t discuss, but they usually go something like this.
Programmers
When most people think of “programmers,” they think of folks with thick glasses sitting at computers and typing industriously. The typing part is only half true—there’s also a lot of non-programming time required to shepherd a product to completion. There’s bug hunting, testing, meetings, and other duties. These vary tremendously depending on the organization and our product’s development stage.
In an organization with minimal overhead, programmers get to spend most of their time on design and implementation—this is quite a fun role. People can, and do, spend their entire career in this role. Progressive companies will pay super-senior programmers the same kind of money they pay directors and vice presidents.
There are many titles that go with this role: programmer, developer, software engineer, firmware engineer, and so on. They’re mostly the same. The title “Engineer” doesn’t mean anything special in the software world because there are no special qualifications for an engineer vs. a programmer (this is different in fields that have licensing requirements, like civil engineering). The position “Firmware Engineer” is usually reserved for people working on embedded systems and operating ...