Arnon Rotem-Gal-Oz's Cirrus Minor
"Making IT work" - Musings of a Holistict Architect
Navigation for Arnon Rotem-Gal-Oz's Cirrus Minor - Who needs an architect anyway? Part I
Content
Sidebar
Footer
October 15, 2007
@ 11:31 PM
Comments [0]
Who needs an architect anyway? Part I
Well it seems setting up a new company can keep you busy at times - which is my official excuse :) for the quiet last week. Hopefully I'll have a little more free time this week
Note: I am talking in this post about roles and capabilities. i.e. when I say architect I mean someone who has the capacity to be an architect (e.g. as demonstrated in the
architect training suggestion I made
) and takes that role. On a specific project you may have a person that performs multiple roles such as an architect and project manger or an architect and developer while other project warrant one or more full time architects.
Not all projects need architects. There, I've said it. Not all projects need architects and I am not talking here just about trivial projects. There are cases (maybe even many cases) where you can get by with what I call "off-the-shelf" architecture - maybe with a few adjustments that any master developer (i.e. seasoned and experienced developer) can handle. For instance a lot of web-sites can do pretty well by using Model-View-Controller (or a derivative of that) along with a simple O/R mapper such as active-record. In fact a lot of them do when they use a framework like Rails that made these architectural choices for them*. Another example is the vanilla 3-tier architecture provided by vendors (such as
this one
by Microsoft). Yes, when you take something off-the-shelf the result might not be optimal but that doesn't mean it isn't sufficient. You just have to be aware for the tradeoffs...
Another point is that "design" is not an exclusive architect thing. A developer is not a good developer unless she also known about proper design. mastery of technical details of the language without understanding the wider context of design will just help you code a lot of crap faster.
Having said that we need to consider a few issues - When do you need architects? What do they Do? What's their relation and interaction with the developers ?
When do you need architects?
It is sometime a fine line between a project that can get by with an "off-the-shelf" architecture and one that needs an architect. It would be nice if we could have something like a
litmus test
that would tell us if architects are needed or not. I don't have one. The closest thing I could get to this is something I call the SCLR test (pronounced scaler). SCLR stands for Size, Complexity & Limited Resources.
Size - well if you are going to have something estimated at 1000 man-years or dozens of teams. I think it is pretty obvious that you can't just use something which isn't made to fit. If anything there's a need to divide the work between the teams in a way that would make sense so that you wouldn't get a big-ball of mud. There's also a lot of need to coordinate the efforts and keep the big-picture inline. Personally I think that it doesn't have to be a huge project to warrent some architects involvement. Since as Fred Brooks notes the number of interactions grows exponentially as we add more people. In my experience trouble starts even with more modest numbers - more than 4 or even 3 different teams working concurrently is probably a good number to start thinking about architects
Complexity - There are many signs for complexity in a project. The vision statement can provide a hint. "Let's design the software to support the next mars mission", "best CRM platform ever" - an ambitions project will not make-do with "average" architecture. Size (which I already mentioned) is also a sign of complexity, while previously I talked about size of the project, the size of data, users etc. is also relevant when we're thinking about complexity . A lot of external interfaces is another sign. Integration doesn't seem very complicated, until you actually try to pull it off. When you have to do a lot of that in a project that's complex. And there are many other signs
Limited Resources - Naturally every project has limited resources, but limited resources should be considered as a sign for architect involvement if the resources are extreme. When resources are extremely limited the tradeoffs that have to be done are more meaningful, which is why wed want people who can help with that (i.e. architects). For instance in a projects I worked on in the past we had a lot of availability and performance requirements on one hand but only so many "U"s in the rack and even limited electricity to make all this magic happen. This turned something which otherwise was a relatively standard IT project into something a lot more challenging.
Assuming I manage to convince you that some projects can't just choose one of the available blue-prints and need some more work - the next step would be to convince you that architects are better suited to solve this than developers. I'll try to do that in the next post on this series where I'll explain what (I think) architects do and their place in the development team
* Rails has more than just MVC and Active-Record but that isn't an important point for this discussion
Tags:
Design
|
Everything
|
Software Architecture
Related posts:
Software Architecture Seminar by Rick Kazman
Messaging subscriptions - per Message vs. Topics
Architect Soft Skills - PDF version
Architect Soft Skills
Eventing in WCF
Architecture - It is always a tradeoff
« What is that SOA thingy again?
|
Home
|
TDD tidbit - Who tests the tests? »
Comments are closed.
RSS/Subscribe
Navigation
Home
Papers, Articles & Presentations
SPAMMED Architecture Framework
SOA Patterns
About Me
Search
Featured Presentations & Papers
REST introduction (ppt)
SOA Pattern Presentation (pdf)
Fallacies of Distributed Computing (pdf)
Getting SPAMMED for architecture (pdf)
OO Primer (ppt)
Use Case Methodology for large systems (pdf)
Use Cases Methodology for large systems (ppt)
Software Architecture (ppt)
Service Oriented Architecture - Intro (ppt)
What is SOA anyway? (pdf)
O/R Mapping: Why/When (pdf)
Order my SOA Patterns Book
Published Patterns
Edge Component (pdf)
Gridable Service (pdf)
Service Firewall (html @ InfoQ)
Saga (pdf)
What I am reading
Subscribe to RSS headline updates from:
Tag Cloud
.NET (66)
A&D2007 (6)
Agile (21)
BI (2)
Cloud Computing (1)
dasBlog (1)
data (5)
Design (21)
ESB (2)
Everything (200)
Functional Languages (1)
General (62)
Google (1)
Java (7)
Mobile (2)
new (4)
OO (11)
PaperLnx (6)
Papers (3)
Project Management (8)
Q&A (1)
refactoring (1)
Requirements (2)
REST (15)
RIA (3)
ruby (8)
scalability (6)
SCRUM (2)
SOA (79)
SOA Patterns (33)
Software Architecture (175)
SPAMMED Process (33)
TDD (5)
Trends (1)
Trends (8)
WCF (2)
xsights (2)
Archives
December, 2008 (2)
November, 2008 (6)
October, 2008 (4)
September, 2008 (4)
August, 2008 (8)
July, 2008 (6)
June, 2008 (5)
May, 2008 (4)
April, 2008 (4)
March, 2008 (6)
February, 2008 (3)
January, 2008 (5)
December, 2007 (9)
November, 2007 (6)
October, 2007 (11)
September, 2007 (11)
August, 2007 (10)
July, 2007 (9)
June, 2007 (9)
May, 2007 (9)
April, 2007 (6)
March, 2007 (4)
February, 2007 (2)
January, 2007 (5)
December, 2006 (4)
November, 2006 (3)
October, 2006 (4)
September, 2006 (2)
August, 2006 (4)
July, 2006 (3)
June, 2006 (4)
May, 2006 (10)
April, 2006 (8)
March, 2006 (8)
February, 2006 (6)
January, 2006 (6)
December, 2005 (3)
November, 2005 (5)
October, 2005 (6)
September, 2005 (10)
August, 2005 (5)
July, 2005 (15)
June, 2005 (16)
All dates
All Posts
Contact the Author
Contact Arnon
Affiliations
Admin
Sign In