If architecting is a skill how can it improved? There is precious little architectural training available, probably the most comprehensive non technology specific architectural training being from the SEI. This lack of architectural training is a very serious problem for the IT world in my opinion. Whilst I would agree that there is a certain amount of skill or art in being an excellent architect there is still a lot of grounding or first principles of architecture that can be taught. I believe that if we are to improve the quality of software architecture then we need to start to teach these architectural principles rather than allow new architects build them through trial and error, often with disastrous and expensive consequences.
It has been centuries since architects in the building world were allowed to construct large scale buildings by trial and error, although that is certainly how it was originally done as evidenced by the large number of cathedrals that fell down. In the software world however we still create major systems by trial and error, costing billions of dollars a year in failed projects. Many of these could be avoided if the architects in charge had had some simple training and education.
Why is it that no one offers architectural training? I believe it is because it is not in any organisations interest to do so. Companies selling services are really selling architectural skills, along with the project management and developer skills to undertake the implementation. In most cases they use the general lack of architectural skills and expertise in their customers as a key to the sale of their services. In my opinion the last thing these services organisations want is a pool of skilled architects in their customer base.
The other obvious source for architectural training is Universities or other places of higher learning. It is a mystery to me why these do not offer Software Architecture courses. The Universities I have spoken to say that there is no motivation for them to provide new courses unless students or industry drive them to it. All the time there is little understanding of the importance and value of software architecture then there is no demand and so the Universities do nothing.
The snag is that for most of the life of the IT industry the answer to any failing project has been a magical sliver bullet; either technical (PC’s, Distributed computing, Client Server, OO, CORBA, DCOM, etc) or process based (CASE, RUP, Agile etc). However I think that software consumers are beginning to realise that there is more to a successful software project than using the latest technology (CVware as I rather amusingly heard it called the other day) or the flavour of the month design process and that a project will fail if it is not built using good sound architectural principles, in fact most projects do fail for exactly this reason.
My fervent hope is that this dawning awareness of the value of Software Architecture will cause the development of good architectural courses and an improvement in the level of architectural skills in the IT industry. Then at last we can start to decrease the wanton and profligate wastage of resources and money in our industry caused by the lack of good architectural practise. I also hope that it will stop people saying that Windows doesn’t scale when a project doesn’t meet the scalability requirements!
Please note these are my personal opinions and not the opinion or direction of my employer.