Low code – how much of the promise can it really deliver ?


This blog you are reading is written on a “low code” system – it is a wordpress blog where I have not used any custom coding at all. I could have – and I am an experienced developer. And yet I chose to not even touch html or CSS because it works for my limited purposes. Few hundred thousand people have checked out my blog in the past – and literally no one has asked me yet anything that needs me to write some code. At the most – I will need to switch color schemes or font or pictures – and none of that needs me to write a line of code.

What works for me will not work for a larger and professionally run web property like Diginomica for example . They need code – lots of code. And if you go to an even bigger media company like NYT or WP, I can only imagine the talent, tech and processes they need to run it.   There is no way that 90% of Diginomica, let alone NYT can run with low code tooling today. Some day in future it may be possible – but I can’t even do any speculation on how long that is going to take.

What triggered my rant here 

This article Unqork CEO – ‘Agile has failed on Diginomica got shared on my twitter feed. That served as the inspiration for this blog. It had a catchy title – and I have criticized the poor use of agile and scaled agile  a few times in the past  . I opened the article thinking the Diginomica gang has uncovered a new angle on this. Unfortunately not only did I not find a new angle, I got very frustrated by a weird conflation of agile and low code, and some poorly articulated assertions on the applicability of low code. Usually Diginomica takes a critical take on the topics they cover – and that is the primary reason for me being a loyal reader. This one unfortunately did not cover the “so what” aspect – and honestly that disappointed me.

The fundamental premise is illogical – and poorly articulated

First – Waterfall and Agile are ways to execute a project or build a product from a methodology perspective. That has nothing to do with the actual tech that is used. For example – MongoDB came into being after Agile became popular. So if NASA did a waterfall project – should they avoid using MongoDB because it is more modern and hence only fit for agile ? The line of thinking itself is ridiculous . Now substitute MongoDB with low code tool of your choice and the silliness of that argument will be even more evident.

Second – between Waterfall and Agile is squeezed “there were vendors that claimed they could build you everything you needed into one package/stack” . I don’t know what to make of this. Incidentally, those solutions – like say SAP or SFDC – also can be implemented in Waterfall or Agile. It is a terribly illogical way to segment it on par with Waterfall and Agile.

Third – Agile has not failed universally. Poor execution of agile leads to failures as I called out above in the links to my past blogs.  But there are plenty of Agile success stories all around us. Since we already used SAP as an example – they deliver their product using Agile and so does SFDC and Workday and so on. So the fundamental premise of the title itself is flawed.

Now back to the idea of low code itself.

The principle of low code is a VERY good thing

Code has a tendency to become a liability the moment you finish coding. I am all for being a minimalist when it comes to coding. This is why engineers encourage re-use, why we establish frameworks, why we standardize tooling to the extent we can, why we encourage automation , why we like “shift left” and so on. In theory, I would expect low code based apps to be lower in maintenance cost.

We all like to do things better, faster and cheaper. Any tooling that promises that value is worth checking out. Time is precious for business and technology people.

And finally – there are only a small number of good developers to go around. Low code tooling goes a long way to mitigate this problem.

And yet, with all my positivity about low code – I think what the Unqork CEO is saying here is very far from reality today, and for foreseeable future.

You could build anything you can imagine without me needing to write a single line of code or generate code, because we think that’s also legacy. So the idea is to stop writing code, stop legacy. 90% of what any company does today, we could confidently do on Unqork without a single change today, without a single line of code. The last 10% is where 100% of their engineers should be building. Right I would say that that last 10% is purely APIs, interfaces that engineers are building that are unique to them

Low code is not new – we have lived through several avatars of this over the years. I remember SAP coming up with Visual Composer  something like a decade ago. It did not go very far. SAP was not the first – and things did get better over time. I am a fan of lighting platform that Salesforce introduced and it has several nice low code features. But even in salesforce projects – it is rare that 90% of the work is on declarative side.

