Michael Platt's WebLog

Computer Engineering

Blogs

Architectural Certification and Licensing

  • Comments 15
  • Likes

I am really interested in the whole area of Architectural Training, Certification and Licensing. I believe that we need a strong Architectural profession if we are going to be a viable and credible body of experts and that implies a corpus of knowledge, a set of training based on that knowledge and a rigorous and independent examination and certification mechanism.

As I see it there are four possibilities for certification:

 

1.    No Architectural certification; there is no need as this is already covered in other certifications

2.    A vendor specific architectural certification such as the Sun certificationhttp://suned.sun.com/US/certification/java/java_archj2ee.html

3.    An independent certification from an independent industry body such as the ACM, IEE, IEEE or NCC

4.    An independent certification from an independent body which is able to confer a legal licence such as the BCS or a University.

 

Each of these has it’s pros and cons. My personal opinion is that we should have a certification for architecture which has a legal basis especially as many countries (Germany, Canada) are looking for legal licensing of software professionals. Clearly Microsoft cannot provide 3 or 4 but we can be instrumental in acting as a catalyst to make them happen.

 

So my question to all the architects who are reading this is: “What is your opinion as to which approach to certification we should be taking”?

 

I will take any and all feedback to the people inside Microsoft who are looking at this whole area so you can be assured that your voice and opinion will be heard and acted on.

 

If anyone wants to help in getting this initiative going or has contacts / support in bodies interested in supporting Architectural Certification please email me at mikepl@microsoft.com

