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?