The Value Is The Process

Plans are worthless, but planning is everything – Dwight D. Eisenhower

The value of a process is primarily derived from the process itself, not the output.

Producing a slide deck or document on a topic requires hours of thought, multiple drafts and revisions, wordsmithing, and lots of research.

This iterative process helps to clarify your thinking around a topic. The hours spent thinking deeply about a problem and continuously refining your arguments is where the real value lies, not in the artifact that results from that process.

[Read More]

Non-Functional Requirements

Non-Functional Requirements (NFRs) are used extensively in enterprise software to define things like performance requirements and availability expectations but it’s important to be specific about what we’re asking for.

I spend a lot of time with my clients helping them understand why the details matter for NFRs so let’s walk through an example to demonstrate what I’m talking about.

Let’s assume we’re dealing with a system that is going to process 3-5 million transactions per day with peak volume during business hours at around 50 transactions per second. A sample NFR for such a system might be stated as:

[Read More]

Heirloom Code

Michael Feathers says that legacy code is any code without tests but I’d go a step further and say that legacy code is any code that is still running even though the original developer(s) are no longer working on it. And there is certainly plenty of that in financial institutions. There are other characteristics too, such as:

  • unreproducible production environment
  • incomplete source control
    • missing files
    • ‘master’ fails to build
  • no automated build process
  • no release process
  • few or no unit tests
  • no way to run or test the code on a developer workstation
  • little or no documentation
  • none of the original developers available

I am presently working on a codebase that checks all of the above boxes and it isn’t even that old but instead of dismissing it as an unmaintainable mess I have changed my mindset and have started referring to it as Heirloom Code.

[Read More]