A lot of recent online purchases made me feel like a transaction generating unit who can be deceived into buying with as many dark patterns as possible. I was using a quick commerce app named after a SI unit prefix, it had asked me to buy their membership for a month for the promise of free delivery. Upon adding an item to cart, I was taken to the checkout where the price was not visible and I prompted with the pay button. I had to navigate out deliberately and figured out that the app had added 500gm variant instead of my intended 200gm, it added the delivery charge, platform fee, handling charge, gst. I was surprised as I had bought membership which promised free delivery just to be annoyed that free delivery was a coupon code which is not automatic.

Photo by Mikhail Nilov on Pexels.com

I felt very cheated and stopped using that app altogether. This has been designed and developed by well educated individuals guided by industry veterans, yet such dark patterns have become mainstay. Customers deserve honesty and trust, not manipulation. There is only a small line between outright scammers and borderline scammers. The designers and developers behind these kind of apps, view people as mere transactions. The more transactions happen, the richer they get. I wish that more people step out of their optimism bias and start noticing dark patterns, vote with the wallet and kick parasites like these away from the market.

When the entry barrier is lowered to try and create new things, there will be an explosion of people attempting to create a lot of new low effort poor quality outputs which I discussed about in my previous writings as Inverse vandalism. Gen AI arrived and pushed the outputs to slop territory. Every new tech is useful and makes lives easy, but channeling the effort to not product sloppy work is the key.

Photo by Google DeepMind on Pexels.com

How do we know that we are not producing sloppy work? My idea is to stay away from people who knows exactly what needs to be done. Collective intelligence and learning has always been superior than individual learning and intelligence. Many people are of the opinion that with the new age AI, tools they can reduce the dependence on humans (statements like we do not need programmers, AI will write everything), while they are just moving the workload from a deterministic abstraction to a non deterministic abstraction (at least for a few years). This means your plain english is a program, that will require linting to remove sarcasm, language analysis to remove ambiguity, differentiate between idiomatic expression and literal expression. I have just started, the list will go on because you have to bring everything else that applied to programming here.

It is collaboration, not blind automation; that will transform how we work with the latest AI tools. Treating these tools solely as automation risks producing sloppy, unreliable results.

I was connecting with an executive who wanted a certification program for lead developers to become architects. I wanted to understand the intent behind this and asked why are not they able to grow into their roles without a heavy weight training. His answer was, “If a nurse assists a surgeon in 100 surgeries, will the nurse be eligible to become a surgeon without being trained and certified as a surgeon?”.

It was a nice try, but in reality how many nurses have become a surgeon. All architects are developers, they always grow from being a developer into an architect. It is never a comparison. This also brings the question, is an architect a developer even if the architect does not write code? Yes; to start with, a solution with no custom code is the best code ever written. Having said that, code is the blueprint of an application and anyone impacting the blueprint is in an architect or a developer.

Photo by Christina Morillo on Pexels.com

Software industry is plagued with under training of developers with architecting skills especially softer skills like communication, time management, negotiation etc. Instead almost all focus is given to develop their coding skills to act as a replaceable coding unit who will unquestioningly pick up a task assigned and take it to completion irrespective of what the impact it will create. This defocus removes the developers from being aware of the domain, work with business/product to suggest alternatives.

Whenever I onboard trainees or juniors into my teams, I spend the extra effort to push them to see themselves as an architect. It looks like a formidable uphill task for them, most of them are quick to adapt, catapult their career and have a fulfilling experience. I too benefitted from this attitude by my lead very early in my days. I was told to ask for measurable business results on whatever task I was about to pick as a developer, that one question acted as a guiding light.

Every developer is an architect, every architect is a developer. It is just the experience that varies, it is not akin to nurses becoming doctors when they gain experience.