My Response to “Are we over complicating software development?”

This question was posted on HackerNews by ian0:

I have recently been involved in the overhaul of an established business with poor output into a functioning early/mid stage startup (long story). We are back on track but, honestly, my lessons learned fly in the face of a lot of currently accepted wisdom:

  1. Choose languages that developers are familiar with, not the best tool for the job
  2. Avoid microservices where possible, the operational cost considering devops is just immense
  3. Advanced reliability / redundancy even in critical systems ironically seems to causes more downtime than it prevents due to the introduction of complexity to dev & devops.
  4. Continuous integration seems to be a plaster on the problem of complex devops introduced by microservices.
  5. Agile “methodology” when used as anything but a tool to solve specific, discrete, communications issues is really problematic

I think overall we seem to be over-complicating software development. We look to architecture and process for flexibility when in reality its acting as a crutch for lack of communication and proper analysis of how we should be architecting the actual software.

Is it just me?

I was going to reply to the comment on HackerNews, but I quickly realized that I had a lot to say, and it would not have worked well as a comment. Additionally, I felt that others might benefit from reading this question and my response in the future, and I worry that HackerNews comments quickly vanish into the ether never to be re-discovered by anyone at a later date.

Read More »