Skip to main content

Architect? Give me a break :)

Davy Brion has posted some rants about the Microsoft MVP program and the type of people that are attracted to it.
What David has mentioned holds true in some other areas of IT industry too.
"Architect" another cool but severely abused title :) If you take David's post and replace "Microsoft MVP" with the word "Architect" you would find everything still holds true. I am a strong believer that "Architect" as a designation\title should be done away with.

In my 8+ years of IT experience I have seen quite a few of this breed :) With exception of few I found most of them just good with
  • UML modelling tools (such as Visio)
  • Generating high quality project artifacts (Such as Function Specs, Design documents)
  • Buzz word mongers.
  • Smooth talkers
These maybe important qualities to have in an Architect but a sound technical background is a non negotiable. Everyone knows what is the end result if you engage such people. Such Architects mostly produce things that look impressive on paper but implementing them most often then not becomes infeasible.

Well, its not the Architects fault always. In a typical engagement this is how the Architect works. At the start of the project the Architect
  1. Understands the problem domain.
  2. Talks to the client coming up with a solution approach.
  3. Shares the solution approach with the client and key stakeholders.
  4. Gets their feedback.
  5. and finally creates artifacts for the team to get started.
What starts of as a full time gig for the Architect, gets reduced to a advisory role as the project progresses. And after some time the Architect is gone, entrusting people like us the responsibility of implementing their grand vision. This is where I believe the problem lies.

When we are working in an Agile age where requirements evolve, designs evolve, technology evolves, mandating a design at the start of the project is incorrect. The time where Architectural decisions are made, are times of maximum uncertainly as the project is getting off ground. What ends up happening is that Architectural document\guidelines gets sidelined and the solution evolves based on what the immediate requirements are. This is shear waste of resources.

There is another problem with this approach. Where is the accountability? If I am not going to develop something I am architecting \ designing, I can virtually propose anything. Literally anything !! If things work out fine I can always take the credit else I can always pass the blame to others. Works well for me! I can keep on doing that project after project and keep going up in the organization ladder, with virtual little or no real contribution to any project I work on.

At the end I am not going to present any solution for this situation but point my readers to an excellent presentation by Simon Brown where Simon discusses the role of the software architect, challenging some of the current assumptions and trying to redefine it in the context of Agile development. 


Popular posts from this blog

Caching Images downloaded from web on Windows Phone Isolated storage

I was helping on a Windows Phone application where the requirement was to cache the images the phone downloads on the isolated storage for offline viewing.
I wanted a solution which was simple and as transparent as possible. While researching I found  someone wrote a Silverlight converter for loading images from isolated storage. Taking that as a base I created a converted which can
Load image from web (http + https), and persist it to isolated storage.In case of network connectivity issues can load the same image from isolated storage. It does that by mapping the http url to a isolated storage location.In case the network is down and the image is neither there in cache, loads a default image, passed as parameter to converter.Here is the gist for the implementation.

To use the converter
Import the name space.Declare the converter as resource.Set the Image Source Property to use this converter like this 

AngularJS Model - ViewModel

Recently Robin Ward did a comparison between AngularJS and Ember (both the post and the comments are interesting read). One of the complaint that Robin had that AngularJS does not provide any specialized model class. As described in the blog

There is no standard Model base class, nor is there a component or interface in AngularJS that defines what a model is supposed to be.
What that means is that anything defined on $scope can acts as model, as this sample on the blog describes

For some (like me) this is the flexibility where as for others who want a more structural approach this is a nuisance.AngularJS does not even provide any definite guidelines around how the model should be actually designed to be effective with AngularJS

This leads to what we call as $scope pollution. We define multitude of properties on the $scope object and managing it becomes difficult.  Looking at the code one cannot tell what is the actual model and what properties are just to support UI logic.

Model Desig…