Of course – history of failures is not something to worry about too much in tech. Tech usually improves with time .

A strong start to the low code story  does not mean it usually ends well

Time to market is absolutely a critical business driver today. Low code is a big help in proving out something as an MVP – as a prototype or pilot. If business likes it – great, and if they don’t you can throw it away with very little to write off. That is the good part. But that is not how this story typically unfolds.

Business will love the first version, especially the speed at which it got delivered. They will add a few more things to be done by the app. Most of the time – low code tooling can get that done too in record time. Then along the way – a high value requirement will come along which cannot be solved by the low code tooling . So it gets handed off to an engineer to enhance. This is where it typically picks up downstream momentum . There is a good chance that there is no way to make that enhancement without a significant rewrite. There goes time to market for a toss !

Mobile might be the hardest problem

Mobile is a harder problem to tackle than web. To get the best experience – I don’t think there will be a lot of debate that it is hard to challenge native development with generic tooling. Device integration, performance , Mobile UX are all hard to perfect without going native from what I have seen. If your experience is different – pls leave a comment, as I am very curious on this aspect especially.

Technical compromises just defer the costs

Low code ( and similar templated tooling that goes by other names) all are built with “general” requirements in mind. That comes with some obvious constraints – like the tooling expecting pre-existing APIs (in an enterprise world that is largely built as monoliths – or poorly designed/implemented APIs ) , some limitations in logic that can be implemented by drag/drop/click, and often performance limitations. That is the price you pay for faster development cycles. That is the price you pay with interest when your successful app gets asked to do more ! And if the tool can be extended – you have to ask yourself if it is “low code” anymore 🙂 .

There are indirect costs 

Low code also has some organizational costs that only become evident when you scale. A lot of the products are sold to business users with the promise “It is inexpensive, and you don’t need to wait on IT to get what you need – you can do it yourself”. Soon you have a proliferation of apps ( or reports or dashboard or whatever ), a lot of unused licenses/subscriptions,  and there is tremendous friction with IT ( traditional developers ) , and between business users. The typical solution – establishing a COC to “guide and govern” the low code system. Before you know – the COC gets bloated. And they put way too many constraints on governance (with good intentions usually) that the original time-to-value advantage is not true any more.

To conclude

I think low code tools absolutely have a definite place in the tool kit. It needs to be used for what it is good for – and that expectation should be clearly set with the customers who buy it. Over time, like with all technology – I totally expect low code to solve more of enterprise problems. But for now – I think claiming only 10% of scope needs engineers is an extreme overstatement.

Nothing but gratitude for both India and USA


It was August 9, 1999 when I left my home in a train for Mumbai with a suitcase I borrowed from my aunt . I was home sick within about twenty minutes into that two day train ride, but also very excited to join TCS as a trainee in their Borivali campus – called the “Nortel building”. Twenty years later – yesterday, in an elementary school auditorium in Casa grande, AZ – Dhanya and I, along with 245 other immigrants from 53 countries became proud US Citizens !

Oath ceremony

As the day of the naturalization ceremony was coming up, a lot of memories have been flooding through my mind.

Few months after I joined TCS, I interviewed with a client in Colorado Springs, CO to be a developer on an SAP project. A couple of weeks later – I was on my first international flight ever ; BOM-LHR-JFK , with the $200 TCS travel desk gave me, and with practically no knowledge of how things worked on this side of the globe. But I was sure I could do a decent job at work – and till date I think the three months of training I got from TCS was the most valuable experience in my life. I also made some life long friends from that time.

My first two experiences in this country were two extremes. The first was a guy outside JFK who tried to convince me that the taxi fare to Laguardia was $200 . He ran for his life when I walked over to a cop to verify the fare :). The second was a very kind lady who realized quickly that I was lost (and stressed out)  in the Denver airport – and took it on herself to call my manager and get directions on where I should go next. She yelled at him on the top her voice on the phone (he would tease me for a long time on what I did to him) , and then bought me a coffee and then walked away before I could even say a proper thank you. Till this day I believe she was an angel !

