Thinker or doer
Are you a thinker, doer, or both?
There are engineers that can execute quickly on an idea, realizing product changes that are relatively bug-free, efficient, and serves its’ designed needs in a small amount of time. These people are doers, and most engineers fall under this category.
On the technical side, there are also engineers that can think about cross-cutting concerns throughout the product, identify defects in design, and propose the right solutions. These are thinkers, and more specifically, technical thinkers. I refrain from calling them architects as they imply a fixed position. A role of a technical thinker can be played by engineers, architects, or leads.
On the product side, there are also product thinkers. Traditionally, this role is played by product managers. In smaller teams in absence of product managers, engineers can similarly play this role. In fact, I would argue that it is important that both an engineer and a product manager have equal footing in product thinking. This relationship allows for both external and internal perspectives to be heard when product changes are proposed.
Then comes the truth: to deliver a great product, a team (of any size) must have a good number of doers, but at least one technical thinker, and one product thinker. Without the thinkers keeping cross-cutting product concerns in-check, the product fails to evolve over time to meet the ever-changing user needs. Similarly, without the doers, the product fails to execute cleanly in a timely fashion.
The reality is that a great number of software teams do not hire with consideration of the intrinsic skillset that each engineer brings, and do not think about the importance of hiring thinkers or doers on the team – especially product thinkers. On the flip side, engineers that work in large organizations struggle to evolve from thinkers to doers due to lack of external necessity. Some even believe that the only way to be promoted is to become more and more technical. In reality, a different pathway of being a product thinker exists.
Not realizing that product thinker exists is not only a great mistake in the organization, but a great mistake in the software industry in general. We do not yet value the importance of product thinkers (it appears in no job resume search, nor as any search criteria), and similarly, engineers do not yet realize the different possible skill sets they could build over time.
My hope is that this blog post has inspired those early in the career, to think about where their skill sets are at, and evolve their skill sets in a meaningful way that exists beyond the rigid framework. I also hope that this has inspired some teams out there to think about team composition. We all want to live in a world where every team succeeds in building great products that benefit all of us.