
Who do you bring to the fight when facing a tough market, timelines and competition?
While excellent engineering talent is a must, there are many overlooked or under-appreciated roles that I believe are essential to the success of any software company – at any stage. I often hear the excuse: “We are too small of a company to hire a ________”. Well guess what? Your competitors have one, or maybe more, so SOMEONE at your company has to be taking on these responsibilities. You might be lucky enough to have these roles filled, perhaps these responsibilities are shared within your company, but ignoring them will soon land you in a lot of trouble. Lets get started with the 3 P’s that I believe are so important for any software project to succeed.
Product Manager:
“I make sure we build the right product for our users and company…”
Alter Egos: Product Owner, CEO, Business Analyst
Answers the “WHY?”
Don’t need me? Then….
- Who is going to provide business/market validation for large product and business decisions?
- Who is making sure that what we build has a realistic product market fit?
- Who comes up with ideas that facilitate the success of our business model through useful features?
- Who mandates creating new, removing old, updating existing features?
- Who is making sure our product strategy has a vision, time-line and plan?
- Who is going to create a spec/scope, so we don’t feature creep our way 6 months past our deadline?
Without me….
The end product will only be valuable to a small slice of a niche market that doesn’t actually exist.
Product Designer:
“I make sure the product is actually good, looks great, and works well…”
Alter Egos: UX Designer, UI Designer, Interaction Designer, Visual Designer
Answers the “WHAT?”
Don’t need me? Then….
- Who thinks about how users are actually going to use our features and what those features will look like?
- Who is going to make/take wireframes and turn them into something someone can actually use?
- Who is going to design a product that is visually/functionally comparable to the industry standards/competitors?
- Who is going to tell the Product Manager that 9 banner ads are 9 too many?
Without me…
The end product will be an awkward interactive wireframe using bizarre UI elements soon to be seen in the “before” section of Steve Krugg‘s next book.
Project Manager:
“I make sure that the project we are engineering actually gets finished…”
Alter Egos: Scrum Master, Project Lead, Team Lead, Project Coordinator
Answers the “HOW/WHEN?”
Don’t need me? Then….
- Who is making project estimations, to give realistic timelines for launch?
- Who is protecting the time of the engineers, keeping the development train moving and free from endless planning meetings?
- Who is overseeing the overall progress of the engineering efforts?
- Who is ensuring that the 2 months planned for testing hasn’t been shrunk to 1 week due to unrealistic deadlines?
- Who keeps engineering efforts focused and on task when inevitable distractions arise?
Without me…
The product will be released 1/4 year late, with 1/9 the features promised, and 1/16 code tests coverage….
(And with that kind of terrible geometric progression, you’re looking at only getting PI^2/6 of your project done!)
Building Something Great
Engineering is so important. Engineering is usually responsible for answering the “HOW”. But this is an engineer writing about and appreciating all that are (normally) outside of my call of duty. Summing it up: there are a lot of very important duties that are outside the realm of traditional engineering responsibilities. These are 3 very important roles I have come across, and duties that I feel should never be overlooked, no matter how big or small the company. Looking back at that photo of the chessboard I choose, I’d hate to imply that developers are the pawns, but the point was to remind everyone that there are a lot of difference piece on the table.
(Note: Searched for an hour for proper photo credits of this great shot with no luck. Let me know if it’s yours or need to go down)
Great post. I believe that the fundamental reason why most start ups fail is to not have a full time Product Manager and User interface designer before diving into building their products. Their ideas are often good and promising enough to get strong funding but they oversee the value of a high fidelity prototype which so often flushes out unrealized issues after user testing.
Ian, as a UofT CS alumni and one who has been in the field for a few years now, would you suggest a new CS graduate to dive into Product Management if he is deeply passionate about building great products?
Thanks for the comment! One thing that CS grads interested in product design have as a big advantage is a CS degree. (Especially in Canada) it isn’t as common to have product managers with engineering backgrounds. Some companies (like Google for instance) recognize the value in the combination and look for it when hiring. Said that, it is worth getting experience in the field as a software developer, building software, unless you really don’t like it. It is quite common to transition from an engineer to a pm, but not as common to go the other way. If you join, or start a small company, you can probably do both :)
Do you think that another P – Process Engineer is required ?
hmmmm. how would you describe process engineer and their duties in a small company?