The PoC scam in IT appraisals

One of the responsibilities that comes your way when you are a mid-career techie is annual appraisals. Some of them are your own team members and a lot where you participate as an external voice.

Your opinion as a technical person or subject expert is valued highly when it comes to top performers.

These top performers in the list have typical attributes, they have done lots of work in the project, often they have worked long hours and done “critical” work, won lots of “appreciation”, everybody(read the booses) like them and they have done lots of PoCs!

And what about skills? you may ask. Of course, there are skilled people, the ones on the floor that you have known as good with their craft, ones whose peers go to for their opinion ( and not help, which is overloaded term for outsourcing the hard mental work under guise of help ) and ones whose code is elegant and designs thoughtful. But there are not the traits that get highlighted often.

A manager representing his cases invariably talks in terms of hard work+critical tasks+star of the team that has done the work excellently (yes there is a word like that, an adjective(that I had to swallow many times) ). One might also sprinkle innovation as an adjective, which somehow again goes back to PoCs!

But first, let’s be fair to PoCs as their rightful place in software’s and later we can talk of their misuse in annual appraisals.

PoCs are great and helpful if they are aiming to validate (something). For example: In a mobile app in banking domain, can we skip showing real-time account balance and put Facebook like refresh button? By 2020 this technique had become mainstream but we first encountered it 5 years back it was a first-class case for a PoC on pull-based UI interactions for bank use cases. Another, more software-ly example, can we use actor patterns for fulfilling bill payments and will it spoil the user as well as IT expectations(read service guarantees). Such pointed question on will it work ? or how can we make it work ? are often a good candidate for PoC.

If the question is how will it feel, both in user experience or as a piece of running software are better-called prototypes. ( One might be keen to use MVP concept but the revenue and funding imperatives of startups are way different than typical IT setup ) .Ah yes, we can also call it as demonstration, plain and simple, without the decorative armor of “concept”.  

But all this is to redeem PoCs as a rightful technique in evolutionary software development. This is also a diluted non-exhaustive overview of PoCs. 

Back to appraisals, the list of PoCs that get listed as great points in favor of candidates goes like these. I did a POC on XML to JSON conversion in java (RIP Jackson ). I did a POC on predicting monthly account balance based on spending pattern using NumPy (regressive ! what have we proved here ? (anybody for twitter sentiment analysis (facepalm))). I did POC on ESLint in our CI-Pipeline (ah, not already using? ).

One can take something from docker, AWS, SHA 256, some spring integration scenario, message mapping, DB or Queue that is shiny new thing formulate a sentence on PoC we did.

Often these are the hands-on someone did upon which his boss is marveling and you are expected to put a stamp of approval on it. Given that its appraisal time and you are an external reviewer giving a blunt judgment might not help.

In my conversations with appraisal review committees, I used a gradual probing approach. That helps the representing manager see the real depth on the claim made and it also saves you from the potential pitfall of missing some finer point due to rushed judgment.In simple language the questioning goes like this :

1)    Is that an established fact in industry/community? (No I am not suggesting asking what is the benefit of the PoC, which is already a rehearsed narrative)

2)    Does it help other/newer team members as a reference-sample piece to use? ( in which case it’s a demo piece, a respectable work but outside the greatness claim)

3)    Why did we need it to be proved? ( in case the first question is not feasible, this helps nail the motivation behind the work )

And assuming that the case presented wasn’t a trivial work…

4)    What are the boundaries we have considered for this POC? ( the intention is not to ask assumptions which tend to be arbitrary, but to probe the limits chosen from available feature spectrum )

5)    What is the level of stubbing done here ( this one is a crucial criteria, often the solution which makes this far is heavily stubbed across layers and it’s not told honestly )

6)    What will it take to detail out this concept into complete version (this is the fairest chance given, a purpose and utility-driven work will give a neat list of evolutions that has to happen )

7)    Can we put it on GitHub? ( it might not a feasible but this is one shorthand question to expose petty projects, also this could be asked in any sequence(another variation: can we patent this ?) )

We could always split these lines of probe further and a better assessment of the work presented and see if it’s really something amazing that has been done or is it another case of ADD => Appraisal Driven Development.

Most often our frustration with Poc presented is not that they are some redo of well-known pattern/technique/sample repo. It is also fine and I believe its natural, for people to claim mundane as awesome which one can gently counter in appraisal discussions.

PoCs that are mentioned in IT appraisals are often a demonstration of hands-on ! which itself a such a wonderful thing in skill development that its misuse of PoC is frustrating (and hence this post ).

If you have experience with Spring or MEAN stack, where my viewpoint rests, you would identify with this feeling easily. We get team members, with a fair amount of trained freshers. They have a good general grasp of the framework, say angular or spring. But the moment you move away from mainstream coding scenarios like MVC (in respective frameworks ) the seams start to get loose (be happy if your team is better J ).

An engineered demonstration of hands-on works like wonder in such a situation (I hope your schedule/org/budget allows this, I have been lucky though ).First, it allows your team to try it first hand and be better equipped, it also helps with more reasoned discussion with talent managers with the team member choices are made.