Comments
  • I think that 2 *and* 3 would be my preferred option.

    Certainly, options 3 and 4 would likely be better respected (perhaps, if they are done properly) but architectural certs would, I think, always have to revolve around a set of technologies (.NET or Java), perhaps with some "general" modules as well as "implementation" based modules. 2 and 3 could therefore be "merged", especially with Sun's new connections with MS (as well as IBM).

    Industry body provides overall certification with technology-specific modules provided by Sun, MS and IBM (etc) ?

  • Oh. And the vendor-specific modules could be available seperately too, without having to go the "whole hog".

  • I like the idea. The framework is independant, indusrty provides plug in modules allowing the course to stay up to date.

  • I have 2 (SCJA) but as you imply it only applies to a single technology (and being told the the nth time that J2EE Architects qualifications have no bearing on .NET jobs gets a little disheartening). An independent body would make more sense as this is more likely to be on-the-job (architects are expensive to companies and on the job is more likely to be actually used), especially small companies such as the one I work for).

  • My only issue with certification is that current .Net certifications don't necessarily promote skill or wisdom. All too often I have come across certified professionals that aren't very good. Or are only good at taking tests.

    For example, a person I used to work with had absolutely no .Net experience...yet he is certified in everything. Additionally, he had a difficult time getting his mind around certain concepts. In this situation, what does certification convey?

    I have also met an individual who takes pride in the fact that he passed 7 tests in a 4 week period. He is very good and a good addition to any team.

    I am all for certification and I understand that you can never have a perfect system. However, at the same time I believe that for any certification to have meaning the standards must be commensurate with what you are trying and able to convey.

    -Mathew Nolton

  • I was thinking of more a generic certification rather than a .Net (or J2EE) based one. This is the difference between Knowledge (ie I have learnt the book) and Skill (ie I know how to apply what was in the book). We have all met people who have passed all the tests but are still useless and people who have no qualifications and are excellent. One of the best dev's I ever employed had a History of Art major....
    Writing this sort of test is difficult but not impossible. I will have a go at a Syllabus and questions to give an idea of what I mean and post it here.

  • Do you know the World Wide Institute of Software Architects (www.wwisa.org)? They have similar aspirations.

  • How would you test the test ?

  • I am hesitant about certification as the whole software engineering/design and architecture field still feels very immature. Compared to other technical disciplines actual working practice is still too much hype driven (objects implemented everywhere now, services promoted everywhere now) where each hype tries to solve the problems that are left (or created! - the distributed object paradigm for example) after the previous one. For me that is an indication of immaturity.

    Another interesting point is that those IT disciplines least based on solid theory and practice (using titles like enterprise and information architect) seem to shout hardest for certification, but probably are least ready for it, as it will be hard to agree on well-defined common practices.

  • Whilst not specifically purely Architecture based, Charles Sturt University has a course in conjunction with Microsoft Australia. It's a Masters of Systems Development.

    The difference here is that some of the exams have been replaced with the relevant .Net certification exams, the upshot being that you graduate with a Masters Degree and an MSCD.Net.

    So I guess this is combination of 2 and 4. Perhaps if MS offered a focussed Architecture Cert??

    See http://www.itmasters.com.au

    Ben

    Disclaimer: I'm currently enrolled in the above course but have no other affiliation with CSU or MS Aus :-)

  • I too am very interested in the architecture discussion. My concern is that it is in danger of being slanted too far towards development (a little like knowledge management having the misfortune to fall into the hands of the IT industry) and may fail to fully deliver what a business needs - true alignment of all technology with business strategy.

    Compare to other industries - a chef would not succeed if he or she only knew about food, they also need to have a pretty good grasp of how to work the kitchen, and cook what the customer wants to eat...

    ...but back to the question, I think one of the challenges IT has in the business world is a lack of formal recognition that dents credibility. Certified Accountants have to go through a set of exams, and only have a limited number of chances to pass them, to maintain the bar of capabilitiy. Building architects have to go through years of study before being let loose on a physical project. Lawyers have to jump through multiple hoops, exams and practicals, before being allowed to practice. And we continue to see depressing headlines in the news when large IT projects fail to deliver, with £millions wasted, usually through the same failures in terms of poor requirements definition, poor project management etc. etc. (And yes, other business areas aren't immune - Enron and co have proven that, but they don't seem to be quite as regular as IT project failures.)

    ...and I don't think the role is as immature as we sometimes believe - arguing objects versus services to solve problems - well that's going into way too much detail. Building architects have to keep up to date with new and emerging materials, changing environmental and ecological demands and legislation - but the fundamentals of architecting a building to meet a need don't change - the same is true of IT.

    But, as can be seen from the responses, there are already so many different programmes, could we ever agree on a single method? I wish, I think that would be an ideal path (a painful one for those of us already in the industry, but for new entrants it could provide the measurement goverment & industry is beginnnig to look for)

    So, focusing on what can Microsoft do. I think we should be considering developing an 'architect' certification track, but perhaps with a higher bar than MCSE - i.e. if you fail the exam 3 times, that's it for at least 12 months (I don't think it should be as strict as accountants - technology changes too quick to say someone should never try again). There should be core theory that wouldn't change much - the fundamentals, and then the application of fundamentals against current and evolving IT trends.

    What would be nice would be to standardise the core theory with other vendors, universities, etc. all able to adopt the core theory and then bolt their own specialism as appropriate.

  • Hi,

    first of all: you are talking about Software Architecture not Enterprise Architecture,
    aren't you?

    But even for SW-Architecture: I'm very sceptical about a certification in
    this field. For me an architect of course has to have a broad knowledge
    on different topics and has to have deep knowledge on some topics.
    This part maybe could be tested effectivly (but even here, which are the
    topics?).

    But knowledge is the "easier" part. I don't think of an architect as someone
    who just knows and preaches the right blueprint of the day. Being an architect is
    about making descions that are taylored to the special problem field.
    So knowlegde is just the foundation for the work. And even worse:
    even for these special problems there is no such thing as the best/correct
    architecture!
    Of course there are better ones and worse, but there are many good ones.
    If an architecture is very good depends a lot on how the context of the
    system will change over time.
    Being an architect means to adapt to new (! so there is no blue print)
    situations and understand what the real problems are. It's about communication
    and many more very "soft skills". Because "making" an architecture is one thing
    making it used through the whole system, another.

    So back to the first question: how can this be tested? I don't think there is any good
    way to judge on this in an objective way hence to certify it. This doesn't mean
    that there aren't good and bad architects. It also doesn't mean you can't find
    out if someone is a good or a not so good architect. But how would you do it in
    a test.

    Ciao Alex

    P.S.: the opinion on what makes a good architecture changes very
    rapidly and so is very subjective. So what is a good architecture fat-/thin-/rich-client
    using busines logic implemented on the client, the appserver (as component or
    more service oriented) or as stored procedures? There is no right and no wrong,
    just fitting or not. And maybe "in or out"....

  • I think we all agree that being certified does not necessarily mean that someone is an expert in the area, and Microsoft's networking and development certifications are not an exception to this rule. So if a company is looking for a developer, looking at certifications is not the best way to evaluate the skills (I am not criticising the idea of certification, I have 6 Microsoft certifications!!)

    I see certification as a tool for self-development and personal satisfaction rather than a way of finding jobs. From the perspective of a couple of companies looking for developers, I have seen other factors being the criteria, but not the certification. So my question is that if we are going to have an architectural certification, do we think that companies are going to use it to find the best person? I would see other factors like domain knowledge, communication skills, culture, etc much more important. For a developer, the technical skills are very important and in many cases the technical skills have a large share in the value of the person (as opposed to the factors like domain knowledge, etc) but for the Architect's role, ability to communicate with the business, identifying business requirements and find a sensible solution for the enterprise seems to be much more important. I am not sure whether a vendor or even a standard body can do this. The same way that a vendor or a standard body can not recommend a product (e.g. OS, RDBMS, etc) as the best solution for a company, without having good knowledge of that organisation.

  • <cite>
    P.S.: the opinion on what makes a good architecture changes very
    rapidly and so is very subjective. So what is a good architecture fat-/thin-/rich-client
    using busines logic implemented on the client, the appserver (as component or
    more service oriented) or as stored procedures? There is no right and no wrong,
    just fitting or not. And maybe "in or out"....
    </cite>

    i do not necessarily agree with your examples (e.g. stored procedures are more about data and not about business logic and therefore belong in the data tier) but i agree with the point you are trying to convey. imho, it is more about understanding the subtle nuances of what you are trying to do and about guiding an organization to the best overall solution....because you are right, the best solution is subjective and will change over time; however, if you understand the different skills of the developers in your care and the needed solutions you can create an architecture that balances skills with tier purity with satisfying business goals.
    -Mathew Nolton

  • Thanks for all the feedback. I think that the general feeling is 3 or 4. I will investigate what can be done and post and update in a futre blog.
    Thanks again!