I and been pondering about my software projects at work recently and while doing some reading today, I made an interesting observation: Software is getting more complex and it requires more thinking, involves more moving parts and its in some ways is reminiscent to current postmodern thinking. Now, there could be countless reasons why it appears more complex though I'm not going to pursue this, only discuss my observations.

I’m also studying maths at the moment, in particular, linear geometry and algebra which, in contrast to postmodernism, is usually associated with modern, scientific thinking. 

So with this juxtaposition of thinking in mind, a bit of an introduction to modernism is in order, and then how software is becoming more complex in a postmodern society. I should also just say at this point, that this, like all my blogs, is just my view based on my recent experiences which could be biased or skewed by the industry, software technology and people I work with.

 

For a long portion of time, I’ve always viewed maths’ universality both pleasing and at the same time viewed it sceptically in its seeming application to everything.

Don’t get me wrong, I like maths for its accuracy and objectivity but I’ve always found it lacking in its unity with more human-like pragmatism, such as the inevitability of complexity that is outside of our understanding, subjectivity and the emergence of ideas that cannot be measured easily or accurately such as human behaviour, chaos and individuality and personal thinking.

For example, why do some people do things others don't - putting that in an objective law would be difficult because it's composition is difficult or too complex to reduce. Such ideas can be varying, wrong or indeed right given the circumstances. Math traditionally doesn't handle 'maybe' very well(though there are signs of that changing - probability, approximation etc.).  These types of subjective correctness’s are difficult to quantify with mathematical correctness and while one might feel that these types of problems are not math problems,  I do feel that maths is evolving and is and will be capable of trying to define measurements and subjective laws or tendencies like these.

For the most part, maths has a finite universe and everything within that universe is accounted for and understood and thus anything within that universe can be related within the confines of understanding within that field or universe.

This is what is at the heart of modernism – the mathematical view, that everything that it has power over, is definable and measurable.

Basically, the rules are set and they don’t deviate much.

Mathematics and indeed scientific thinking is what underlies Modernism. Its a view of the pursuit of an absolute definition, breaking down ideas and reasoning into their constituent parts and studying and reasoning about them (reductionism).

Software can be reduced, its parts studied, techniques applied, code practises enforced and measured too and this is why I feel mathematics and computing often seem to fit well (more on this later).

 In a way, modernism is a way to reduce complexities in order to understand the make-up or constituent parts of it. And this all makes sense when you think of maths’ pursuit - definition and relation to other already defined concepts.

Now as eluded to previously, I’ve found this to be useful in understanding geometry for example - a fairly one-dimensional view of a universe of concepts. Other things can be and are sometimes chaotic, possibly being impossible to pragmatically reduce them, being perhaps only understandable if you don’t break them down into smaller chunks. Because studying constituents at the micro-level in the pursuit of universal understanding - you don’t see the bigger picture.

This is where postmodernism is seen as an antidote, where the wider composition of something is considered. And if we are to believe that we are moving from a modern to postmodern society then we might need to realise that complexity, in general, is increasing and moreover that we are accepting it.

For example, certain ideas cannot be understood by looking only at their constituent parts such as the light which acts like particles and like waves – you need to stand back and embrace all the constituents of light to fully try to understand it. Concentrating on the particle-like properties cannot explain the wave-like properties. 

In the same way that emergent properties of things ‘emerge’ by being a factor of many facets of something  - not just one and being fixed on one will preclude you to seeing and understanding the holistic idea. This naturally means that postmodernism almost embraces complexity by definition and its not trying to reduce it into similar parts but coming up with ways to deal with its complexity instead.

So when thinking about software, and the move that the world is undergoing which, is a gradual move from modernism that looks to reduce complexity and apply scientific thinking to postmodernism, which acknowledging complexity, its easy to see why software is becoming more complex(Russo et al, 2017).

If we are to believe that this is being embraced by postmodernism society, then perhaps previous outdated modernism thinking in dealing with complexity in software is on its way out too.

Perhaps sequential, waterfall methods are outdated because of favour postmodern methods that deal with increasing complexity such as Agile.

Indeed Agile, like postmodernism, is not about the micro-level - its about the holistic view, a understanding that more is at play than say the code or the documentation or people or communication but rather the interplay between all of these parts– a whole system of complexity, something that modernism would seek to inhibit but is a reality these days.

 So the paradox: we're embracing or acknowledging complexity (because we have to) and its making our software more difficult to manage and maintain.