It’s not hard to see that programmer slash developer going to increase significant in importance and in number of employers. This trending will for sure come shipped with changes in ways of working, scoping and how one can specialize! Let’s go :-).
- User experience designers, UX. Maybe the current most obvious trending. A strong emerging work role that is more about visualizing, modeling and describe requirements. A part of a coders life has for a long time been to design the frontend and indirectly, strictly speaking, tied whole business areas to the moment of feeling for the actual coder. Now coders can focus on modularize and produce competent and extensible code and create a design that meet something that users already agreed on.
- Test strategies with automation that today build traceability and business acceptance into the test framework. Including planning and driving the delivery frameworks such as agile or waterfall. The test manager and testers work as a new role here, often not touch a line of code but instead define acceptance criterias and measurements. Also they might drive required changes to the testability of solution. Coders are there to develop for the needs, not longer a part of the expectations to define and develop conprehensive tests and test tools themselves.
- Unsuccessful rate of IT projects it’s still high. Often due to lack of human resources, or key individuals that play to broad in the delivery and can’t deliver with full quality in all areas. Number of developers in a delivery must increase dramatically. The cost side for developers would be decreased scope and narrow use of each knowledge. This open for a new manufacture line thinking, drive a new level of skills and salary expectation to do a professional work.
- DevOps to automate and parameterize release and deployment. Abbreviations such as CI and CD disarm the (maybe) most challenging and specializationing of a coders role. That is to understand the often very complex and volatile relationships between dev, integration, test and prod. All of the sudden the continous deployment and continous integration can be done cross over organisation with a new kind of role, without passing developers and operational resources all over the building environments. Coders can instead isolate their work on build easy to parameterize solutions.
- IT architects is strongly going to be an agreed profession. The roles is clarified, contextualized. Several organizations start to agree in the big picture. All signs on this path give it more clear that architecture and architects is about a interface (not border!) to development and programming. Coders no longer need to “call out” to find out what integrations and components or deployments need to be involved.
- Virtualized servers, data centers, the cloud and docker. A technology paradigm that from ground is built to bring infrastructure as a service. Capacity sizing and physical limitation is now in the hands of infrastructure specialists. They deliver reliable and fail safe OS level, perfectly patched, backed-up and with disaster recovery inside the same. Coders instead focus on provide and deploy software functionality into the infrastructure components and increase it’s awareness on how build energy efficient, low-utilization solutions that are capable to scale out.
- Portable frameworks, microkernel and microservices patterns and software design. The separation of software functionality into portable components and increased asynchronous or loose coupling between them, make the developer able to be very-very specialized within it’s particular area. Also framework-oriented development is not future, its here. Specialization of coders is it’s capability to select correct framework and implement instances of those. There is simply put no need for more than just few developers with competence such as “full stack”, i.e. because of monolites.
In many of the listed areas, there is clearly improvements in sight of the developer slash programmer slash coder role. A kind of purification of the role, which most likely help you as recruiter and you as providing or valuate the education and skills of a resource. In several ways I feel this is a sight similar to the former big “industry floor” where workers are divided into, and to stay within, functional areas.
A production line roughly starts with
- transport to warehouse
- selecting from warehouse
- assemble and inspect <– many
- test whats assembled <– many
- repair what’s not pass test
- finally send for delivery queue.
Separate mechanisms taking over in the dispatch area. The resources may practically switch between the functional areas, but can functioning just in one at a time and organizationally belong to only one.
When I convert this to IT, I find
- requirement modeling
- sprint planning
- coding <– many (coders)
- early stage testing <– many (coders)
- testing <– many
- repair, re-deploy in test, re-test
- continuous delivering
A challenge to all this mentioned above, is the role that used to be defined as “senior developer”, sometimes lend from the architecture signs as “senior developer slash architect”. May we see many of them convert to lead developers, in line with test managers? or pure architects. Or technical projects leads. However, key positions is there rather then a dozen role. This latest style (archetypes) of developers is not where we will see the increased number of developers, the upcoming years.