SgDotNet
Singapore Professional .NET User Group -For Cool Developers

Readings and Questions on Software Architecture and Software Architect

Should software architecture be owned and how to measure the output? What are responsiblities and liabilities of software architect?

I really like some articles from Skyscrapr because it provides in my opinion a good amount of quality, proper and down-to-earth (humble and not too much space walking) education material to what software architecture (responsibility and output) should be and what an architect (owner) should be concerned with.

In any sizeable and sustainabale human endeavour, it is impossible to imagine a teamforce without proper, formalized roles and responsibilities and also ownership of output. Yet, that could happen and happened for software. Software architecture is a grey area in many enterprise projects, software architect is a grey role that is so ambigously defined that whether he should code or not may become debate of years without clear answers.

In the article, What is an Architect brings the question upfront to the table and proposes the common terms the industry should agree upon: Solutions Architect, Infrastructure Architect, Enterprsie Architect. That is great clarifications - the reminding of roles and responsibilties would ensure the consistency and measurable of output!

The question is part of the original blog article from Software Architecture: Past, Present and Future which outlines the evolving of need of software architecture and software architect.

There are some other good articles, such as Mentoring: A Natural Element of Architectural Leadership. We also have Are We Engineers or Craftspeople? 

I always consider raising the right question is much more important than finding the correct answer. I would also applaude the sections of "Critical-Thinking Questions" in some of the articles (eg, Are We Engineers or Craftspeople?, The Role of Architecture in Business Analysis): they are so refreshing! The huge amount of articles and resources avaiable today, and avaiablility of google wikipedia at finger tips frequently mislead our mind into vicious cycles of instance-noodle trap - articles are read and forgotten, such sections reminded the need of asking the right questions and thinking out (not reading out or google out) answers. Great! I will re-read starred articles another 2-weeks then 4-weeks to ensure I still retain what I am enlightened with.

In the end, all the above cannot escape the center piece "communication and communication": architecture is a design output to communicate after all, to influence the decision, to justify the argument, to navigate through all the different waters. When we convinced others, we built the skyscrapr!


Posted Aug 21 2007, 11:53 PM by blackinkbottle
Filed under: ,

Comments

cruizer wrote re: Readings and Questions on Software Architecture and Software Architect
on 08-22-2007 8:38 AM

Martin Fowler, the *master* architect, has this to say:

http://www.martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf

blackinkbottle wrote re: Readings and Questions on Software Architecture and Software Architect
on 08-23-2007 1:47 AM

The problem with "need or need not software architect", most of time, is that we do not know how to measure his/her output realisticly and assess accurately the contribution.

The value of an software architect, in my opinion, is to inject valuable thinking (from past experience, and most likely bottom-up experience) in the design of software systems and by all means to convince others those all being said and painted is justifiable - and get responsible and liable for that. We are severely short of the latter. I believe defining concretely clear role, scope of work and accountable output is the key to separate the good, the bad and the ugly.

Communication is the key of an achitect. I relate this to the old debate, does architect need to code? My answer: on one side, why should an architect seem be ashamed of coding - does coding make an architec less worthwhile? (no!); on the other side, why should architect insist in the merit of coding if someone else in your team could do much better than you?! The ultimate goal of architect is to influence design, to communicate design, if coding is the best communication medium and means, then use it; if coding is standing in the way, then think of something else.

cruizer wrote re: Readings and Questions on Software Architecture and Software Architect
on 08-23-2007 9:18 AM

i think an architect needs to code. otherwise, how would he/she know the problems/pain points the devs are encountering?

i like this blog entry by fred george. maybe a project overall needs more "masters" who can collectively act as architects...

http://processpeoplepods.blogspot.com/2007/08/ideal-development-skills-for-pods.html

blackinkbottle wrote re: Readings and Questions on Software Architecture and Software Architect
on 08-25-2007 1:03 PM

Interesting posts on the developer ratio.

True, mentoring is the only way to bring up the level of the whole team and the quality of the final output. Brewing wine takes time, so hopefully the critical point happens sooner before any detrimental effect from underperforming staff (thinking of: rework on-behalf, too-frequent refactoring == rework, test team becomes unit testing team) happens on the project. That's growing pain: a lot of oversights and secrunity is necessary initially but hopefully only intially (this could turn tricky if some people feel intrusive this way but the outcome could become favorable, one case that the good end might justify the seemly "evil" means).

On the other hand, sometime we get chances to pick talents to assemble a team; but sometimes or most of time we would have to make use of existing resources. So working with constraint is the only way out.

I have a few related posts too on Team(http://community.sgdotnet.org/blogs/blackinkbottles_ink/archive/2006/09/16/Thoughts-on-Team.aspx) and Peer Review (http://community.sgdotnet.org/blogs/blackinkbottles_ink/archive/2006/02/02/Peer-review_2C00_-structured-walkthrough-is-more-useful-than-otherwise-imagined-.aspx) that may relate to more reality :)

Copyright SgDotNet 2004-2008
Powered by Community Server (Commercial Edition), by Telligent Systems