Enter your email address to follow our blog with all the latest software engineering tricks, tips, and updates from the R&D team at KnowBe4!
By: Mark Patton
Published: 10 May 2023
Last Updated: 10 May 2023
As a person gains experience in their career, they gain knowledge and expand the scope of their influence, responsibility and awareness of the reasons they are writing software.
In my years working with software development teams, I have found that developers expand their awareness along an upward scale. This scale is useful in helping to determine the actual level of a developer, but also to identify what to address to further their careers.
Shown here is how the “awareness levels” map to the “experience levels” of Developers and Product Managers. It is easiest to read this chart from the bottom to top.
|Scale Level||Description||Developer Level||PM Level|
|Business Value||Builds features that are valuable for the customer and profitable for the Company, and align to a defined strategy. Value expressed as measurable increases to areas that directly support customer acquisition, expansion or renewal.||VP||Strategic PM|
|Customer Value||Builds features that are good for the customer, but may not be cost effective for Company, such as one-off features or features that are expensive to develop or maintain. May align to a defined strategy.||VP||Strategic PM|
|Customer Delight||Builds features that make (some) customers happy, but may be junk features. These could create Business Value, but more often these are developed because a few customers asked for it. Business Value estimates are often neglected. Often do not align to a defined strategy.||VP||Strategic PM|
|Quality as Meeting Requirements||The best measurement of quality is whether it meets the specification. No need to make the software any “better” than that. At this level, gold plating is avoided in favor of productivity.||Principal||Technical Product Manager|
|Workable Architecture||At this level, designs follow optimum architecture. Gold plating is avoided. Uses the latest and greatest technology only if really needed.||Principal||Technical Product Manager|
|Design Patterns||Design patterns are studied, learned and applied wherever possible. If not overdone, this benefits code quality and performance.||Senior||Technical Product Manager|
|Languages||Knowledge of a variety of computer languages. Strong opinions about which languages are better.||Senior||Technical Product Manager|
|Quality as Stability||At this level, quality is expressed as stability, which is a more technical and useful definition than “goodness.”||Senior||Technical Product Manager|
|Libraries (self-created)||At this level, developers start packaging commonly-used code into libraries. There is also a (mostly unnecessary) desire to create shared libraries.||Mid-Level|
|Optimization||Attention is paid to making code faster or smaller. Most of these efforts are a waste of time, or are done pre-maturely before the system shows where optimizations are actually needed.||Mid-Level|
|Quality as "Goodness"||“Quality” stated in non-technical terms (good, bad, buggy, slow, etc.)||Junior|
|Libraries (public)||Expands use of publicly-available libraries in favor of writing by self.||Junior|
|Working Code||Can reliably write code that runs.||Junior|
|Code||First learning to write code and structure a program.||Junior|
Interested in designing or contributing to solutions like Ambien? Are you passionate about purpose-driven, highly-productive software development of cloud native products and services? Send us an application! KnowBe4 Engineering is always looking for more talented engineers just like you! Check our open positions on our careers page - www.knowbe4.com/careers.
KnowBe4 Engineering heavily uses On-Demand environments for quick iterations on native cloud-based…
How KnowBe4 solved the "It Works on My Machine" problem with a new approach to provisioning test…