But the real benefit is in what I call as complexity simulation. Enterprise s/w or product development is not easy of a development task to do. There are various Quality of Service criteria that apply to them. It could easily be the ability of design to evolve, the traceability requirements, cloud-native surprises, design compliance, legal requirements on privacy, security. At times one also needs to choose competing frameworks and libraries. And if you are in products we have cross-version feature movement, refactoring, tech debt payments, targeted customization, design compliance and a long list of “work” that is not obvious and throws developers and schedule off balance.

Such situations present a fantastic opportunity for the architects to give targeted demo assignments that simulate the real work complexity to the developers. One recent assignment I gave to my team was to write chat applications using Spring boot,H2 Db and Angular. Absurd? read on. The version one there were asked to keep one on one chat. Later we evolved it to one to many chats. Further, still, we made chat history to be a mandatory feature (exit H2, enter mongo or even MySQL in some cases ). And yes, all this with REST endpoints with swagger.

BY now the browser would crash so I let them put a 1-sec refresh interval. This later evolved into login –oauth –WebSockets –user registration –docker and so on. We could complete this exercise 3 weeks’ time.

Of course, the chat web app that everyone wrote was independent and thus was different in design and form. It wasn’t production-ready. But I had a team that had a more nuanced idea of development, design, and delivery. It was a good proof of capability for a team that would go on to work on chatbot projects (yes we also added coreNLP to the equation).

After these projects or assignments are done the team members got allocated to diff projects, they do well there. And before that, I made it a point to let the new booses know the project they did the exposure they had with me/my project.

It helped them get a realistic idea of their abilities. Many of the design choices, new items, etc that they worked on in my assignments flew into the new projects without getting morphed into PoC and get claimed into appraisals. (of course, all of them had better concrete claims to make in their appraisals minus the pocs : )

Was your appraisal experience this lucky?

Crucial Conversation book review

Self help books are tricky to recommend. At times they talk of something spiritual, at times they move to morals and values. Sometimes its about emotions and thinking. Sometimes its philosophy. Books that move across these planes are the ones i skip. Firstly because its very tough to trace things across such planes and then its harmful to let something in your mind unverified . Second is if the book stays in the stated plain ,you can decide if its something that sounds nice or that might be useful or at least harmless.


Personally i prefer books written by career psychologist or researchers which makes things clearer.
Crucial conversation is one such book which tells u what all u can do when opinion differ,emotions run high and stakes aren’t small. It tires to put the cause and solutions in some method which one can evaluate and then apply. That’s why i recommend it. And best part is it doesn’t talk of abstracts, the books sticks to dialogues as central theme . What keeps them going and what breaks them. That’s all. So then book wont make u different person the next day but it offers you a structure by which u can see ur complicated dialogues. But the book does something more, it also tells u that kn many situations u r co operating with whats going on in dialogue. So what is often seen has his,her,their behaviors and problems is also partly out of your own conversation pattern. The author persists with this point ,which might make sm1 uncomfortable but to me its the main reason i recommend this.

If you liked feel good by David Burns or Eric bern’s book or older Born to win book,you will like this.
What this books is not is like is, monk and Ferrari,7 rules by convey,or fucked series by Mark Manson or anything by Taleb,Galdwell or Harari.
Treat this book as the corporate trainings we get and you will thank me for the recommending this practical book.

Marathi review: Everything is fucked by Mark Manson

