I am not a programmer or a coder, I am a Software Developer

I am not a programmer or a coder, I am a Software Developer
A software developer handles many facets of a system

I am not a programmer or a coder. I am a software developer.

A software developer is a specialist in software engineering who handles architecture (system design and security), analysis (including estimations), interface design, programming (coding), quality control, deliveries, documentation, production diagnostics, operations, and system administration.

About 50 years ago, it was the birth of software engineering, and computer systems were used only by very large companies. Things like the Waterfall methodology were taking shape.

The separation between analysts and programmers was established to help organize large development projects. The idea was that the programmer (or coder) only had to implement what the software analyst had prepared.

Software engineering evolution

Software engineering is now rapidly evolving. Alternative methodologies are proving themselves. This rapid evolution has caused some to keep old paradigm, like “developer = programme = coder”.

The diversity of today’s projects sometimes requires developers to assume all these roles within a single project. It happens a lot for mobile phone apps. Bigger projects allow for specialization and collaboration between different roles. However, organizing these roles is a constant challenge.

There is the seemingly simple case of the developer who super-specializes in a single role (architecture, quality control, etc.). It sometimes works, but these developers may rapidly get out of touch with the rest of the software evolution. In short, the daily life of most developers is composed of tasks and methodologies that were unimaginable 30 years ago.

Computing is now in our phones, houses, cars, hospitals

Computing is now ubiquitous (in our phones, houses, cars, hospitals, …), and the reliability of systems has quickly been taken for granted everywhere, almost surprisingly! By accepting the immaturity of our profession, we can more easily maintain our vigilance to produce quality systems.

How to best tackle that rapid evolution?

That being said, the best solutions revolve around three points:

  • Choosing developers is as important as the casting of a movie. Sometimes, not always, the chemistry is just right and the resulting synergy creates great solutions.
  • Training must be continuous. The Web contains a lot of resources for training. So it is a matter of keeping an opened mindset and spend the time to learn.
  • Understanding that programming and coding are just one facet (that I love) about Software Development.