Working in software development means working with a lot of different technically skilled people. Those ‘IT geeks’ are still ranked by the same roles that were applied 20 years ago. Going from junior to senior developers, functional analysts, project managers, system engineers and architects.
Let us look at the last category, the software architects. They carry the responsibility of the IT systems in the organization. Not on a hardware or operational level, but on a design level. Whatever the development teams build must be of the highest quality.
A traditional software architect uses his experience and knowledge to guard these requirements:
- Audit trail
- Technical logging
- Technology stack
- Technical documentation
In most cases this is done by imposing rules and reviewing work. Besides that, most software architects are often involved into the analysis part of a development project as well. They try to make sure as much business scenarios are covered in the analysis phase to make sure the system can handle anything imaginable.
I think you understand that an architect is one of the least popular people in the company. From a business perspective he/she is perceived to be a critical person who always blows up scope and adds extra costs for technical reasons nobody understands. From a developer perspective he/she is perceived to be a bottleneck, always asking for extra information, demanding code to be re-written, approving or rejecting work from his ivory tower.
Like in many other cases this behavior is caused by the system, being the company. When IT is merely a department working on it’s own and hardly interacting with the rest of the organization, their goal is to perfect their own work. Why wouldn’t they? The rest of the company doesn’t understand technology and is always disappointed when things take longer or features turn out to be harder than planned.
Luckily, there is a new breed of software architects rising, the modern software architect. In companies that have chosen the path to embrace technology and use it to their advantage, the traditional IT department is disappearing. Movements like Agile software development are bringing all the different roles in the organization together in their quest to create something valuable.
I’ve seen a software architect is those ecosystems behaving completely different. Instead of focusing on defending the IT department, they are thinking about what’s best for the company.
- How can we deliver a valuable first version quickly so that we can start earning money or beat our competitors?
- How can we know that our software is matching expectations? How do we measure that?
- How can we make our systems scalable? If it is matching expectations, how can we grow it easily?
- How can we release new versions quickly? Is our deployment pipeline up to the task?
- How can we refactor our software easily? Because business is changing quickly, our software needs to be able to follow.
- How can we guarantee quality in such a fast environment where new software is delivered in days?
- How can we let our people work together and share knowledge?
The difference between a modern and traditional software architect is striking! You could say that a modern software architect has an entrepreneurial mindset. This is the logical consequence of integrating into the organization.
From what I’ve noticed, a modern software architect seems more to enjoy work. It’s no longer an endless battle between the organization and IT. It has become a fight for business success. A fight they’re in, all together.