Skip to main content

On AI and Software engineering in industry

In any complex industrial undertaking, the chain of responsibility and authority is decomposed into a hierarchy. But this hierarchy of people has evolved to mirror the hierarchy of complexity in the problem space. Any complex problem is better solved by dividing into smaller parts and combining the results. And these are then broken into further smaller parts. Quickly, the breakdown of complex problems gets represented as a tree, and the mapping of the people responsible for each node in the tree becomes the organisation hierarchy.

What does this have to do with AI? AI is yet another tool for automation of parts of this tree to make them more efficient and increase profit.

In the early days of NASA there was a group of people, mostly women, whose role was called “computers”. In a matter of a few years, entire departments were replaced with machines. Some of them who understood the “what” and “why” behind the computations (as opposed to the “how”) kept their jobs and became operators of these computing machines. They were called “programmers”.

In the 70’s there were departments filled with people whose job was to maintain order books and double entry ledgers. With the introduction of the computers and spreadsheet programmes, these entire departments were replaced with machines and very few people who understood the “why” behind the accounts.

Sometimes technology comes that replaces the leaves of this tree, sometimes entire subtrees. This has always happened and will continue to happen. But it is not all bleak for humans. Such technologies also enable us to do what was not possible before, by freeing us up from the mundane. As Sir Humphrey Appleby says in Yes Minister, “Minister, the traditional allocation of executive responsibilities has always been so determined as to liberate the Ministerial incumbent from the administrative minutiae by devolving the managerial functions to those whose experience and qualifications have better formed them for the performance of such humble offices, thereby releasing their political overlords for the more onerous duties and profound deliberations that are the inevitable concomitant of their exalted position.” Tools like AI truly empower those of us who wish it, it become overlords of the domain.

And so it is with software programming. I am deliberately making a distinction here between “programming”, which is the act of writing code, and “engineering”, which is more about making decisions on tradeoffs. Engineering is about the “what” and the “why”. And so, I believe that if one is a good engineer, AI is a great tool to help us to more, and to do better. As of this writing, I do not believe that AI tools make better judgement calls than humans, because they do not understand humans. If you were writing programmes for the sake of writing programmes, AI can probably do a better job. But if you were writing programmes as part of a larger goal of engineering a product that is going to help some human, then it is that context and deep understanding of humanity that still makes you a better engineer than an AI.

Of course, in the short term, there will be disruptions created by those who do not understand engineering well. These are people who will believe marketing hype and misunderstand how AIs impact engineering, because they neither understand engineering nor AI. But market feedback will make course corrections over time. In that time, every “programmer” who was not doing “engineering” must start doing so. Most of them have the technical ability to do it. Just that they need to increase their awareness of the problem space, and understand the human and economic side of their work.

A good starting point is to find an answer to the question “Why am I worth to the company, what the company is paying me?”. For this, you may have to start understanding the economics behind the product you are building, the psychology of the consumers of your work and the tens of other roles that contribute towards putting your work in the hands of the final consumer. But this is exactly the kind of context and knowledge that AIs do not have today, and which will be overwhelming in terms of resources and cost for AI products to handle.

Comments

Popular posts from this blog

An 'eye opener' Let's say that you are teaching a class. Let's say that you are teaching Unix. You have drawn a neat sketch of the inode-wise layout of the disk and you are explaining the concept of the hierarchical filesystem and directories and inodes and hard and soft links with the help of your neat diagram. Suddenly you discover that one of the students is not getting the whole picture ... because he can't see ... *because he is blind*. At that moment I didn't really feel the impact because I was too engrossed in the subject, too engrossed in teaching. But the whole thing really hit me hard on the bus ride home. A thousand questions were raised, not many answered. First, about teaching - in such a situation, do you teach for the lowest denominator or the higher one. Doing anything is going to unfair to the other category. But in this case, the whole problem is magnified to a huge extent. I obviously cannot rely so much on gr...

Affine Transform

Affine Transform The affine transform is quite simply, a piece of art. Usually when you have a linear system with 2 dimensions,

Dumb and dumber

I think I gave myself the proof that my dumbness is unparalleled. There are two independent queues in our canteen for getting food coupons. After waiting in the first queue, for some reason, I decided to spend another fifteen minutes in the second one. I realised my stupid mistake when I reached the counter and the lady asked me what I wanted. I said 'nothing' and proceeded to the food counter, leaving the lady wondering what the hell had just happened. It going to be difficult to beat this act of stupidity!