Methodologies Uncategorized Wisdom

The sad reality of things: no silver bullets

    Since when I was really young, too many years from now, I noticed a constant trend of products trying to deliver non technical users from the pain of having to pay a professional software developer in order to build their software.
    I remember the first of those being marketed for Commodore C-64, and with this I am giving out a lot about my real age…

    The promise for the user was automating away the software developer. Just follow a wizard, answer a questionnaire, and magically an application (sorts of) would be produced without the involvement of a software developer.

    Maybe non programming people don’t really like us developers that much, the desire to do without us appears to be constant.

    There were many other attempts, on that line, offering more or less the same thing, and all have one similar characteristic.

    Actually, they all build the very same app, with some options removed depending on the users’ choices. But creating a general application, not envisaged by the designers of the low-code approach actually wasn’t possible.
    And of course the produced code was just abysmal, low quality, unreadable and boilerplate template stuff.

    Programming is hard, and requires both technical knowledge and the use of creativity, save in the simplest cases. It is true that most enterprise applications share some similarity, e.g.: handling of addresses of users in a database, authentication.
    But move away from those trivial use cases, or twelve just a little deeper into, for instance, requiring slightly more security, and with even the best “code generator” system you are left stranded.

    Most standard “apps” generated by a low code platform assume that all you need is displaying news feeds, which is incidentally one of the most trivial things you can do on mobile, and little else.

    Seen recent advances in AI, we witnessed machines defeating human masters at chess, go, and in the evaluation of (very standardised and common) legal contracts.

    Are machines going to be a threat for us? And would intelligent and self improving machines going to drive all our humans away from the field, making us all obsolete?
    If I were a lawyer I would be somewhat scared, but I am a software developer.

    Therefore I plan adding some AI to my current set of tools, knowing perfectly well that “programming” in the large is not going to be feasible by machine.
    Did not happen during the last three decades, and won’t happen right now.

    Should other categories feel threatened? I guess that the less creativity and empathy is required by your work, or if there are clear cut rules (and that is by definition the case for law services and for accountancy), then probably your work can be automated away.

    If you operate in a difficult to access ground, and have to make decisions just in order to physically access your path, and that is the case of, for instance, humble woodcutters, and you are pretty much safe from machine threats.

    In the case of software development, we developers sit comfortably and don’t have to walk through forests (save in the figurative sense). The really hard part of making software is however dealing with people. That requires interacting with your own fellow humans with at least some level of empathy, otherwise you won’t even understand the requirements of the task at hand.

    And very inconveniently, there are no magic solutions to hard problems, no silver bullets trivialising the hard work of making software have appeared so far, and probably never will.

    No given methodology, software tool, approach is magically going to automate or make software development so trivial that it can be guaranteed success and achievable by non trained, non software developing users.

    The old caveat about any scam always applies: if it is too good to be true, it quite probably isn’t.