The rapid evolution of the Information Technology (IT) industry shows no signs of slowing down. The continued trend towards higher level automated business processes with business more and more being the system itself, drives large scale integration requirements.
With this users have seen an explosion of technologies, devices, platforms and concepts which can become bewildering to professionals entering the IT domain.
This is according to Fritz Solms, MD of Solms TCD, one of the country’s leading training, research and consulting IT companies.
Solms says in this highly integrated world, the focus on architecture and business analysis and the skills associated with these disciplines grow continuously. Developers have to routinely re-assess their strategic positioning in order to offer valuable skills which are relevant to the current needs of the industry.
Testers need to re-evaluate their approach to testing, focusing more on the testing of service contracts instead of testing specific implementations. Similarly, project management needs to re-align its estimation, control, resource management, measurement and reporting strategies with the changing nature of software projects.
The complexity and importance of software architecture is steadily growing. Architecture has become a core enabler for business strategy and needs to have representation at board level. In the past a solid enterprise architecture based on Java-EE or a similar reference architecture could address core business needs.
Modern architectures need to be a lot more polymorphic and flexible, providing solid integration, execution and persistence infrastructures. Even areas which have traditionally evolved very slowly, like persistence, are now challenged by the need for higher flexibility, scalability and performance resulting in movements like NoSQL and semantic knowledge bases.
With the hype around services oriented architectures (SOAs) now behind users, the focus has shifted to more mature and controlled roll-out of services and service orchestration with the option of making services available on the cloud.
In the context of these challenges, the need of architectural processes based on the more abstract concepts of architectural and integration patterns and strategies and reference architectures is growing. Solid approaches to validating and documenting architecture are vital.
The increase of complexity of business processes realised across a wide range of technologies, products and devices emphasises the need for solid business analysis. The business analysis will continue to move further away from technology onto technology neutral process and data structure design and testable service contract specification.
The services oriented business analysts with business analysts across the organisation collaborating to orchestrate from re-usable services which are available to the organisation.
Solms says the need for maintainable business processes which can be automatically mapped onto a realisation within systems is the driver for a more solid modelling approach based on the unified modeling language (UML) and similar technologies.
These business processes need to be designed using methodologies like URDAD (use-case responsibility driven analysis and design). The cost and quality of providing documented processes and service contracts will be reduced as more and more of the documentation is generated from business models.
Developers will separate into two core fields, that of core framework development done mainly in software development houses and that of integration, customisation and high-level service choreography of business processes within non-IT companies.
The latter is based on assembling business processes from services sourced from off-the shelf systems, systems developed by out-sourcing partners and services sourced from the cloud.
Solms believes developers will continue to heavily leverage off open source technologies and frameworks. It will not be sufficient to know one or two programming languages. Instead, developers are expected more and more to use a combination of generic programming and scripting languages, as well as domain specific languages to efficiently perform the tasks at hand.
Java's growth is unabated fuelled by enterprise development and mobile platforms like Android. C/C++ remain an important technology for low level framework development and PHP maintains a loyal user base. C# is lagging but still growing, while the use of other proprietary languages like Delphi and Visual Basic is slowing rapidly.
Meanwhile, the use of XML and Web services and particularly restful Web services will continue to grow rapidly. Web front-ends remain important but need to become more interactive. This drives the wide-spread adoption of technologies like JSF-2, Facelets and AJAX with similar frameworks for other languages being developed and maturing.
The rise of mobile clients, platforms like Android and the move to a general services approach puts focus back onto thick (application) clients, and pressure on more powerful and flexible frameworks supporting this. Model-driven development within MDA technologies will continue to mature and slowly become so within more progressive organisations.
So how does one position oneself in such a bewildering and rapidly evolving IT domain? Solms says this daunting task is made easier by focusing on understanding concepts and open standards, evaluating frameworks and vendor solutions from a solid conceptual basis.
“Vigilance is critical to assess new developments and position oneself strategically. Continuous skills upgrading through appropriate training, mentoring and attendance of expert groups and seminars is important to remain competitive,” he concludes.