Most people who know me also know that I love Indian food. I have driven through snow storms for several hours in strange countries to find an Indian restaurant . When I first landed in Denver, I did not know how to cook – nor did I know how to find an Indian restaurant.  I was miserable. A fellow Malayalee who was a senior to me in TCS invited me home and his wife fed me an amazing mallu dinner. Angels come in different forms !

I also remember a colleague in Kansas City when I was working for Cap Gemini Ernst & Young . She had heard about the convenience shop owner who would go stand near his gun chest and stare at me every night I picked up a TV dinner on my way back from work. She started driving me there – paying no attention to my protests – and would stand there staring at the shop owner. Did I say angels come in many forms ?

When I started in consulting, there were not a lot of partners who looked like me that I could learn from . But then two senior partners – Ken Englund and the late John Leffler – took me under their wings and I eventually got to the executive ranks as well.

All those angels – these folks I called out above and many many more – far out number the evil I have encountered in my life. I have lived and worked in three continents, and this has been true everywhere.  I think these very kind folks are the primary reason I firmly believe in the idea of “Paying it forward” , loosely along the lines of what the principle of “Karma” teaches us. I don’t know if I will ever come anywhere close to what others have done for me – but I intend to keep trying.

For the first 6 years or so of living here – we had no intention of settling down here for good. The idea was just to make some money, gain some cutting edge tech experience, see a few places , and go back and live in India. But then the country grew on us. We had our daughter, our first dog, We bought a house, we made a lot of friends and IBM applied for my Green card. Just my luck – my application went into a lot of audits (including a court battle between the law firm that filed it with USCIS which they thankfully won). It took five or six years to get the Green Card. Another five years – more fur kids, changing houses and so on – we applied for Citizenship and finally got it yesterday. The legal immigration path is long and complex and it tests your patience. We respected the process and went through it – like many others – and it all worked out. I still need to figure out SSN updates, passport change and how to get an OCI card. But then again – I am sure the patience I gained through this long process will come to help 🙂

I am very proud of the country where I was born and raised. My love for my family in India, the schools and colleges I went to – and the teachers and class mates I had , my belief that there is no better cuisine than Indian food, my life long craze for Ilayaraja’s music, my conviction that Malayalam literature deserves more global recognition than it gets….none of that is ever going away.

I grew up in Trivandrum – where a the city center has a Hindu temple, a Church, a mosque and a fish market all right next to each other. I was born a Hindu. I attended a Hindu primary school, a Christian high school, a Muslim engineering college and a government run Business School. I am fairly sure if I ever counted – I have more Muslim and Christian friends than Hindu friends. Consequently – I am very secular in my belief system and certainly have no doubts that no religion is morally superior to any other. The idea that we are all equal and have the same rights – that is a deep rooted belief that India has ingrained in me.

Most years I get a chance to go to India for work and/or vacation. There is no feeling like landing in TRV airport seeing the shore line and endless coconut palms as the plane descends. I try to visit the local schools and colleges when I am there and share my thoughts, and engage in debates – something that I enjoy doing in US as well. I have some investment in India and I pay taxes for it. And like many other Indians who live outside India – I have always done what I can to contribute to help educate the children, fight poverty and help with disaster help whether it is in India or USA. Borders are important but ideally they belong to maps – they should not get in the way of doing the right thing.

When I finished my engineering college and B School – employment opportunities were scarce in India. That is not the case now. India is now a happening place and a fast growing part of global economy – even my sleepy old home town is buzzing these days. I often wonder if I would have ever caught that train to Mumbai if I got a good local job after college. If I grew up in the current Trivandrum – I probably would have never left . But that was not the reality when I was job hunting a couple of decades ago. And when I look back at the time I have lived in USA, it has been a huge net positive and fulfilling experience. So if I rewind the clock – I still think I would have taken that flight to JFK without a doubt !