Mark manson आणि गीता.Mark manson ह्याचे पाहिले पुस्तक जबर हिट झाले. Subtle art of not giving a fuck, मध्ये हा मानवी मन आणि बुद्धी असे रूढ अर्थाने आपण जर द्वंद्व मानतो त्याबद्दल बोलतो. पुस्तक रंजक आहे,प्रत्येक प्रकरणात तो ताजे संशोधन वापरून ताण कमी-आनंद अधिक वगैरे कसे साधायचे ते सांगतो. ह्या मार्क चे वैशिष्ट्य म्हणजे तो आजच्या पिढीला समजून आहे,त्यामुळे निव्वळ मूल्य आधारित गाप्पा मारण्या ऐवजी तो आजच्या लोकांच्या समस्यांचे मूळ,जसे, entitlement/हक्कभाव वगैरे गुंता सोडवतो.आणि त्यात मग तो स्वतःला,भावना ना -नेमके म्हणजे, मला वाटते ह्याला फार भाव देऊ नये असे सांगतो,म्हणून सटल आर्ट.
ह्याचा पुढचा भाग म्हणजे: सगळे काही गंडलेले आहे/everything is fucked ह्या पुस्तक. सगळे सामाजिक बंध फसलेले आहेत,आणि म्हणून लोकांना हताश-निराश वाटते आहे असे ह्या पुस्तकांचे स्वरूप. आनंद आणि ताण हा विषय आधीच्या पुस्तकातून झालेला असल्याचे शिझेंमिखाईल किंवा डेविड बर्न वगैरे च्या गोष्टी इथे येत नाही. अर्थ,आशा आणि मानवी अस्तित्वात ह्याचे,आपल्याला माहीत नसलेलं मध्यवर्ती स्थान असा।मोठा घास तो घेतो. भावनेची अथांग ताकत पण तिचे अति प्रवाही स्वरूप असे विवेचन 3,4 प्रकरणात करून तो वळतो तो निटशे कडे! मानवाने आपली प्रगती “विचार पूर्वक” केलेली नाहीये त्यामुळे तो संपेल असं काही नितशे म्हणला. आदी मानव ते आता पर्यंत,चुकीचे ओ असेना,काही रीती-मान्यता-पायंडे समजला धरून ठेवत होते,वौज्ञानिक प्रगती वगैरे मुळे ते पटापट पडायला लागलेत आणि त्याजागी नवीन रचना कराचे आपण विसरलो/आता ते जमणार नाही असे ते म्हणतो. पक्षी मानवाला एकत्र धरून ठेवणारा देव,हा देव आपण मारून टाकला आहे, god is dead, आणि त्याच पोकळीत आपण कोसळून पडू/implode. असा संदर्भ manson देतो. ह्या मांडणीचे मर्यादित स्वरूप आणि त्यातून निघणार मार्ग ह्यासाठी तो कान्ट कडे वळतो ! मानवाची अर्थ लावायची क्षमता हीच त्याला मानव बनवते(विचार क्षमता) असे कान्ट म्हणतो. त्यामुळे नुसता उपभोग आणि पश्चाताप असे मानवाचे जग नायसला पाहिजे.त्याही पुढे, फक्त नफा -नुकसान,सुख-भीती असे अगदी व्यवहारी स्वरूप,त्या त्या वेळी योग्य असेल तरी उत्क्रांतीच्या विरुद्ध आहे असे manson म्हणतो. समज विकसित झालेल्या माणसाने व्यवहाराच्या पलीकडे जाऊन मूल्य ह्या आधारावर जगावे असे ती म्हणतो.इथे कान्ट ला सोबत घेऊन मानवाला फक्त माणुसकी हेच तत्व परम असले पाहिजे. त्याने माणूसपण जपत ,ह्या जापण्याला आपले ध्येय (end as opposed to means) मानून जगावे असे तो मांडतो. हे पुस्तक बहुतांश पाश्चात्य लोकसाठी असल्याने,लेखक म्हणून त्याला असे जगता येते का आणि कसे ह्याबद्दल अधिक बोलणे भाग आहे.साधारणतः अश्या पुस्तकात,ह्या वळणावर बुद्ध आणि विपश्यना वगैरे उद्धृत केली जाते.पण गम्मत झाली. मानवी पण हेच मूल्य म्हणून जगत वागावे आणि ते कसे हे सांगताना तो अंतिम नफा लक्षात घेऊ नका आणि प्रेयस असे मूल्य म्हणून मानवी चांगुलपणा अंगीकारात जगा असे सांगतो. Being good for the sake of beging good without the calculation of the benefit,असे काहीसे तो दोन तीन पानात मांडतो. निष्काम कर्मयोग,इतका दणदणीत एखाद्या हिट पुस्तकात मांडलेलं दिसत नाही.

Image credits: mark manson’s website and wikipedia.

Marathi Satire:mumbai bullet train wins UN award

