Editorials

I Wrote it Again

A couple decades ago I remember a mentor telling me that programmers would no longer be needed within 10 years or so. Everything would be encapsulated in objects, and we would simply plug objects together to fulfill our software requirements. Twenty years later I find myself still writing the same code over and over again. Tonight I am asking myself what keeps holding us back?

Today we have even better tools than twenty years ago for reaching this capability. We have tools like web services and JavaScript that are more and more open, working in multiple environments. We have richer patterns, capable of supporting multiple programming environments. Micro services are becoming more prominent, allowing the ability for distributed systems to be plugged together, and function as a bigger whole than the independent parts.

Are these designs too complicated for people to learn to implement rather than writing the same thing one more time? Is it that the different frameworks, systems, or services aren’t designed to integrate with others?

If you wonder what prompts me to come back to this question every once in a while, it stems from my observation while working, that I am again, writing or implementing another instance of the same functionality. Today I was looking into Authentication and Authorization again. It seems like this ought to be a corporate wide service available to all application developers, capable of being integrated at many levels.

It seems like what drives the need to design the same thing again is the number of individuals writing or implementing software. Because there are numerous methods of implementing functionality, there are going to be many different solutions. Merging all of these different ideas into a cohesive design is next to impossible for a small team.

Perhaps we need to put more effort into open systems, and collaborative solutions, rather than independent, single system solutions. Perhaps in that fashion, through natural selection, re-usable solutions will evolve more readily.

How do we get to re-usable tools and services? Share your thoughts in our comments.

Cheers,

Ben