What to Expect Along the S Curve

As engineers, it's a good idea to get exposure to some business concepts.  Even if you were a born coder and want to eventually be buried with your laptop, taking the opportunity to work in a product and/or management role during your career can really boost your effectiveness.  Once you understand the basics you can often predict features and risks and design to accommodate them before ever being asked.  You can also contribute to the partnership from both sides of the table, offering strategic insights that the business themselves may not have considered.


We engineers are doers.  We're usually workhorses, not show ponies and we often pride ourselves on this spartan aesthetic.  There's all kinds of speculation as to why Steve Jobs always wore a simple t-neck and jeans.  Part of it's surely attributable to brand building and decision fatigue but part of it's probably because if he was dressed to the 9s like 007 he'd likely lose credibility among his fellow geeks.

Well as much as we value reality over perception, we need constraints and a purpose to ever accomplish anything useful or relevant.  We need the business.  It's the ying of our yang.


The S-Curve is one business concept that may be useful to be familiar with.  It describes the phases a business passes through from infancy to death.  What type of work engineers do on a day to day basis is probably more closely tied to where our employer lies on the S-Curve than the industry or any idiosyncratic quality of the employer itself.



In the early start-up phase the business is neither profitable nor well funded.  It's up to engineering to build and perhaps even conceive of the product that'll take the business forward.  This stage is characterized by a small, creative team working long hours.  Think second half of Microserfs.  Even if this is a vanguard business you should be able to pull some expertise from related fields.  From personal observation, an experienced team can be more effective than a brilliant but inexperienced team at this stage.

As the business grows it becomes necessary to quickly add on new features.  Here our pure born software quickly accumulates the scars of tech debt.  There's simply no time to do things the right way.  In order to remain a going concern, it's imperative that we deliver to the business in a timely fashion.

Perhaps around the time feature requests start to reach a steady pace we'll probably want to start scaling.  Just, with all the tech debt we've piled on this is no longer a trivial tasks.  We've got to get process in place to clean up the code, continue adding features, and make our software able to handle ever higher volumes.  At the same time, we're probably feeling organizational growing pains.  This is the growth phase.  Puberty can be tough.

Once the initial awkwardness of our adolescence has passed, we're a well oiled machine.  We know how to get stuff done.  We have a battle hardened team, process, and culture.  We're able to think introspectively and to make informed cost/benefit decisions on our projects.  Our software is beginning to attain a mature beauty, something we haven't seen since our more youthful days.  We're optimizing.


At some point, we drift from growth to maturity.  At first what we do day to day doesn't change but eventually the shrinking margins start to impact engineering.  The team's focus is now on stability, business continuity, change management.  You may see a clear division between support and enhancement based functional teams.  Adopting a more conservative culture and risk aversion is necessary to survive.  Murphy's Law is our creed.  Zero tolerance of outages, downtime, bugs.




"Perfection is achieved only by organizations on the point of collapse" -- C. Northcote Parkinson



A single run through the S-Curve may not be all there is for a business.  With ingenuity and a little luck, management can adapt and guide us through a jump to the next S.

Throughout each stage there's a dynamic ratio of emphasis on speed of execution versus precision for the engineer.  In the start-up and early growth phases speed is key.  There may be a cowboy culture of throwing stuff into production and laughing off near disasters.  In late-growth and maturity precision trumps.

If you want to improve personally, you may want to step out of your comfort zone on both fronts.  You may want to spend some time in a start up to get faster and gain comfort with chaos.  Balancing that with some time in a mature company will give you a good foundation on handling operational risk.

Some industries are fast moving by nature.  Working in a mature company in such an industry can be unforgiving as precision comes without sacraficing speed.  It may also be a challenge that could push your skills a notch up.

Whatever your goals, being informed and moving with intention is surely good career management.

Comments

Popular posts from this blog

Engineering Truisms

The Telescoping Constructor (Anti-Pattern)

A Strategic Approach to Precision Process Automation