जगातील सर्वोच 6 बुलेट ट्रेन प्रकल्पात मुंबई-आमदावाद बुलेट चा समावेश ! भारतात सर्वत्र जल्लोष!!
(UTI) आत्ताच प्राप्त झालेला वृत्ता नुसार, युनायटेड मोनिटारी बँकेने जाहीर केलेल्या जगातील 6 सर्वोत्तम बुलेट ट्रेन प्रकल्पात भारतातील मुंबई बुलेट प्रकल्पाचा समावेश झालेला आहे.जगातील सगळ्या बुलेट ट्रेन प्रकल्पची यादी करून बँकेने ही यादी जाहीर केलेली आहे.ह्याप्रसंगी बँकेचे प्रमुख गो टू मून म्हणाले “जागतिक पातळीवर विविध देशातील बुलेट प्रकल्पात उत्कृष्ठतेसाठी बंधुभावाने स्पर्धा निर्माण व्हावी ह्यासाठी आम्हि ही यादी तयार केली आहे”. ह्यात जगातील नावाजलेले शिंकनशेंन,जर्मन भान,शघाई मागलेव्ही इत्यादी प्रकल्पात भारतातील मुंबई बुलेट प्रकल्प सहाव्या क्रमांकावर आलेला आहे.
बुलेट ट्रेनची गती,सोयी सुधीवा,तंत्रकौशल्य,वक्तशीरपणा आणि भाडे इत्यादी निकषांवर आधारित गुंतालिका बनवून ही यादी तयार केली आहे.ह्यात सर्वसमावेशकता हे तत्व वापरून पहिल्यांदाचा ग्रीनफिल्ड म्हणजे होऊ घातलेले, अशी एक नवीन श्रेणीतील, एकमेव जागा भारतातील मुंबई ते आमदावाद ह्या विचार अधीन प्रकल्पाने पटकावली.
त्यामुळे भारतात सर्वत्र आनंदाचे वातावरण पसरले आहे.ह्याप्रसंगी मुबई बुलेट ट्रेन चे व्यवस्थापक सचिन दीक्षित म्हणाले,आमच्या प्रकल्पाचे सद्यास केवळ कुदळ फावडा झाले असले तरी एकंदरीत भु-सम-पांदण, आमदावाद हे श्रीमंत शहर धरावी असलेल्या शहराशी जोडणायची दूरदृष्टी, ह्यात शून्य व्याजावर मिळालेलं जपानी कर्ज इत्यादी प्रस्तावित बाबी आमच्या पदरात हा सन्मान पडण्यास कारणीभूत झाल्या.सोबत मुद्दाम पर्यावरण विषयक म्हणून जे काही कल्पक नियोजन आम्ही करणार आहोत ते नियोजन बघून बँक विशेष खुश झाली.ह्या बुलेट ट्रेनच्या चाकातून निर्माण होणारी उष्मा वापरून आम्ही मार्गातील खारे पाणी उकळून त्यातून मीठ आणि मिनरल वाटर तयार करणार आहोत.सोबत मार्गातील मॅनग्रुव च्या खारफुटीत आम्ही काजव्यांची विशेष शेती करणार आहोत, त्यामुळे सह्यादरीतील काजव्यांची सहल आणि त्यामुळे होणारे निसर्ग ह्रास कमी होईल आणि पुण्यातील निसर्ग प्रेमी खुश होतील.सोबतच बुलेट चे इंटिरियर आम्ही वारली पॅटर्न वर करणार आहोत.गेल्या 600 वर्षात आदिवासींना असे त्रिबूट कुठल्याही प्रकल्पने दिलेले नाही.ह्याच मूळे आमचा प्रकल्प ह्या यादीतील सार्थ विजेता ठरतो.
ह्या घटनेवर आम जनतेची ,आमच्या प्रतिनिधीने जी प्रतिक्रिया घेतली त्या प्रतिक्रिये नुसार लोकांत उत्साहाची एक मस्त लकेर पसरलेली आहे.जागोजागी खादीचे फ्लेक्स उभारले गेले आहेत.त्यात विविध राजकीय पक्ष आपले श्रेय अधोरेखित करीत आहेत.एक पक्षाने तर वसई-विरार खाडीत जगातील सर्वात मोठा खादीचा खाडी फ्लेक्स बनवून त्यावर “करायच्या आधीच दाखवून दिले” असा संदेश दिला आहे.ह्या घटनेची प्रतिक्रिया समाज माध्यमात उमटली असून, “माझ्या स्वप्नांत बुलेट ट्रेनची सफर” हे सगळ्यात ट्रेंडिंग फॉरवर्ड ठरलेलं आहे(त्यास पटकन युनो चा पुरस्कार मिळो).
निसर्ग जगतात सुद्धा आनंदाचे वातावरण पसरलेलं आहे.त्यामुळे मुंबईतील कोसळधार पाउस आता आपली सामाजिक बांधिलकी समजून सोलापूर ला शिफ्ट झालाय आणि ह्या घटनेला सॉलिडयारीती म्हणून भुसावळ च्या रेल पटारींनी पुढच्या 24 तासासाठी राग (माल)त खडखडाट करायचे ठरवले आहे.एकंदरीत ही घटना भारतासाठी भूषण आहे असे आमचे महान नेते रमता जोगी आज ट्विटर के साथ कार्यक्रमात म्हणाले.इतके अच्छे दिन आल्यामुळे मात्र सगळे विरोधी पक्ष हे खूप दीन झालेत हे मात्र नक्की.

Hindi poem: ein chikhonse

इन चीखो से, लुटती बेटीओके
चुभती तेरी ये खामोशी है
तुमभी तो खुदा बन बैठे हो ना
कुछ राज धरम को निभा दो बस|1|

एक किसन का किस्सा सुनते थे
जो लाज बचाने आया था
सुना है तेरी नजर में लेकिन
मौतोके रंग अलग अलग है|2|

इन खामोश सिसकती आहो में
तुम जोदड़ो अपनी आह ‘यासीन’
इन्ही टपकती बूंदो से फिर,
कही कोई पत्थर पिघल जाएगा|3|

तुम पहले नही हो आझम
ये निव जीसकी हिल गयी हैं
बेआबरू हुई नारी ने
हर दौर मे तख्त पलटे है |4|

Marathi Letter:आयटी इंजिनियर चे पालकांना न लिहिलेले पत्र

