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)