I have a success story to share, and it’s proof that as engineers we should Never Stop Learning (sidenote: this is also my personal credo). Recently, a colleague introduced me to this Agile paradigm:
https://www.thoughtworks.com/insights/blog/slicing-your-development-work-multi-layer-cake
The paradigm explains that development work can be though of as a cake with many layers. Each layer represents fully-fleshed out functionality in a workflow. For a user workflow, this might mean everything from account creation, to email confirmation, to password reset, to email list signup. Lots of functionality there.
But what if your client wants to see and end-to-end view of MULTIPLE workflows without going through all the steps of every single one? Using the same analogy, Mr./Mrs. Client may want a demo of the social networking features you’ve added recently, which not only involves account creation, but adding friends and leaving comments on their pages. That involves implementing multiple layers, right? Would take weeks of dev work?
Fortunately, not necessarily so. What if you did your development work as a slice of the cake, instead of a layer at a time? If you mocked up the processes that weren’t needed for the demo and had them pass the user through the flow so that they could be dropped into the next one (and so on). At the end, you would be able to demonstrate the full functionality of the site, without the little details being implemented yet. Awesome demo? Check. Clear path forward? Check. Clear idea of what functionality still needs to be implemented? Check, check, check.
Time for the success story. I tried this process recently, because I was looking at some intense functionality that needed to be implemented. In our case we needed to integrate with an online order fulfillment system and a license management API so that customers who purchased products could purchase and access digital content. I thought we were weeks out from demoable code because I thought that every single detail of every layer needed to be implemented. Oh, was I happy to be wrong! Using the slice paradigm, I was able to implement just what was needed in every layer in order to get the user to the next step in the overarching workflow. And wouldn’t you know it, I delivered the demoable code in a fraction of the time.
It’s so, so important for developers of all levels (seniors and principals included) to realize that there is never a moment in their career where there is nothing to be learned. I’ve been coding for nearly 15 years now (not as long as many in the industry, I realize, but still a respectable amount of time) and I learn something new virtually every day. And then, I learn something huge like this and it rewrites my whole perspective on software development. I feel very fortunate to work with the people that I do, because they are extremely intelligent and always teaching me new tricks.
Go learn something. Today! When you finish, reward yourself with a SLICE of CAKE 🙂