Rajamasala >> The Agile Curry

Every Friday I cook… It’s my sacred time in the kitchen. One of the best ways to wind down the week; by cooking and listening to dance music accompanied by a glass of wine (or two).

I wrote something similar to this when I was at BAE Systems but this time, I know a lot more about Agile, DevOps, Product Management, Low-Code/No-Code, Artificial Intelligence and Machine Learning

So, here goes, the IT revolution meets Curry…

Project Goal

The goal of this project is to prepare a delicious Spinach and Chicken Curry for 5 people for two nights with optional chapattis and rice. Food will be consumed about 8pm as a family and the meal will set the tone for the rest of the weekend. Family times and restoration.

My daughter is a vegetarian so I use a similar method as below but replace the protein with ingredients such as Quorn, chickpeas and sweet potato.

Also, quantities below are estimates – As I have done this for years, I don’t measure stuff out anymore, I use my judgement and experience – that’s another topic for another day… Mastery

Sprint 0 – Preparation

Sprint Goal

Ensure the prerequisites are available and the tools and workplace is ready with the right environment for cooking.

Sprint Plan

  • Ensure all ingredients are available
  • Clear sink and dishwasher area so dirty materials are not taking up precious surface area
  • Clear kitchen sides and make sure all utensils are available.
  • Select the right cookbook if needed (or have this article ready on your tablet device)
  • Turn on extractor fan and lamp
  • Connect Bluetooth Speaker and play “Massive Dance Hit” playlist on Spotify – Crank up the volume.
  • Close the Kitchen Door
  • Open a bottle of wine… I prefer a good Rioja.

Sprint Review

Make sure Sprint Goal has been achieved and that you are ready to cook with the right ingredients, utensils, instructions, clear space, beverage of your choice and music.

Retrospective

Why do I spend 5-10 mins at the beginning, before cooking? I worked at as busy Manchester city centre Pizza Hut during University and I realised the benefit of good preparation. Good preparation makes delivery far easier; it’s why car manufacturers, supermarkets and restaurants invest in the preparation – this prevents waste, reduces lead times and increases quality. If you look the recent change in your local McDonald’s you can see the investment in planning by the way they have redesigned the kitchens and customer areas to improve flow, quality and experience. Plus, at the end of the night, there is no big clear up – its a “clean as you go” model… The only thing that needs doing after dinner is stacking the plates used and turning the dishwasher on…

In IT terms, this means getting your technical environments aligned, address all your technical debt, getting the team, office space and Project and Sprint Goals ready. Make sure you are delivering the right value that your customers want. Create an enjoyable environment that fosters creativity and fun.

Sprint 0 – Get your kitchen in order first…

Stand back, take a sip of the wine… All is good. Let’s start.

Sprint 1 – The Base

Sprint Goal

To create an onion curry base. This base can be used for multiple curries. At the end of each sprint, there should be value to the customer. However, this sprint creates value for chef who can then create value from this.

Sprint Plan

  • Heat Oil
  • Fry Mustard Seeds (3 tsp) , Cumin (5 tsp) , Cinnamon Bark (2pcs), Chilli flakes (1tsp) until seeds are popping
  • Add medium-sized onions (5 off), chopped roughly and fry until translucent
  • Add a garlic (whole bulb), peeled and you can either crush the cloves or leave whole. I tend to leave whole.
  • Clean up

Sprint Review

At the end of this sprint, I have the base to cook from. I cannot serve the base on its own as this will not really provide a meaningful or tasty meal. The real value is in creating the foundations for the meal.

This is the base of the meal and sets the foundations for the rest of the recipe. High quality ingredients and the right amount of cooking. A poor quality base will affect the rest of the meal.

I have modified this in the past with the addition of bay leaves or curry leaves and bashed cardamon or fenugreek seeds. You can experiment even at this early stage.

From an IT perspective, this may be the equivalent of configuring your build tools, deployment pipelines, test harnesses, coding standards, security frameworks and creating your foundation code structures. Basically, creating the foundation on which features can be built, integrated, tested and deployed to production.

Retrospective

This phase, if done wrong, will affect the rest of the creation of the meal and its taste and experience. If I rush this or skip ingredients, I’ll pay for it later.

We often want to rush this phase and get into value creation but these first two phases take time and will define the quality of the end product and the productivity of the team.