“तू आनंदी का दिसत नाहीस?” – IT मधील नवा प्रश्न, साधारण 28 च्या आसपासचा मुलगा,त्याला IT किंवा तश्याच प्रकारच्या क्षेत्रातील बायको,एखादी परदेशवारी झालेली,कदाचित फ्लॅट बुक केलेला आणि कार पण.ही बहुतेक एकुलती किंवा भाऊ-बहीण एवढाच संसार असलेली मध्यमवर्गीय पोरं.कधीतरी ,पोरगा सेट झाला असे म्हणत म्हणत आईबाबानां काहीतरी चुकल्याचे कळायला लागते आणि शेवटी हा प्रश्न विचारला जातो, तू आनंदी असल्यासारखा का वाटत नाही,सतत तणाव वैगरे.
जिल्ह्या,तालुक्यातून आपला मुलगा इंजिनरिंग किंवा mca करून छान It ला लागला आणि आता लग्न सुद्धा झालेले म्हणून कर्तव्य पूर्ती चे सर्टिफिकेट घेताना हे असे काही नवेच समोर येईल अशी शक्यता त्यांचा गावी नसते.व्यसन किंवा लग्नातील विसंवाद नाहीये हे त्यांना पालक म्हणून कळलेले असते. त्या काकांच्या मुलाला 2008 साली काढले तसे काही आहे का?तुला काम जमत/आवडत नाही का पासून ते बॉस त्रास देतो का,आमची चिंता नको करू पर्यंत सगळे विचारून झालेले असते.त्यात कहर म्हणजे कधी नौकरी वगैरे गेली तर आम्ही सांभाळून घेऊ सुद्धा म्हणून झालेले असते.आणि त्यावेळी आपले नेमके काय विचकलेले आहे हे त्यांना कधीही न सांगण्याचा त्या मुलाचा विचार पक्का झालेला असतो.
ह्या सगळ्या प्रकाराची सुरवात होते ती मुलाने संसार थाटायला सुरवात केली तेव्हा पासून.गरिबीतून घर वर काढले किंवा परिसरात नाव काढले असे माझ्या म्हणजे 2000 च्या आसपास डिग्री झालेला पिढीला असलेले आंतरिक बळ ह्या नवीन पिढीकडे नसते.साधारण लीड पदाला असल्याने ,शर्थ केली तरी इतक्या फास्ट बदलणाऱ्या तंत्र जगात आपण नेहमीच रेलवंट,आचिवर राहूच असे नाही हे कळून चुकले असते .आपण पुण्याच्या किंवा कुठल्या शाहरील दूरच्या उपनगरातील आनेक्स मध्ये घेतलेला फ्लॅट आपल्याला सहज परवडलेला नाही.तसा तो फ्लॅटपण काही खास नाही.आणि आपले घर जसे होते त्याच्या जवळपास सुद्धा तो येत नाही.हे सत्य हळूहळू,एखाद्या काटा रोज थोडा थोडा खोल रुतत जावा तसे उमगलेले असते.त्यात मग मुलाचे कौतुक करायला म्हणून रिसोडहुन मुद्दाम आलेले आजी किंवा आई ह्या फ्लॅट चे दार दिवसभर उघडे ठेवते.पण तरी कोणी येताजाता ‘काय चालले” म्हणून विचारत नाही,नसतेच कुणी,सगळे संध्याकाळी पार्क मध्ये भेटणार असतात.हे तिला जाणवून… पण त्याला जाणवू नये म्हणून ..
काहीतरी कारण काढून ..पटकन गावी परत जाणारी आजी/आई गेली की तो फ्लॅट मुलाच्या मनातून उतरतो.प्रश्न किंमत,अंतर किंवा आकाराचा नसतो.शेजाराचा तर नासतोच नसतो.आपल्या नकळत, विचारात नसताना सुद्धा, घर म्हणून आपले काहीतरी मोघम पण निश्चित असे आराखडे होते हे त्याला अचानक कळलेले असते. ह्यात मग संसार किंवा जीवन म्हणून सुद्धा आपले काही आराखडे होते हे त्यादिवशी कळले तेव्हा मुलगा माणूस झालेला असला तरी भावनिक दृष्टया फासलेला असतो. ठरवून न निवडलेले जीवन आणि माहीत नसलेली आवड ह्यात. कुणी IIM किंवा ग्रीन कार्ड च्या मागे लागलेला असला की तो ह्यातून सुटतो,काही वर्षांसाठी. मुळात एक दोन भावंडं असलेली ही पिढी,लाडकी असली तरी खूप हळवी असतात.आपले छोटे घर,आई-बाबा,शेजार-शाळा ह्यांच्या बद्दल त्यांच्या भावना इतक्या खोलवर असतील ह्याचा अंदाज माझ्या 80 च्या पिढीला जरासा आलेला असला तरी त्यांच्या पालक असलेला 60, 70च्या पिढीला आलेला असतोच असा नाही.घरी फार काही आर्थिक पीळ नसला तर 50 हजार ते लाख भरात पगार असला तरी त्यात “अर्थ” नसतो.तिकडे आई-बाबा मात्र “मस्त एन्जॉय करा बरका” असे ,आपले अपुरे स्वप्न आपले मूल जगतंय म्हणून खुश होतात.कधीतरी फोन करून मुलगा विषय काढतो,हळूच.गावात काही व्यापार असेल तर तिकडे जॉईन करू शकतो मी !किंवा आपल्याकडे काही साधा जॉब असता तर बरे झाले असते नाही?ह्याला इकडे करमत नसते…..
हे बोलताना बरेचदा रागावलेले बायको दिसली तरी तिला नजरंदाज करण्याची हिंमत त्याने केलेली असते.पण बाबाला काही ह्याचे मन समजत नाही.
माझे आता वय म्हणून झालेलं असल्याने साधारण महिन्याला एक तरी कुणी असा विषय घेऊन येतो. “आम्ही येथे खूप काही ग्रेट करत नाही हो,त्यापेक्षा तुमच्या सोबत/जवळ असतो तर बरे होते” हे असे संगायला जमत नाही.लायकीचे ओझे म्हणतात ते हे.
त्यात काही मुलाच्या पालकांना वेळेत अंदाज आला…. तर काहींनी स्पष्ट विषय काढला.बहुतेक पोरं घरी काहीतरी व्यापार,धंदा किंवा स्वतःच काही नेमका प्लॅन असलेले आहेत. आणि सुखी आहेत.फॅक्टरी,स्विमिंग पूल-जिम,ट्युशन,तिकडेच स्टार्टअप ते दुकान/प्रतिष्ठानाचा शाखा विस्तार असे विविध प्रकार केलेत.बायकोची साथ होती मात्र !
ज्यांना हे जमले नाही ते पण सुखीच आहेत पण संधीची वाट बघताहेत. ह्यात मुलींना फारसा चॉईस नसतो,तरी एक म्हणालीच “सर,मला वाटते काही मोठी मंदी, युद्ध व्हावे आणि परत जाता यावे”. हे असे सगळयांचे होते असे माझे म्हणणे नाही,पण हे असे असू शकते ,आपली मुल पैश्यापेक्षा भावनिक स्थिरता,अर्थ असे काही शोधू शकतात आणि त्याला कदाचित हे मांडता येत नाहीत हे पालकांना माहीत पाहिजे.नाहीतरी तुझाकडे सगळे असून आनंदी का दिसत नाहीस ? हा प्रश्न असह्य होऊन अगदी 100 टक्के अस्सल वाटेल असे उत्तर पण वाठवायला शिकेन तो.आता 22 ला असलेली पिढी ते शिकूनच येतेय.त्यांना घर किंवा कार घायचीच नाहीये,एका कंपनीत फार काळ टिकण्या पेक्षा पटापट पैसे घेऊन आपले काही सुरू करणायचे मनसुबे घेऊन आलेले हे फ्रेशर कदाचित जास्त सुखी असतील.पण निव्वळ गरिबीतून आलेलो मी/आम्ही आणि अस्थिरतेवर आरूढ ही नवी फ्रेशर पिढी ह्यामधील संक्रमण काळातील ,आता तिशीला जाणारी पिढी मात्र फसलेली दिसते.मला आवडलेले लहानपण आणि मला पाहिजे असलेले भविष्य हे ह्या इंजिनियर,IT नौकरित नाहीये हे आपल्या पालकांना सांगा रे बाबांनो.अशी घुसमट होत असले तर बोला.नाहीतर हा मेसेज आपल्या काका,मामांना पाठवा ते पोचवतील तुमच्या आई-बाबा पर्यंत.
तुमचा,
दीक्षित दादा.

