Check and Mate
मन के हारे हार है मन के जीते जीत ।
कहे कबीर हरि पाइए मन ही की परतीत ।
These are words of Kabir Das was a 15th-century Indian poet and saint.
Winning and defeat in life is only the feelings of the mind.
If a man loses in the mind — is disappointed then there is defeat;
If he wins the mind then he is the winner. You can also find God only with the confidence of the mind
if you do not have the confidence of attainment, then how will you get it?
Today I want to write about Customer Success Engineering; aka “Maintenance” at some places.
Although I haven’t got the opportunity to be on this Line of Fire directly for long but I have seen and felt the pain and the success in between as an onlooker so excuse me if I am not able to capture the real essence of it as I know nothing about customer success engineering.
I won’t even attempt and would stick to my domain i.e;
And ‘defects/bugs’ which is end result of wrong choices and trade-offs I made and will continue to make however harder I try.
And can I as an architect do something to lessen the pain of CS community ?
So I start with one question;
How do one validate an Architecture ?
Some of the ways I have done are;
- How well it meets Functional Requirements(FR)
- How robust it is to meet the Non Functional Requirements(NFR)
- How well it can meet force majeure cases!!; No I don’t do that, I don’t even know how to architect for it.
There may be more but most of them if not all can fall in one of the aforementioned categories.
Now the next question is;
Is it enough ?
Answer can be “Yes” or “No” depending upon the glasses one uses to see the Architecture one has build;
IMO answer is;
It’s not enough.
Now while I ponder on this answer let me narrate a story;
I have been playing chess for quite few years now and my younger son saw me doing that he got interested and demanded that I teach him, I tried but I quickly realised that I don’t have a patience to teach a kid.
So we found a very good mentor and with initial hiccups my son quickly got the “science” behind it but he is still struggling to get the “art” behind it and he is trying his level best under the guidance of his mentor.
In no time he started defeating me unceremoniously which made me angry within.
I secretly read some chess tactics chapters and watched YouTube videos on it and devised a “Plan” to defeat him tactically and asked for one more game which he reluctantly agreed but asked one question;
“Are you sure ? Because I don’t think you will able to defeat me”
So we set the chess board and I demanded to play with white pieces which he agreed as he always insists to play with white pieces.
Well till the 10th move and under one minute on my clock everything was as per my “plan” and then that one “pawn” move at d3 by my son made me realise that I will be checkmated in next four moves and there was no way I could prevent that and that one move at d3 closed all my tactical lines.
Moral of the story “tactics” in chess don’t take you far and to be a great player one has to master the “art” and that can be only done by learning existing and devising new chess strategies.
So now coming back to my answer “No” to the question;
Is it enough ? to validate an architecture with FR & NFRs ?
IMO these are mandatory and necessary and we should also have strong processes , QA , Test Plans and Sandboxes, UAT, Canary and Chaos Tests.
But these can only ensure that you are Good to Go to Prod.
Once product goes to Prod; It’s a different ball game; The code and the architecture enters in to zone of mystery and surprises.
And there is no magic wand to perfect a software architecture to meet those mystical Functional and Non-Functional Requirements.
At best as an Architect we can try and we must try.
So in one sentence from my PoV as an architect there should be an endeavour to build;
Customer First Architecture
And rest follows and it is subsumed automatically.
Thanks everyone if you reached here I know it’s a bit philosophical and that’s what I call it as “Re-al-Ficiton” which I am yet to master like software architecture but endeavour is on and May be someday I will make a progress.
And this time there is no shortcut or YouTube videos;
To master software architecture I would recommend to read;
Both are of great help IMO;
But if you are really interested in watching YouTube videos with noise cancelling earphones would recommend following channel;
One more thing:
Let’s build Customer First Architecture.
My name is Santosh Akhilesh, I’m a Computer Science Engineer; I love to and attempt to write about; Humans and Philosophy, Poets and Poems, Artists and Arts and Humans and Computers; all together, all intermingled, all united as an unison like a Beethoven Symphony.
If you enjoyed this blog post, please clap 👏(as many times as you like) and follow Here and LinkedIn if you can.
My More Works on:
This is a personal account. The opinions expressed here represent my own and not those of my employer — past, present or future.