this phase takes a lot of cutting, chopping, peeling, etc and is largely repetitive. I have sometimes made large batches of this phase and frozen them in smaller containers. The initial investment pays off in the long term as there are efficiencies in having these created in a batch. The issue is that there are other recipes that have a different base mix or the frozen mixture can go off. Things to consider in cooking and in IT.

Sprint 2 – Protein

Sprint Goal

To cook the chicken into the base until fully cooked.

Sprint Plan

  • Chop chicken (give some scraps to the dog)
  • Add to pan with base mixture
  • Fry and stir until fully cooked
  • Clean up

Sprint Review

By the end of this sprint, the chicken will be cooked in the onion base. At this point, we have value and if we were all desperately hungry, we could eat this at this point. Satisfying hunger and providing some nutrition would be achieved, although not enjoyable.

In IT, this is where you may have a framework or a very early prototype. Some base functionality may be there that provide just enough functionality to give the customer a view of what basic, high priority capability will look like. It’s not a fully integrated or a “pretty” solution.

Retrospective

Step back, another sip of wine, crank the music up a little.

Some of the graft has been done. What went well, what not so well and what could be better? I have refined this over many many curries so I have this nailed pretty well.

For a Friday night cook, doing the first couple of sprints is not so bad – But, if I were to open a restaurant, I would either buy-in pre-prepared items (e.g. pre-chopped chicken) or I would get the base prepared in batches in advanced as this won’t change frequently.

I may get one of the kids to come help with the chopping – but I may need to compromise on the music choice and not dance around the kitchen during sprints.

I may try a different wine next time as I cook…

Sprint 3

Sprint Goal

The Chicken stock will have a deep, rich and layered taste with a beautiful aroma and texture.

Sprint Plan

  • Add chopped chillis (5 off), turmeric (1 tsp), chilli powder (4 tsp), garam masala (6tsp), cumin and coriander mix (3 tsp), salt (3tsp)
  • Fry together until you have a nice thick aromatic paste
  • Taste and adapt.
  • Clean up

Sprint Review

You should have a nice textured spicy (hotter than you would normally like) and aromatic curry. All the ingredients so far should be in and you will have cleared up, put things away, washed up/stacked dishwasher as you have gone along.

This provide a very rich base and probably wont feed the family for two days and will be too spicy for some people. It needs softening up with more ingredients but you could serve this as a very high quality meal.

You are having more fun as the wine flows and the music volume notches up.

In IT terms, you have the core functionality and could go live at this point. Everything is super high quality but not everything is there – In IT terms, you would get this out to the customer and get feedback in the form of adoption, usability, errors, scaling behaviour, etc.

Retrospective

All good so far, my glass needs a top up and the kitchen smells fab.

The first 2 sprints were mechanical, this one was more experimental. At this stage, you could add different spices and different quantities to your taste, you may taste several times during this sprint and adapt to make sure the blend of spices are right.

If you wanted to automate this part, you may have bought a jar of pre-made spice or a spice mix and just stirred this in. Less experimentation but more repeatability. Also, I like dipping into my various jars of spices – makes me feel like I know what I am doing.

Yum yum.

Sprint 4

Sprint Goal

To create a rich spicy sauce from the spicy chicken mix and prepare the rice.

Sprint Plan

Rice

  • Melt butter

Sauce

  • Add tin of tomatoes
  • Cook and reduce

Sprint Review

This was a simple sprint, work is getting easier and by now we have started the rice and more importantly the drier spicy mix is now a think sauce. You have something much more recognisable as a curry and you may taste this a few times – just because its so good.

From an IT perspective, you will now have a lot more functionality and the pilot feedback is really good – so good that they want more. You may have also started to get the customer ready for adoption and business change (e.g. the rice)

Retrospective

This tastes good. I cheated a little here with the tinned tomatoes. The book says use fresh ripe tomatoes but I like the consistency of tinned better as its a little smoother.

I could have bought pre-cooked rice and I did get pre-made chapattis. Rice is easy to cook but chapattis is a whole new work stream and I didn’t fancy focussing my time there today.

We all have to make the trade-off with what we make/buy and what we do in manual/ automated ways.

I am glad I have not outsourced the wine drinking although the wine and music are provided by suppliers much better than what I can do.

Sprint 5 – Value Add

Sprint Goal

To complete the structure of the curry.

Sprint Plan

Rice

  • Add Basmati rice (2 cups), water (4 cups), peas (1/2 cup)
  • Bring to Boil

