Writing codes never been hard.

Making user stories come to life for the stakeholder has never been daunting.

Architecture however I find to be difficult. SOLID principles at a class level and project wide level I find complex. Im finding an all new love for programming in the realm of this abstract planning.

Most of the population with an average IQ and enough patience to learn some basics are able to write enough to solve rather complex issues. The evolutionary jump to simple abstractions is inevitable and the eventual understanding of frameworks is unavoidable as the problems grow more unique. For example, Ive had semi-technical managers as of recent write small web apis in node.js to help them integrate data from a headless CMS into excel. Point being, the problems that use to be trivial in our positions are becoming much less so.

The code writing aspect of development is getting easier. Frameworks are becoming more and more automated. The real world problems are also growing more complex and requiring larger solutions. The problem at hand is rarely the algorithm. Theres a package for most needs that arise.

The size of todays problems require multiple domains of logic and multiple systems to maintain. Throwing code at wall no longer scales far enough for a business to stay alive. Devs come and go, we do not enjoy growing idle as complacency means we are being left behind in such a quickly growing field. Without a sophisticated architecture in place from the class all the way up to an agnostic domain layer, a few cycles of developers will leave a codebase in shambles.

A summarized point of what im finding more and more of is that the writing of code is becoming much less a talent with a high dollar sign. The architects, the well weathered solution builders, the consultants preaching of the past and whats to come are where we will find most of our value as our solutions grow beyond rational understanding.

And what a fucking brilliant problem for us to solve in the coming of days: Mass service communication and organization. Being able to solve that problem cannot be an easy task.

  • 1
    I think we might be in the tail end of a golden age, when it comes to software design.

    Right now, with enough effort and head-cracking, we can still often enough manage to "carve nature at its joints" and make abstractions with sufficiently small interdependencies that reasoning about large bodies of code is tractable.

    But the trend is to bring in more and more externally developed chunks of code and services. What was a small probability of an incompatible assumption or API misuse begins to suffer from the multiplicative effect of combinatorial explosion. Reasoning through all these interactions may just become infeasible.

    This and the trend towards the deployment of herds of semi-isolated, interacting services may converge, and software architecture may end up more like software husbandry — a process of management and probabilistic verification, of redundancy and failover, of best-effort translation between incompatible ontologies.
  • 2
    @halfflat worded nicely. Thats kinda where im getting at with a hint more optimism. Architecture and service wrangling will soon become the nature of our field if it has not already. Clean architecture and with heavy reusability is vital but as the push grows for services to become smaller (im reading small enough to rewrite in two weeks), the thick abstractions are not nearly as needed. I personally like this. I like the idea of writing the damn thing sometimes, reusing internal modules as needed across services and if its time for a rewrite, its no more then a month of work and is small and comprehensive enough to tackle. Regarding all of the required communication and how were all banking on integration in such a desperate manner, I really look forward to a day where we leave it all behind. When theres once again a push for independent use cases & not this swarm of integrations
  • 0
    The whole field of "making automatons do what humans want" currently is still in its infancy. Current days most pressing unsolved problem is "How can we ensure in practice, that work descriptions for automatons aren't actually telling the automaton to let attackers do whatever the fuck they want with the automaton and all the data accessible to it".

    We are at the "It looks like it works fine for a while and then it suddenly explodes. And even the best minds on the planet can't reliably tell, when it explodes" level. That is a sure sign that we don't really know shit about that field.

    That is also the same level of "mastery" as we got in the economic field, where it basically is a given, that economy has to reset each handful of generations to make room for the next period of "unlimited growth". So far, most of that resets came with pretty bloody wars - which tells us a lot about our mastery of the social field...

    We truly live in a world of lowered expectations.
Add Comment