The judge who presided over our naturalization ceremony asked us to stand up when each of our 53 countries were called out – and answer proudly one last time before we took the oath. It was a very emotional moment for me to stand up when I heard the clerk announce “India” – and I have no shame in admitting that tears ran down my face for a good few minutes. Later, after he declared us as Citizens,  he added “This is a diverse and plural country – you should be proud to continue your traditions and continue to speak your language as you live as US Citizens”. I believe those words were also from an Angel !

Thank you India, and Thank you America – you both made me what I am today, and I will be grateful forever !

Post Script 

Many thanks to all of you who sent your good wishes to Dhanya and me yesterday on social media – We really appreciate it !

I saw that some folks from India – none of whom I know from before, and only a small percentage of those who commented – got very offended on Linkedin that I said I am proud to be a US citizen . It is unfortunate that they leaped to an unkind point of view that my post meant that I am not proud of my Indian heritage, even though I said no such thing. Please be assured – that is not at all the case !

I also want to point out that I totally respect their right to voice their opinion – just as I have a right to express mine.  Thankfully the constitutions of both India and USA guarantee that right . I am not sure that calling me a Jackass is covered by the right to free speech though . I made my post in public domain, and I did it fully knowing that some folks who read it might not have empathy for the topic. There is a humorous and ironic side to the criticism as well – many of the “You are not a REAL Indian” crowd are employed at American companies like Apple, Amazon, 3M etc 🙂

 

 

A strictly personal take on multi cloud


This is one of those topics where my employer IBM has a vested interest and consequently I need to state upfront that what I say below is strictly my own views from my limited view of the large enterprise world. My personal experience over the last couple of decades has been in the very large company space. I have not spent enough time in small and medium companies to know their situation first hand. So please take what I say with a pinch ( or pound ) of salt . Also to preserve friendships that I value, I am not going to make any statements on specific cloud vendors. 

assorted hot air balloons photo during sunset
Photo by Snapwire on Pexels.com

For once, customers led and vendors followed . 

I know several commentators on social media call proponents of multi cloud as snake oil salesmen. What they conveniently forget in this case is that multi cloud is a reality and vendors woke up to it late and smelled the coffee. In the large company space I am familiar with (granted it is a small set – but also the set that everyone else eventually tends to follow in enterprise IT)  – I cannot think of even one that does not have several cloud vendors they work with at some scale. Most common pattern that I have seen is their own private cloud, one major public cloud and then a few others at negligible scale (often brought in via developers trying out new things). In a few cases, I have seen two public clouds used at scale – commonly as the result of some corporate M&A activity .

In short, multi cloud is a reality today – not some futuristic idea. As Eagles crooned – You can stab it with your steely knives, but you just can’t kill the beast. Every company struggles to manage it (Most cannot even monitor – let alone do some active management) and that is why vendors are on the job trying to solve it.

I don’t know why, but now I am now humming We didn’t start the fire 🙂

Multi cloud for Bursting / cost arbitrage – no one does it well…yet

While in theory – a lot of people would like to be in an ideal world where workloads can be sent intelligently to execute wherever it is cheapest to execute, that is still enterprise utopia. Even in the simplest case of your own private cloud and just one public cloud – seamlessly moving most of your apps from one to another is not easy to pull off . The two common use cases are when peak compute is required – like when month end closing happens, or thanksgiving sales happen , and when disaster recovery happens and you want massive fail over to happen to a different public cloud . You can do both  for well engineered applications today – but that is a very tiny part of the overall landscape, and won’t buy you much.

You can check out any time you like, but you can never leave !

(Sorry – the Eagles song just keeps playing in my brain in a loop).

