joi, 9 ianuarie 2014

Why we need Architects

Nowadays one could see numerous attempts to break down and conquer the complexities of software development through processes, roles, standards and tasks;  while I think this is certainly a valid approach, I also believe that it's no silver bullet.

No matter how smartly you're going to design your processes, tasks and roles, your weak link is going to be your employees nevertheless.  Therefore, it makes sense to invest in some people to attempt to strengthen this link.  You need experienced and capable people, and with the right attitude.  In addition to that, I also believe that there are a few key roles that most IT projects need and these are: PM, Architect, Team Lead, Developer and Tester (as you all know, there are other roles as well, but not important for the sake of our argument here).  Of course, sometimes, in the real life, some people will have more that one role.

While the PM needs to make sure the project is within time and budget, TL's job is to coordinate the development team through the daily tasks and do development of its own, the Architect's job is to make sure the project goals are being met technically.

It is the Architect's job that there is a clear understanding with the client on what needs to be built, to go to the drawing board and make a technical plan on agreement with the client (gathering feedback from everyone along the way), and to make sure that the artifacts delivered at the end of the project meet those objectives.

There is a wide agreement nowadays on the fact that most of the IT project fail.  Failure means in this context that most projects go actually over time and/or budget.  The most important reason for this is that the teams involved fail to meet the technical challenges along the way, being IT requirements, designing the solution, estimations, development, testing and so on.  This happens most of the time not because they might not have the desire to do the job, but because building computer systems is hard :).

That is why you need an experienced technical person in your project that is concerned mainly with the overall technical goals of the project (Architect/Technical Manager).  This includes making sure that the requirements are in line with client interests and plans, that they are sound, achievable, clear and non conflicting.  It also includes the technical solution design and plan, agreed with the client.  It includes the proactiveness in identifying and taking action to address the technical risks that may appear in the project, as well as making sure that the project  deliverables are in line with the technical solution plan.

It only makes sense that the presence of Architects in those teams would improve the chances of success for projects.  And as we all know, success means happier clients, more business from them and more money for us.

More on this subject later, have fun

Niciun comentariu:

Trimiteți un comentariu