The digital transformation has led to software architects having an enhanced tool kit for Enterprise IT. The reason behind this is that requirements in Enterprise IT are constantly rising, especially when it comes to non-functional aspects. Many of the new solution approaches being applied in Enterprise IT originate from Consumer IT. These changes makes it necessary for software architects to have a hands-on mentality.
Innovative business models require short time-to-value cycles and swift feedback from customers. New software has to be supplied quickly and with superb quality.
Users expect modern IT solutions to feature the kind of usability they are accustomed to seeing in consumer apps. Having an attractive, easy-to-follow, and efficient user interface despite complex technologies and systems running in the background is one important success factor.
The execution of innovative business models is associated with a higher degree of internal networking at companies and opening up business processes for the API economy. This makes hybrid use of cloud-based and on-premises services obligatory, as well as the application of new integration approaches.
Digital business processes make it necessary to minimize the time lag between data collection, data analysis, and reaction. To that end, continual data flow is necessary despite the massive increases in data volumes. In addition to internal data, large volumes of external data with the widest variety of structures, such as social media, have to be included in analyses.
High adaptability for fluctuating capacity demands
New business models are leading to more frequent and drastic changes in the loads that services have to cover. To meet those needs in an efficient manner, it is necessary to be in a position to adjust resources dynamically.
Contrary to vertical scaling, there are no limits to horizontal scaling from the hardware perspective. Commodity hardware can be used instead of expensive special hardware. In order for an IT solution to optimally support horizontal scaling, new architectural approaches have arisen.
The customers of companies such as Amazon, Google, and Netflix do not experience maintenance windows.
„Customers should be able to view and add items to their shopping cart even if disks are failing, network routes are flapping, or data centers are being destroyed by tornadoes.“ – Werner Vogels (amazon.com)
Global low latency
The awareness customers have for quality has risen. Customers want to use services on a global scale. They expect fast response times the way they are accustomed to seeing in consumer situations, irrespective of where they are currently located.
The following image shows the enhanced tool kit of enterprise architects. It encompasses architecture, processes & methods, technology, and organization.
For architects to have a solid command over this enhanced tool kit, it is necessary to focus not only on creating concepts in Enterprise IT, but also to have a passion for coding. Why is that?
It won’t suffice to acquire new knowledge on a theoretical level. In general, a software architect will have a background of having learned about the established architecture catalog in Enterprise IT first-hand as a developer. That catalog is optimized for traditional and sequential IT structures alike. Security, structure, and correctness are in the foreground here. Just like the established catalog, the new enhanced architecture catalog also has to be learned first-hand and skills need to be kept up-to-date.
Furthermore, software engineering continues to develop just like software architecture does. Functional programming is increasingly establishing itself alongside programming styles like imperative and object oriented programming. This style of coding is more readable and makes maintenance easier.
Entirely new ecosystems have been created, especially in real-time analytics, like Hadoop. This comprehensive ecosystem uses horizontal scaling and provides solutions for streaming architectures.
Agile development removes the separation between the roles of architect and developer. The constellation under which one person writes concepts and another implements them does not work in agile environments. The entire team comes together to make architecture decisions and then carry them out together.
Techniques like pair programming represent an important method for architects to test concepts together with their teams and distribute knowledge accordingly.
In large-scale agile projects, overarching architecture decisions are often made and tested in communities, e.g. in the form of spikes.
Digital transformation means approaches found in Consumer IT are now being applied in Enterprise IT. Accordingly, the tool kit available to software architects in Enterprise IT has been enhanced significantly. The collaboration models used among software architects have also changed. These changes require hands-on software architects who enjoy having their hands on keyboards.