INGENO

View Original

I Have an Minimum Viable Product — Am I done?

As of this year, I have been programming for 40 years. In 1979, I discovered coding on a TI-57. Since then, a lot has changed. The most significant impact is not what you think!

As I quickly transitioned from calculators (TI-58C) to real computers (TRS-80, Commodore 64, PC), new elements became available:

  • Graphics and sounds

  • External devices

  • Networking (Fidonet anyone?)

One can think that technology spawns new possibilities. However, expectations are the real drivers of innovation!

Developers codify user expectations as the 'Definition of Done.' Here's a partial list for your consideration.

  • Available in production.

  • Validated and approved by the product owner.

  • Fast, automated and repeatable deployments without human intervention.

  • Covered by automated tests in the CD pipeline:

    • Static analysis: coding style, language version adherence (ex: ES2016, Java 9), anti-patterns, security

    • 100% unit tests coverage

    • Acceptance tests

    • Performance tests

  • Availability monitoring (ex: Pingdom, Cloudwatch)

  • Infrastructure capacity planning (ex: Datadog)

  • Code flow performance measures (ex: NewRelic)

  • Functional transactions and user behavior auditing (ex: Intercom Platform)

Minimum Viable Products are more sophisticated today than before simply because people expect more from us.