Sauce

  • Add tinned tomatoes (1 tin)
  • Add tinned spinach (2 or 3 tins)
  • Add salt to taste.
  • Bring to boil

Sprint Review

This was simple, bring to boil, add some more tins and a pinch of salt…

We have a very rich, tasty, soupy chicken curry now with the right taste and texture. We also have brought the rice to boil…

In IT terms, the software has all the most important features and already people are using the service and its widely adopted. We have responded to feedback and altered as we see fit and re-tested our new hypothesis. The process is smooth as we have built good technical and team foundations so each sprint feels easier, although now we are delivering significantly more value with each sprint…

Retrospective

The food it taking shape and tastes awesome, the kitchen smells great and is super clean and the kids have been down to see when tea is ready as they can smell the food.

Now I can taste the whole meal, perhaps there could have been more chilli or less cumin, perhaps I would like a thicker sauce – these are small improvements for next time but doesn not take anything from the current meal. It’s not like |I threw everything in in one big mix and this was my first taste and there is nothing I could do but start again…

Sprint 6

Sprint Goal

Fuse the flavours and finish the rice and chapattis – serve.

Sprint Plan

  • Bring rice and curry down to simmer, cover and leave for 20mins
  • Set Alexa to remind me when 20mins is up
  • Play XBOX
  • Microwave chapattis

Sprint Review

The last sprint, really easy. At the end of this sprint the curry is rich, tasty, hot and ready to serve and the rice is fluffy and ready to serve.

It’s time to plate up.

From an IT perspective, this is normally the most dramatic and traumatic; getting everything ready, on time and to high standards with the business ready to consume serves resembles the first few chapters of the phoenix project. Everyone is tired, putting the hours in, stressing, missing valuable family time, suffering with mental health issues who eventually deliver something no one likes or wants anymore. Deployments are painful with new issues seen in Production with security holes, performance issues and stability concerns. Early Life Support starts with a Sev1 Major Incident in place supported by a Red Team from Development, Security, Operations and Transition teams…. the horrors.

My last sprint was spent playing on the XBOX. That’s what software deliver should and can feel like. You have built a high quality product, released it in stages and tested the hard things like config, release, change and transition management many times. You already know you have a working product and you have had time to relax and enjoy on the way.

Go live is a simple “sit to the table, kids” moment…

Retrospective

Again, I have done this many times and the “clean as you go”, “cook in phases” and regular taste tests have been integral to the process. I can modify and experiment along the way and if the kids told me that they did not want spinach before Sprint 5, I could have added peppers, carrots, potatoes, peas, etc or just left it with its tomato base. I could have changed the specification fairly late on in the process based on feedback.

In the early days, there was a lot of cleaning up, waiting for rice at the wrong times and gathering of people from different activities and locations… Curry making is now a fine art.

Sprint 7 – Serve

Sprint Goal

This is to make the curry look, smell and taste a little bit nicer and get this to where it can be consumed by the family

Sprint Plan

  • Add Fresh Coriander, stir
  • Serve

Sprint Review

Some rough chopping later, followed by serving, my family are enjoying a fantastic meal.

Retrospective

Yum yum… perhaps I could have added half the coriander earlier? Perhaps I could have had a little less wine during cooking… not enough in the bottle for the meal… whoops!

Feedback from the family was very positive…

Adaptations from the IT World

Agile vs Waterfall

There are certain meals, simple meals where you follow a set of steps in a certain order and the perfect meal will be created. No need to adapt or create feedback loops. Follow the instructions in the packet and done.

However, this is reserved to meals where someone else has done the thinking and they have created the meal and you are just heating and serving. It’s not really got your specific tastes or creativity built it. In many cases you are paying more for a more unhealthy meal – but hey, it’s easy.

Most creative meals require multiple phases with multiple feedback loops where one could realise value early on…

DevOps

If all I did was make Indian food my reputation would be based on customer experience and I would want to scale and innovate to attract more customers and feed more people. In which case, I would not only make this curry, but I may make a portfolio of Indian food. I would also be accountable for the running of a service in one or more restaurants with maybe a takeaway service.

Therefore, I would invest in a better environment to work in with more space, I would have more automation and pre-prepare may of the sub-components and have these ready to re-use to make faster high quality meals. I would also do more myself and with my team so I can make sure I have the best ingredients (e.g. fresh tomatoes rather than tinned).

