I don't want to be called a Software Architect. I have known and
worked with (and for) many people whose designation ranked them as 'Architects' (and/or superlative
variations there of), but except for few, I have rarely had any reason to respect the 'Architect'
role the way it had been projected. From what I have seen and experienced, the whole concept of
the role is twisted beyond recognition. It's very hard for me to imagine how can a Architect not
want or be able to code, not want to design and not be approachable for technical problems.
Architect's are projected as epitomes of technical excellence and all I have found them to be
doing is trotting around as technical glam dolls, spewing jargons, giving presentations from
which you can't derive an ounce of real life value.
During the years when I was being mentored, it was hammered down my head that to become an
Architect, you have to be an excellent designer and to be a designer you have to be an
excellent developer. Being an Architect is not about drawing boxes or spewing jargon, it's
about being able to foresee the road and be comfortable, accountable and responsible to
pave it if required. Being an Architect is being able to use your knowledge and experience
to mentor young people. Being an Architect is being able to wear a suit and explain to the
customer as to why the solution needs to be the way you see it. Being an Architect
also means that you be able to roll up your sleeves and spew high quality code, better than
your developers. Being an Architect also means that you can read requirements and foresee
how and which parts of your system will get stretched. Being an Architect is like being
a technical 'matriarchal elephant', who in drought or happy times can raise her trunk and
smell which way the water hole is.
All good things. But it requires time and devotion and an unfailing love for technology.
In today's software industry, you are expected to shed off your technical skin the moment
you cross three-four years. You are expected to 'lead', 'manage' and 'talk big'. It feels
so disturbing when I see young kids demanding to take on a lead role and not be asked
to code. The reason why this model works is because the limits of 'Quality' has been
streched so wide that a dinosaur can run through it. The industry thrives on outsourcing,
maintainence of applications. The industry believes that by following 'processes' it
can churn out reams of checklists and procedures which will render skilled labor redundant.
Have you ever felt the undercurrent of assurance amongst management that if your
project is CMMI compliant, you are on track! How many of the management have
you seen being worried about the fact that the project doesn't have a build environment
or there hasn't been one succesful build in the last month? Tell them that the project
got an process non-compliance because the right template was not being used for capturing
the minutes of the meeting and see a flurry of eMails at the higest levels.
The funny part of the entire story is, when shit hits the ceiling. Ever seen the scutter
of people during the end part of the project when the process comfort fades off and
you realize that you don't have a stable build or that your project is running way
behind schedule, components don't interlock properly. I have been in too many projects
and seen this happening too frequently. What happens then? Fire-Fighters are called in and
asked to douse the fire. Fire-Fighters are no one but senior people who love coding
and the warmth of the fire by their backsides. Where is the process now? Where is the
comfort that CMMI offered for all these weeks when the status reports were green to
the core. If you see it closely, fire fighters are essentially agile works. They work
at close quarters, have a high degree of communication between them, have high
degree of respect for each other, believe in the santitiy of the cleanliness of the
code, work in iterations, prioritize work, believe in frequent deliveries (to
soothe the managers who are purging thorns), to appease the customer who has lighted
the fire in the first place. Well, but then agile is not an accepted practice in many
CMMI organizations. Ever heard joke about agile methodologies during coffee
breaks? Maybe because many they don't fit in into the agile group, because prople in
the agile group don't bullshit, they write code, make things works, don't belive that
if they fill a word document capturing their review comments, the entropy in the world will subside.
Rather they believe that if the build breaks, the project health is going downhill.
I love coding. I can design. I can visualize multi component systems, their interactions,
performance bottlenecks. If asked what I would like to be called, I would rather say
'Senior Developer'. But in today's environment, that would sound more like a demotion
than an honest confession.
Maybe things will change one day.
|