COBOL was taught to me as a programming language that can supposedly be used directly by business than business telling programmers and programmers writing the code. For people who have never tried COBOL, you write programs called “Essays” with “Paragraphs” and with a lot of capital letters and leaving whitespace margins on the left. The software industry always has this fascination towards no code technology, it wants the business to be able to create software that is not lost in the translation. Which clearly proves the point that building software is not a technology problem but a communication problem in using technology.
The closest any one getting to success with a no code tool is none other than the infamous excel sheet. Why did it succeed? It succeeded because the data, formula and output were close to each other with a very small learning horizon. Business people who started using it turned it into a personal software that does a lot of things for them but is not useful to put to use even in simple production scales or customise it for others. I have been given excel sheets during requirements phase and asked to transform that into a software that can be used and extended as well. So though it worked, it could not scale to be a full fledged software.
Rather than concentrating on no code solutions as a means to cut down programmer involvement, it should be seen as a powerful tool to enhance communication with programmers on what business is looking for.
Quick prototypes could be made both by businesses and programmers using no code/low code solutions that can shorten the learning horizon. Learn quickly from prototypes and then take it production grade at required scale when you learn from it. Isn’t this what agile manifesto is saying for last 20 years. Produce working software through emphasis on individuals and interactions, respond to change and have business collaborate well with programmers.
One of the elders in my family told me that I will become good at maths if I eat lady’s finger because that is the favourite food of the great mathematician Ramanujan. I believed that firmly and never missed a serving of that whenever it was cooked. I would often practice maths after eating a serving. It went on for a while during the childhood before reality struck me.
We will often see organisations wanting to bring in a change will readily adopt an organisation model from another company. Companies like NASA, Toyota, IBM have inspired management/organisation styles to be replicated like theirs. Adopting something that has been available in the public domain is not going to be of any use. Isn’t it like saying I follow the same things as an oscar winning director and I will win an oscar too?
One of the inclinations people now have is towards the Spotify model which was a matrix organisation with fancy names like squads, tribes, guilds etc. Does the same company follow to the dot on what is available in the public domain from early 2010s? Read this writeup about failed squad goals. This gives an idea that the model has not scaled or worked well for the one who proposed it as well.
An engineering culture is not easy to replicate just by copying the structure and names. Even if it worked for a set of people when implemented, it won’t work well for a long time or when the org grows up. Talent is not a static asset like machine capability that can be made to work in a structure. Government owned enterprises in India were infamous for their quality of work but ISRO which is government owned and has the same bureaucratic organisation, it has exceptional performance in the space program. How come it has the same org structure that has failed every where but works here, it is because of the strong engineering culture left behind by founding engineers which continues to thrive till date.
Before rushing to copy structures, free food, video games, stand ups, OKRs (…the list goes on) the best thing would be is to streamline flow of information between business, product and engineering. Eating the favourite food of a great mathematician does not make me a great mathematician.
Even people who run a kitchen everyday underrate waking up to a clean one and often leave the dirty dishes in the sink and leave the counters unclean. This clutter over the course of the days will bring two major issues. It will lead to tiring because of cleaning up first on waking up even before a coffee and the other which causes the fatigue in the long run due to the cycle of clutter and improper cleaning. When you enter the kitchen, you should be able to make your breakfast or coffee just right away instead of cleaning the kitchen and washing the dirty dishes. I also some time ago, wrote about parallels in running a kitchen and programming.
What if the cook wants to keep the kitchen clean but work piles up so much that they have to leave a wave of mess behind to achieve the dishes of that day. It happens once in a while during feasts and festivals, which is often followed by cleaning up the mess and cooking a little light next day. As a routine, it is always best to clean up the counters, rearrange the utensils and clear up the dirty sink before going to bed every night. Waking up to a clean kitchen is something that has a cascading effect on the peace of mind because a day always starts good. So one cannot plan feast after feast without resetting the state of the kitchen.
This is what you will hear from Software developers, they are never allowed to prioritise to keep their code clean, they are made to pile on tech and architectural debt to prepare for release after release. Developers end up starting on a back foot and will be inclined to add more mess to the existing pile. I like the idea of how Basecamp has a cycle of big and small batches, this gives enough leeway to the tech team to prioritise between features, bugs and debts and keep a healthy momentum going.
Waking up to a clean code is also an underrated feeling, but it will leave a great positive impact on the team that lives in the code.