Thursday, December 11, 2014

Who is or who is not Architect


The following is a dialog between 2 individuals with the job title of Enterprise Application Architect. Let’s call  them A1 and A2:

 

A1: what are the CA warnings? What is the road map to eliminate them?

A2: let me send you an link from MSDN on these warnings. Microsoft did a good job on providing root cause, description, how to fix it and so on…

A1: do not give me work to do,  I am not going to read them all. I am an enterprise Architect, I only care about the enterprise architect at the high level.

A2: let me give you an example of CA warnings, CA1704 identifiers should be spelled correctly. The description is “The name of an externally visible identifier contains one or more words that are not recognized by the Microsoft spelling checker library”

A1: what is the methodology to fix this type of warnings?

A2: you correct the spelling of the identify to make them confirm to English dictionary.

A1: what, it has to be in correct English spelling? It is just a variable name, I can name it in any way I want!

A2: in modern programming, identifies ( class, property, method, local variables) need to be named following Pascal or camel name standard with proper English spelling of the wards. Failure in doing so would  result in this Code Analyses warnings.  If our programmers thought the way you think, we would have much more warnings than we do now.

A1: How to fix it then?

A2: let me show you an example on how to fix them, ( open up Visual Studio with the project opened)…

A1: I do not want to see Visual Studio, I just want to know methodology or road map on how to fix them

A2: that is what I plan to show you how I fix it as a programmer working on the code

A1: I am an Enterprise Architect,  do not show me these detail stuff

A2: (do not know what to say)

M1: A2, do you know what to do after this meeting? Do you know what A1 wants?

A2: I am confused, based on what I know on the subject, what I have provided is what he needs, it is just that he does not understand what I wrote. If you show what I have here to any software developer,  they would understand what I mean and able to follow what I wrote here to do what he or she needs to do. It I just A1 does not understand the business we are in…

M1: A2, since you did not provide what A1 asking for, and unable to provide the solution A1 is asking for. I will get someone who can…

A2:  I am not sure A1 knows what he is asking for or what he asks for even exist..

The conversation ends then, my friend (A2)  told me with frustration on his face…


This reminded me a book I read a year ago, the title is “Microsoft .NET: Architecting Applications for the Enterprise”. In the book the author wrote the following on who “architect” is…

 
every architect is a born developer. To take the metaphor one step further, we could say that the class Architect inherits from the class Developer and adds some new methods (skills) while overriding (specializing) a few others. Becoming an architect is the natural evolution in the career of some developers. The basic differences between an architect and a developer are experience and education. You gain experience by spending time on the job; you earn your education from studying good books and taking the right classes. In addition, an architect has the ability to focus her vision of the system from a higher level than an average developer… As we see things, an architect is, among other things, a better and more experienced developer. We don't believe there's value in having architects who just speak in UML and Visio and leave any implementation details to developers. At least, we've never found it easy to work with these people when we've crossed paths with them.


According to ISO/IEC, there are not various types of architects. An architect is an architect. Period.
 
It is fine to have multiple architects on the same project team. Likewise, it is fi ne, if not desirable, that different architects have slightly different skills. But they remain just architects, working on the same team on the design of the same system. And architects also have a significant exposure to code. They work out the design of the system but then work closely
with developers to ensure proper implementation. 
With that, I couldn’t help by asking, is A1 really an architect?  An enterprise architect in .Net project, does not know how to operate Visual Studio non wants to look at Visual Studio, What value this type of architect can offer to the project?