I would have a team. I would be the Product Owner, I would have a Technical Lead (Chef), a Delivery Manager and Engineers (cooks, waiters, hosts, etc) and I would create a culture of high performance and innovation whilst having total systems thinking and lean management principles. Waste would be reduced, customer experience increased and team motivated through the pride in delivering great food.

There would be a lot more automation as well. I would use more blenders, mixers and other machinery to deliver consistent food faster. Other appliances such as Pot Washes, Naan bread ovens and drinks dispensers would make manual work automated.

Low-Code/No-Code

If I was to use a low-code/no-code approach, I would bring in lazy garlic and lazy chillis, bottled sauces and pre-cut onion spice mix. I may buy these in or I may have pre-made some of these in batches and frozen them. I did do this with the chapattis…

Either way, I have taken the meal and broken it into sub-components which have been provided separately. I will have to make the make/buy trade off still and will need to invest in the creation of the ‘modules’ if I were to use them for later meals.

In IT, we may create packages of code that can be re-used or configured so that the code is modular and made up of interconnected re-usable components which have been configured rather than coded. The issue here is that you still need competent people configuring the components to the right standard and using the right engineering processes and if the people who built the original components move on, debugging and creating new will become issues.

Sourcing Strategy

I made this curry in-house, I could have outsourced this to a takeaway or a restaurant or I could have outsourced components. All these options have a trade off between quality, experience and price. eating out is great but not practical or healthy every day, buying in components is more expensive that making the component, in the main, but there is the trade of between quality, cost and time… I prefer home made chapattis but that takes an hour to make alongside curry making. It makes a huge mess and means a lot more parallel thinking…

Artificial Intelligence

There are already restaurants using artificial intelligence to interact with guests, prepare food, collect and analyse customer experience data and create kiosk experiences.

In IT, we are doing the same where we are providing customer interaction, service delivery, customer analysis and self service for customers.

Machine Learning

Now, add to artificial intelligence the ability to learn. Not just take inputs and create outputs but to collect the vast amount of system and external data to prepare food.

Perhaps machines will be able to take AI data and learn what type of food customers like, how much they order, the seasonal difference, the deviations on quality of stock and the best places to buy at different times by monitoring cost and quality. What if the machine can learn what is trending in the world, region, town and city and has data from browser searches on what people are looking for. What if they can adapt the menu multiple times a day to respond to all this data and make this available as personalised adverts to the right people; perhaps even suggesting tailor-made meal programmes for different people based on preferences, allergies, seasonal produce and costs.

What if machines could learn enough so that the stock is just right to serve what the people in that area want specifically and make any meal from any region through robots which can cook, taste, smell and interact with external data to constantly improve food and the lowest possible cost?

Augmented Reality

What if we did not even have to eat? |Our senses are provided with the sight, smell, taste of eating but its not real food?

What if our nutrition was provided through pills that tasted, felts and smelt like food… Like the gum in Charlie and the Chocolate Factory…

Raj Fowler

I am a natural, enthusiastic and authentic leader who understands the impact of IT as a differentiator for business performance and how organisational culture directly influences IT and business performance. With a strong appreciation of the changing technology environment, I have spearheaded a transformation of organisational ‘ways of working’ through adoption of the philosophies and principles that underpin DevOps, Agile and Lean. As a result, I have a track record of delivering operational excellence whilst improving IT agility, security and responsiveness enabled through close business relationships, technology-led thinking and inspirational leadership. 3 years ago we delivered about 50 to 100 changes per annum across about 80 business systems, all of which we managed using our standard plan, build and operate practices. Change was difficult and the transition from project to service was painful. I lived the opening chapters of the Phoenix Project on a regular basis. I now manage over 100 business systems and we categorised 7 of these as Products which include ServiceNow, Salesforce, Cognos, SuccessFactors, SharePoint. SAP and Bespoke Applications where we have established Product Teams. These are teams that build and support Product using DevOps philosophies. As a result, we delivered over 2500 changes last year whilst at the same time improving the service by 30%, improving customer satisfaction and employee morale. Using the "you build it, you support it" (Amazon) mentality, change is no longer a big event but a normal everyday occurrence and the usual spikes of incidents are no longer there, in fact with each change we deploy, the incident volumes reduce! Teams are not only delivering new features but are cleaning up their code and removing technical debt with every release. As a result, we have made a significant impact to the efficiency of our internal functions which in turn helps the competitiveness and profitability of the enterprise.

Have Your Say: