Cooking up software development – by recipe or improvisation?

As I was standing in the middle of the kitchen thinking about whether I should still create spaghetti bolognese without mincemeat, suddenly it struck me as a project and product manager, that life should not always be according to a recipe. 

Life is like a box of choc… khm, let me rephrase. Life is like your refrigerator. You have some reasonable stuff laying around, but some ingredients in there you have completely forgotten about. Like that canned wild boar meat that your friend dropped you as a thank you note 2 years ago. Now that a meal needs preparing, choose between following a recipe or improvising with the ingredients available. 

It’s the same story with software development when you’re choosing a development framework or planning a project or product. You know that you want the software. You know you want the beautiful flavors for monitoring its status and keeping up the motivation while creating the most brilliant piece of functionality with this project than ever before. But there’s just one problem. You’re missing an ingredient or two. 

Now it’s up to you. One can jump up and down and demand their ingredients just as written in the “perfect” cookbooks of PMBOK, BABOK or different System Development Life Cycle bibles like the brilliant Agile Manifesto itself. Hold up everyone’s time and hungry stomachs while driving to the nearest store to get those irreplaceable carrots or lime that you can’t imagine the dish without. Only to have to drive back because you left your wallet at home in a hurry.

Who are you cooking/developing for?

So by asking yourself what do you want to offer with the meal is fine at first. All meals in life cannot be five-course dishes with candlelight and a mariachi band. Also, every meal should not be just a portion of grub. When deciding on the relevant factors of your software project, consider the basic needs and style of the client. If unknown ask like a proper chef would – what should the main ingredient be? Or – would you like something vegan? If the client has its own recipe that’s fine too, just match the ingredients and amounts and make sure you add a cherry on top at the end.

When opting for a development framework one can usually consider main vision and needs, limitations, feedback and status report needs and behavior, iteration possibilities, change request handling, risk management AND if there’s time – some documentation.

When choosing a dish for the guests, one can consider main ingredients, allergies, matching of flavors, course amounts, wine to go with the dish and decent garnish. AND some good music, if available.

Sometimes life happens – you have to modify the original System Development Lifecycle recipe by only using the ingredients you have

  • Feedback loops / iterations (standups, grooming and planning, demos, retros)
  • Goals and monitoring
  • Progress and monitoring
  • Processes and monitoring
  • Risk management
  • Documentation

When cooking, think about whether you should throw these all together in a pot and mix them, create a separate container for each one or mix some and season with others. True agile is what works. What fills the stomach and tastes good at the same time.

“So I’ll just wash my hands and dig in?”

Yes, washing your hands in important, both when cooking and when going and meeting a client (#coronavirus). But where to start if one feels like a beginner at cooking or software frameworks? 

Some call it the Shu-Ha-Ri method, others the Learn-Improve-Create method. Some just evolve into it with hard work and trial-and-error. Whatever the case, feel free to

  1. Go slow at first. Fill the gaps. Read the recipe. Cook. Fail. Ask for help. Try again. Reflect. Learn.
    As for cooking – this is the cutting part.
    As for development frameworks – scrum is king.
  2. Get better and faster at the tried out things. Try new ways for old methods. Improve your knowledge. Motivate your team and others to do the same. 
    As for cooking – switch ingredients to create new dishes.
    As for projects and dev frameworks – create things that are needed – a combo of scrum and RUP processes for example – and watch it grow.
  3. Sense. Feel. Innovate. Live and breathe cooking and development frameworks. 
    As for cooking – build flavors and experiences around the idea and vision. Create art
    As for development frameworks – build processes that drive the project or product around the idea and vision. Create art.

The secret ingredient is you

There’s no magic trick in cooking, nor in software development that would always work. It’s more about common sense and the question of being aware. Just like my grandma was always aware that I’d leave the table with a stomach as full and round as another planet. I swear I had my own gravity at one point.

You don’t waste food, do you? Well, the same goes for development hours. Learn from your experience and cook the right amounts. Be sustainable. Also, when choosing processes for development, be sustainable and learn what works in any situation and reuse that in others. 

I hope you like to cook. With software. Bon appetit!

In case you could use some help…

…then our team is excellent both at software development and cooking. Don’t hesitate to get in touch with us so that we could discuss how we might best help you to achieve your software development or culinary goals.

Published by Martin Küngas

. Martin is a Project and Product Manager at Mooncascade. Helping with digital products and end-to-end software projects while raising awareness about best product and project strategies. Martin is advocating goal-based solutions and empowering every client to achieve their vision.