Hindi poem : काफिर यार

कव्वाली होगायी किसी औरकी
मैं अपने साथ ये एक खयाल ले बैठा हूं
कानोमे घुले अमरीत फिरसे
कोई सुरोंसे ये रंग हटा दे|1|

मैं चाटता था उंगलीसे खीर
उसे शिरखुरमा केहने की जिद कर बैठा है कोई
ये कंकर चुभता बडा है
कोई जुबान का सुवाद लौटा दे|2|

तेरी कुरतेसे चूरया करते थे सिक्के
ये अमिरी बचपनकी हुआ करता थी “यासिन”
जेबे गिनके मिलने लगे है सिने ईदपर
कॊई ऊन सिने मे फिर दिल धडका दे|3|

तेरे आंगनमें भरती मेहफिल
मेरी कविता,तेरे शेरों की वॊ सिलसिले
अब मोदी-ओवेसी बकने लगे है हम
कोई अंखोसे ये किल निकाल दे|4|

मुझे केहने लगे है काफिर आजकल
ऊनही मुस्लीमो मे जान अटकी पडी है कहीं
सख्ती से नमाजी बन बैठा वहा
कोई उसमेसे मेरा यार लौटादे |5|

Marathi poem:भेगा महाग पडतात

भेगा महाग पडतात
चिरलेल्या मातीच्या रेघा ..महाग पडतात
कुणाचाही असो झेंडा..हातात..
त्या हातावर सुकलेले भविष्य
सुरकूतलेले हसू.. फाटलेल्या ओठावरचे
डांबरी रस्त्यावरील अनवाणी पाय..
कपाळात टोचणारे चांभारी खिळे..
फाटक्या सदऱ्यावाला बाप..उघड्या पाठीचा
तुमच्या दरी येऊन जेव्हा भीक मांगतो
आपल्या पोरांसाठी,वाळक्या ढोरासाठी
पोसणाऱ्या मायेनं, पुन्हा उजवाव म्हणून
पाणी मागतो,आशेचं ,गढूळ का होईना
तेच्यावर तुमचा बिसलेरी,आरओ..महाग पडतो
गालावर सुकेलेल्या असवाचे थेंब..
नजरेत मेलेले कोंब..
तुम्ही कीतीही प्याकेट दिले अन्नाचे तरी..
देणाऱ्या हाती,घेन्याचे दैव..
एकटेपणाची झोम्ब.. भुकेल्या पोटी..लै महाग पडते
महाग पडते ही निवडणूक..मतांची नाही
प्रेतांची..माणसाच्या हिमतींची..
खंद्यायवर वाहलेली..हजारो माढ्यांची जत्रा..
तुमच्या लोकलच्या बाजूने जाणारी ही लोकं
लुगड्याला पडलेली ही भोकं..
रस्त्यावर उतरलेली माही माय..महाग पडते..
खूप महाग पडते…
रस्त्यावर उतरलेली माही बुढी माय..