In an enterprise with multiple clouds – the normal scenario is that data and algorithms don’t sit next to each other . One will need to move to meet the other when it is needed. Moving data is expensive – mostly because companies love to create data, and no one likes to delete anything . Unfortunately some data cannot move for legal or cost reasons, and some algorithms may not move because its vendor has no incentive to expose it elsewhere.

It is already true that you will need to do one-off extremely high business value solutions that need multiple clouds. It will only become more and more true in future. As an example, say five years from now (may be less)  – you may need a multi cloud scenario where a specialized solution that needs quantum computing from one provider, AI APIs from another and some good old algorithms from your own private cloud to manage enterprise risk.

The one off solutions usually don’t come with a lot of governance. So others will build little apps on all these clouds for other one-off solutions . Proliferation is more or less a given.

That was a long winded way of saying – multi cloud is very useful in adding significant business value ( since no one party will ever be the lone innovator) and hence you will use it. But once you are there – you are better off learning to live with it peacefully than just fight it all the time.

Containers are awesome – but only when used as intended 

Everyone wants to work like Netflix and Amazon. But the reality is that they all have massive baggage of applications that were built when cloud was not a thing. There is a massive fascination in the field when it comes to containers. I am a big fan myself. But if you look at how the move to containers look like today – you don’t need to be a genius to realize it is not used as designed. Most of the time there is no systematic refactoring done. Docker and Kubernetes are not silver bullets. I have lost count of how many times dev teams have overlooked security, performance etc in the quest to containerize everything.  Forget all of that – look at the docker image sizes in modernization projects and you will probably see a lot of them represented in GB and not MB ( and I bet you there are posters pasted all around the building saying lightweight images are what we are going for). If that is the trend –  the end result won’t look much better than just outsourcing your data center.

Got it – but what if we build our own management layer ?

Some companies have the ability to make significant investments in people and tech. They can of course attempt to solve the multi cloud management issues by building their own management layer. While it might help the first wave of hand picked applications to achieve utopian status – it is not without some long term pain.

The most obvious one is talent. There are only so many top engineers in the ecosystem and you need to recruit and retain them for a long time. And while top engineers love to build great new stuff, they don’t always fancy the maintenance of those cool things. So you will need to invest additional $ to keep it running and enhanced with high quality .

Then there is the problem of each cloud being unique. Over time better standards will evolve – but for now, if you want to build a framework yourself – you need to assume there is a relatively small set of common functionality that you can make use of. The rest you need to build into your custom layer, or offload to applications to do so themselves. I will leave it your imagination and level of optimism to extrapolate what happens next in each case.

So how does one proceed with multi cloud?

1 Invest in refactoring the tech, and be realistic on time lines. 

On an average – most large companies have only ten or twenty percent of their workloads that are cloud ready if you ask the question today. And that only means ready – it does not mean optimized for cloud. The best thing you can do is to invest the engineering effort to get your applications cloud ready.

2 Refactor the organization for the (multi) cloud world 

People are the make or break part of any transformation. Ask the hard questions – like can you manage DevSecOps that include your current private cloud and also one or more public cloud ? Have your governance process been refactored and will it be audit ready ? Have you budgeted for frequent re-skilling and attrition management? Does your platform team and apps team know what each other does and are there clear rules of engagement ? etc

3 Be a minimalist and work with the ecosystem 

As of today, I don’t think there is a pragmatic way to move to a low chaos multi cloud landscape without close partnerships with the ecosystem – including some partners you may fondly(?) call as “legacy”. On the other hand – you cannot work with everyone and get some place any time soon. So the practical way to do this is to choose a couple of partners to go deep with and try your best to influence their roadmaps and tooling to suit your goals. If you can resist the temptation – I would urge you to not go down the path of building your own management layer with great sophistication.

Parting shot

Every large company CIO that I know personally is a realist when it comes to cloud. Some may not admit their true beliefs in public – which is not uncommon, and not just about cloud either.  So I am an optimist when it comes to where multi cloud is headed.