A Narrative Approach to Software Design

Design software like you are writing a detective story

Kislay Verma
The Startup

--

This article was originally published on my homepage — https://kislayverma.com/software-architecture/a-narrative-approach-to-software-design/

To me, the design stage is the most intellectually stimulating part of the software development cycle. After all, the design decides what the code will do, and how it will do it. The design process gives technical shape to what are till then only business requirements. We get to the deepest what’s and why’s at this stage — it is a lot of fun!

Here’s my rule of thumb about approaching software architecture — Approach designing a system/feature like you are writing an investigative story. That’s essentially what the design exercise is — we are poking around in the problem space/requirements to figure out how we might solve it. And like any good investigator, we ought not to make assumptions early on or jump back and forth between incidents. All we have is a burglary — deciding to shadow the sinister looking neighbour up front is probably not the best of course of action.

I love crafting architecture narratives because they sit “above” any technical approaches and provides a framework for applying any of them. It also like it party because it has worked very well for “most” of the problems “I have worked on” (which are mostly application engineering problems using service-based architecture), and partly because even when it doesn’t provide…

--

--