AngularJS,Polymer,Vue,React:An Architectural analysis on fitment

Client side JavaScript is seeing rapid churn in last 3-4 years .There are many libraries and framework that are available . Some of them like angular try to span the complete framework space .Some of them like reactJs maintain their focus on single aspect of the rendering fragments . In the blog we will try to give a summary evaluation of how these libraries fit as an architectural  choice . We will refrain X versus Y feature between them as there are many posts available on internet on this.

While the MVC/MVC2 pattern has been around for decades there is marked difference when web frameworks try to adopt them. The traditional windows or mac OS native application frameworks had established couple of things clearly .

  1. Need to define clear models for application data
  2. Event lifecycle and catalog
  3. Orchestrations
  4. Resource handling

This is not a definitive and just summary of elaborate framework .Moreover its oversimplified but it helps us underline the fact that any SDK that tires to cater to MVC will evolve into similar fashion .

The web however imposes a new constrain on OS/Native framework which is the web. This includes the dual problem ie fetching resources from internet , typically over http and rendering them over browser .

Especially the browser as runtime for rendering and interaction poses 2 important problem .First being the laid out ,mostly document nature of the (hyper)text and media . Second being the impedance mismatch between the layout structure and the structure of data fetched from server. There were 3 clear movements in J2EE/JEE world over last decade  to solve this problem .

1. Introduce a near native runtime : This is the applet era where the code would travel from server to client browser and a JRE plugin will serve as additional runtime .The addon runtime provided the ability to give native OS like rendering and more programmatic control over data handling .As a philosophy this continued over rewritten JFX and to some extent Flash also .The key part being browser side stepping as runtime engine .

J2EE MVC By Libertyernie2 – Own work, CC BY-SA 3.0,

2. Pure server side rendering : The mainstream of JEE applications and also PHP/.Net but we will limit it to JEE due to my limited exposure to later. The flag bearer of this were/are servlet specification .This ie many version of servlet/filters and the other frameworks based on them like Spring MVC and Apaches Struts attempted to organize the MVC style fitment of components around the spec . The page however remained the Active-Java server pages . A phrase that is denote server side code execution that will  have better control over data lifecycle but will output markup on serverside. At times the pages could a curious mix of HTML/CSS/JS , java code ,and stringified HTML/CSS/JSS . The stringified code being the programmatic server side generation of markup that will then execute on browser (we skip other template engine here).

JSP tag library lifecycle © Apache.org

An attempt to systematize and eliminate this stringified  server code was done using tag libraries /JSTL. The taglibs introduced a component like boundary for markup and a lifecycle around code execution sothat the inter component and pure server side code can exchange data in defined manner .

3. Ajax driven semi server rendering : The sudden resurrection of AJAX resulted in more interactive application .Due to the ability of AJAX to facilitated isolated ie targeted rendering of fragment the server side page definitions become less and less relevant .A mix of only essential server side pages + pure HTML and direct access to services for data via AJAX resulted in more interactive jazzy web application .The fame of Gmail/Jquery/Dojo etc is this era .

Portlet 2 spec ©JCP/Oracle

JSF LiifeCycle ©Oracle

There was also an attempt in pure JEE space to provide server side framework that will have elaborate lifecycle which will represent both server and client side stages of rendering and control. JSF-Java Server Faces and portlet being the main ones .However it was awkward marriage to being with .This is due to mixture of event as phenomenon in linear execution model  where developer had to juggle lot much code handle events arising out of browser interactions.

