ADD v/s DDA
The two acronyms above are anagrams of each other.
When expanded into Architecture Driven Development and Development Driven Architecture, these appear to be antonyms.
No, this is not a word play blog entry; it is about the challenges faced by organizations forced out of organic growth into embarking on large transformational programs. IT teams in such organizations face the challenge of altering their approach to architecture and development.
In the early days, the developer(s) put together the software and underlying engines and had a free run when implementing the business vision. Over years functionality was added until at some point the business started growing faster than the pace at which IT could keep up. Quite often the slowdown in IT's pace was then attributed to IT's bad habits, while conveniently ignoring that whatever IT did was what the business had asked for in the first place. IT had no way of knowing what business would want next so newer demands stumped IT even more and more.
Fast forwarding to the current time, looking for a solution, IT and business decide that the best way to proceed is to undertake a large transformational program that would help reset the IT solution. A best of breed package is identified and team start implementing it. However since this requires ripping out current systems and replacing them with the more rigid external package, it requires considerable thought prior to any ripping. This requires IT teams to focus on the end to end architecture, the process flows and the long term vision rather than the immediate job on hand (i.e. ripping, i.e. coding). This implies architecture drives development by default. This is different from the time when the development team could just build to requirements without considering the overall architectural landscape. The architecture was what happened as a consequence of the development, and it evolved since the home grown organic system allowed the flexibility to evolve.
Have you seen similar challenges in your programs? So, how is this conflict resolved?