It is then natural that the Ajax driven semi server controlled rending will morph into pure client side rendered applications. The likes of various jquery contributions libraries and backbone represent such transitions.

Due to the both the increasing power of browsers and the demanding UX requirements it was imperative that a pure client side or better called as browser native  (as opposed to OS native for VB) web frameworks evolve .Even the web standards specifications evolved rapidly giving support to this. When we talk or angular or React/Vue or Polymer web components we talk of this era.

While angular popularized the term SPA ie single page application and MVVM-a clone of MVC it is important to note that the design inspirations of such libraries are to how JEE stack frameworks evolved in early 2000s .

A typical webpage MVC framework will try to solve following problems

  1. Navigation, routing and subsequent data passing
  2. Rendering, events and Interactions
  3. State management, preliminary security and application organization

The first generation JS frameworks ie likes of Jquery ,Dojo,prototype solved the problem # 2 nicely  i.e. rendering ,events and interactions  .The attempt of a pure client side mvc application  mandated that Navigation and state also come under the purview of the framework .

Angular JS was the leading framework to provide the complete mvc style framework with elaborate sub frameworks for each layer ,sometimes adding its own complexity .  At the same the  even more evolving nature of UX , devices and browser support added following  forces to choice of framework .

  1. Focused rendering and state management at component level, sometimes reactive
  2. Collaborative components that can declaratively exchange data, on top of html spec
  3. Ability to delivery multi device and constrained device interactions (hybrid apps are taken for granted)

This resulted in almost all framework including angular ,vue ,reactjs and polymer adopt to a template driven component design with 1-2 way data binding . The components having an elaborate lifecycle to allow it to fetch data ,prepare markup and manage lifecycle transitions neatly . The component and lifecycle being commonality the following table describes these frameworks  as fitment for your architecture evaluation and choice .We are excluding aspects like test-ability , custom syntax and helper modules , isomorphic rendering  and packaging .We are assuming the vendor support ,community support ,developer enthusiasm etc are considered by most architects during open source framework evaluation .It must be also noted a contribution module can completely alter a given criteria so we stick to standard offering as a basis for our evaluation .

Angular4 Lifecycle via Angular.io

Area of responsibility Sub Area Angular

(mostly v4)

React Polymer

(mostly 1)

Vue
Navigation ,routing and subsequent data passing Model realization Component properties/metadata properties
App wide Menu navigation Routes ,Route components Component focused ,not available
Inter Fragment navigation Route/ routerLink Iron pages component
Navigational data exchange Route parameters,

Other contribution modules

Component focused hence data binding
Rendering , events and interaction Fragment definition Components , 1.5 onwards Web Components
Fragment lifecycle Yes .

OnInit-Ondestroy

DoCheck and After* methods

Yes .

Created-ready-attached-detached

Isolated  rendering Not in architecture Shady DOM
Templeted  rendering Component template assisted by directives Component template assisted by templateElements (as directives)
Cross fragment  Communication Data binding ,Event binding (two way) Data binding and listeners
State management, app initialization and application organization Cross fragment app level data/exchange Services Component focused so custom built
Convenience ·         Dependency Injection

·         Built in directives

·         Pipes

·         Behaviors

·         Custom elements

Styles External Custom CSS properties
Sponsor Google Facebook WebStandard/Google

A separate note mush to given about Polymer .In terms of its ability to address the componentized and templetized components that can be used to compose UI polymer relies on native browser support as opposed to vendor libraries . All the building blocks that webcomponets spec relies are part of w3c spec(true for both polymer v1 and v2). This eliminates the polyfills as the newer browser versions come . It also minimizes the angular 2 like major breaking changes or react like code mashup .

At the same time , given the component focus of this library ,one need to code the building blocks on page structure ,app shell and app wide idiosyncratic needs like central HTML storage or cross use case data passing.Much of these are available in polymers element catalog which gives a feel of application shell but they are still components contributed by Google outside the specification. So Polymer is best suited for application where componentization, isloation and reuse is more important. This is one area where React/Vue and their partner contribution modules that you will choose can score .  Angular 4 ,having acquired component nature with its elaborate  framework layers can cater to demanding application interactions and data lifecycle but this comes at the cost of complexity-maintainability and reuse .

The real question to ask when evaluating Polymer/RactJS/Vue versus angular 4 as architecture choice is how much fragment wiring by virtue of data binding will be good enough . Seasoned web developer who have experienced the event/callback hell as a design parallel  know the answer J .  If your requirements are sorted and support clean componentization then React/VUE or polymer is good enough fit . When modulerization and reuse are more important then Polymer scores over React /Vue . And when the requirements  guy  can be unpredictable Angular offers better choice between  design ideas and (complex)design arsenal …opinionated ie J

Edit : between the time this was written and now the industry has gained enough experience with this tool set.

This link https://www.matuzo.at/blog/2023/single-page-applications-criticism/ and this https://infrequently.org/2023/02/the-market-for-lemons/ and the sub references in these posts have thought that i would have posted today .Anyone following my page can benefit from reading these 2 .