Wednesday, December 31, 2008

Happy New Year!

From what we have seen so far, I would expect global recession to continue. I believe in relevance of software engineering in software development business. Therefore, I expect software engineering to propose a solution for software development houses. I hope that it is time now to move from ritualistic compliance of software engineering processes to its use because of business value.

Pause for a moment and reflect on our daily work. How much of that is new? How much of that is repetitive? If it is repetitive, why are we doing it? How can we get the machine to do it? If you do not ask this question, someone else will. Look back and look around; it had happened in the past in other industries, and we have played a role there in helping them do that. We replaced people with machines; more productive and more consistent, barring the initial hiccups. I do not see a reason why we should be different, why business should perceive us as different.

I expect more engineering and more automation in software development. I would also expect software development to be more accountable to business than it currently is.

On technology front, I would be keeping a close watch on collaborative geographically distributed software development environment, open software development practices more accountable to business, and more effective software test automation.

I wish you all a very happy, successful and prosperous new year!

My favorite song for the year 2009 for software engineers (Title: Survivor - Eye Of The Tiger lyrics): http://in.youtube.com/watch?v=T6CUhK8AlXI

A retrospection!

Looking back, last two years have been personally very taxing. Specifically, 2007 was traumatic personally. Though some of the traumatic experience continued into 2008, it was more of recovery personally and a time for change and consolidation Professionally. And, it was a mixed bag from the world around me.

World around me:
Chandrayan and India's achievements in Beijing Olympics after a long while are on top of my mind on a positive note. Yet another unforgettable development is a Sister Alphonsa reaching sainthood. Happiness of these, however, marred to some extent by Mumbai bomb attack and global economic recession.

Personal:
My cousin Jayan Varma became world's fastest percussive bassist. On the negative, my father's health suffered serious jolt. By god's grace, timely intervention and good medical care, he has recovered to a great extent. May be unrealistic to expect at his old age but, as a son, I expected him to be ever active. Now, he along with my mother require constant attention. I am yet to figure out what best I can do for them.

2008 was also a year when I could connect back many of my old friends. Sunil, Ashok, Suresh, Romy, and Narayanan from my college days, and my friends Arun, Unnikrishnan, Madhavan, Zacharia, Varughese and Vaideeswaran from days of my first job. I could also connect to Amit and Shanmugham from CMC Ltd, Hyderabad.

This was also a year when Mr. Naresh Kumar Reddy passed away. I was shocked to hear that sad news. I was reporting to him during later part of my tenure at CMC Ltd. Time has to say how effective I was in their application. Pray to God that his soul may rest in peace.

Professional:
On professional front, in 2008, I have worked closely with Vikram Sarabhai Space Center, Trivandrum (Ministry of Defence, Government of India), and Weapons and Electronics Systems Engineering Establishment (Ministry of Defence, Government of India), Delhi helping them adopt software engineering best practices, methodologies and tools. As a departure from the past, I had started traveling outside India on business, with a visit to Qatar in October 2007. This was followed by visit to Saudi Arabia in March-April 2008 and a visit to Nigeria in June-July 2008. In the meantime, I was working for a customer in Germany remotely from India for test automation of SAP implementation. I visited Germany, by November 2008, to commence yet another project on test automation of SAP implementation.

Overall, I am happy looking back as indicated in old farewell note to Rational that I had written in 2002, having achieved what I had set out to.

My professional high in 2008 were:
1. Publishing case studies of success from India, a result of hard work in the past
2. Paper presentation at Rational Software Development Conference in Munich, Germany
3. Publishing case studies of success in test automation of SAP implementation in Germany
4. Release of Ready for IBM Rational Software plug-in Astra Model Creator and Astra Test Automat, with best practice compliance

I shall write on what I look forward to in 2009 and further in my note tomorrow

My favorite song for the year 2008 reflection (movie: Aap Ki Kasam):
[youtube=http://in.youtube.com/watch?v=5sIr0TD0GR8&rel=0]

An old farewell note!

Rational Software Corporation was a company that I longed for, worked a couple of years there and still cherish my days there.

Going through my old records, I picked up my farewell note to Rational. It reads as below:

Farewell to 'Rational'

Firm stands ‘today’, the moment of truth
Basking in the glory of the yesterday
Lo ! beckons the future, excitements set forth
It is time for me to move on, I say !

Shall stay with me, for ever and ever
Some ‘Rational’ thoughts, so fresh as ever
The joy of sharing, and caring for another
The fun of learning, and working together

It hurts to say ‘bye’, dear ‘Rational’
Oh! my friends, it pains to bid ‘farewell’
We shall meet again in the world, so small
We shall hold together, with a heart no small

Let me be gone now, for a while
To join our hands again, in a little while
For some purpose, quite worthwhile
To help our customers, with a sweet smile

I set forth to achieve certain tasks back in 2002, and on retrospection, I am glad to have

Authored a few successes that I had set my eyes on:
1. Case studies of success in India
2. Case study of success in Germany
3. A good customer base
4. Customer testimonies

And been part of a few others that I dreamt of:
1. Astra Model Creator
2. Astra Test Automat

Thursday, November 06, 2008

Wake up, or perish.....

Those who had been interacting with me over last few years would remember me as a doomsayer who had forewarned of the current recession.

Writing on the wall was clear. Cosmic dance between creation and destruction goes on. Those who watched great boom with awe are now watching the doom with despair.

Can it be any different? Answer is an emphatic Yes!

For an industry, nascent like software development, it is time for stocktaking, time for a pause and making right choices. Whether nation, business houses or individuals, those who make right decision would stay on in the race; and others vanish into oblivion.... an inescapable fact of life.

It is time we realize software development is yet another industry, yet another business, yet another profession with all the responsibilities that comes along.

It is a job, a means of living, a business. It goes into creation of intangible social structure that someone is depending on, for their life, for their job. What we do affect the very social fabric we depend on.

It is time for keeping purse string tight; it is time to correct excesses but making right decisions, right investments

A quick glance into the past shows us that other industries have gone through a similar cycle. For instance, great depression of 1930s forced a correction with practices like lean production/manufacturing; brought in the balance, controlling the excesses of those times. World has come around a full cycle!

What does that mean for us now? More on that later... but as a software engineer consider, how many hours of your work is truly creative, that require 'YOU'? If yes, how does the human intensive work, where everyone needs to be creative and apply the intellect, is engineering? If not why you are not doing it? can you be replaced by a machine? a software? another person? Every business house needs to start thinking the same... every software engineer needs to start thinking the same

Remeber, if you are asking these questions, answering these questions, and acting on them, there is someone else who is doing it, and that would decide your fate!

Monday, November 03, 2008

Back again

I had tumultuous time for last couple of years, personally. It was also time for hectic work on professional front and consolidation. Refer case studies published in IBM web site:

Much of this was achieved with the teamwork, including customer, IBM in India and my own team; a team which was absolute novices transformed into thorough professionals with continuous mentoring

Monday, January 01, 2007

Happy and Prosperous New Year!

Yet another year has gone by!
A unit of time carved out of eternity for us to live in!

Now has come a moment for reflection!
Now has come a moment to pause a while, look around and move ahead!

Last year was a mixed bag;
A mixture of good and bad, day and night, but too bad.

My mother started walking on her own again!
Probably, a medical miracle!?

A mix of providence and some hard work;
A display of hard work and sheer will power, in a way that only she can.
Unrelenting support, from my father, as best as it could be by a human.

A home nurse who has gone much beyond her official obligations;
A fact that I can hardly ignore
A fact that made me realize, yet again, importance of value beyond definitions
A fact that made me realize, yet again, how “small” things are infinitely important.
A fact that made me realize, yet again, how important it is to make life simpler and better for others to live in….
Probably, that is the very purpose of an individual life itself;
Taking human race to its glory through collective contribution of individual souls.

And, first time ever in her life, as I understand, she (rather, we) celebrated her birthday (Saptadi; 70th birthday) albeit in a simple manner

I am also glad to see my sister tasting success in a her life.
She has single handedly fought what looked, at a point in time, a loosing battle.
Now, she won a battle; of course, life has to go on
Having come this far, I am sure, she would see greater heights.

Of course, not all were pleasant.
Perhaps, it is idealistic to expect

As if a kid, I expected my father to be around my mother eternally.
Hardly ever it dawned on me that he himself is in old age.
Nevertheless, the time gently reminded me that fact when he had to be hospitalized for about a week’s time
Providence, our well wishers, medical team was kind enough to act on time and give him back to us

My experience at hospital also made realize how life could be simpler if we seek to make it so …. It made me wonder why at all we make software development unduly complex … Team work, specializations, creative content, technology etc are not unique to software development …. Balancing these factors to a business goal is also not unique to software development … Many others (say, a music director and his team, a surgeon and his team, … ) would have similar story to tell; but they end up being predictable without making things unduly complex…. It looks like, it is a questions of priorities

Hope we learn
Hope we get the fundamentals right
It is better than learning the hard way in a yet another crash!

Wish you all a very happy and prosperous new year!

Saturday, September 30, 2006

Software Engineering & Healthcare

A few days in hospital where my father was undergoing treatment.

Though this is not the first time I have been in hospital but this time, it got me thinking...

I used to attribute much of complexity of software development to creative content & team factor in it. Now, I find that healthcare is no different.

In fact, there is many parallel in definining customer needs (which goes much beyond specified), evolving technologies, new hypotheses challenging earlier ones, interplay of many skills (Specialized physician & surgeons, Nurses, Technical experts, Office staff), ....

Yet much of it is well defined eg. Much of what Nurse needs to do is well defined and action plan in exigencies are also well defined.... and strictly adhered to

It does not lead to avoidable documentation in the name of following some standards either! Documentation is kept to the right level; the key is more of delivering to customer satisfaction than meeting specification

When will software industry learn & mature? How long can we hide behind the nascent nature of the industry and rapid pace of changes.

It is not Java or .Net or application servers or platforms or SOA or MDA ... what not, that matters .. it is uncompromised quality meeting the customer expectations and needs ... not just the wants and specifications

Wednesday, September 20, 2006

SoA Testing - A wake up call to testers….

Service Oriented Architecture or SOA

What does it mean for testers? Or Why testers should bother?

A wake up call to testers….

To cut it short, well, it is a buzzword….

Everyone in the industry is talking about it… Sooner or later, it is going to catch you tool, like “Hey guys, don’t you know it is SoA?”.

Does it matter?

Depends on how soon is soon…. Depends on “what if I don’t know” …. Depends on whether you are getting ready for an interview for a job hop… Depends on a new project you are getting into ….

In a way of looking at things, it defines what software means to you…. Software that you use is not confined to your machine, right? When you are chatting with your friends, many small pieces of codes running in different machines collaborate to make it happen. If any of that malfunctions, you don’t get what you want…..

OK, I get it ….. I am using Rediff Bol to chat with my friends. You mean that is SoA?

Hold on …. With SoA, what we call as applications may not really be one... not in the sense, we have known them so far … Probably, we would refine it with the term a composite application? What you are using, does it fit in that category? Think …..

Do you also see a possibility that when you chat, all of you don’t necessarily require to use same piece of software from the same vendor…. (I don’t mean that you can chat with Rediff Bol to chat with a person logged in Microsoft Messenger… But in a interconnected, unrestricted by the underlying technology, you are getting to see a possibility?

Coming to think of it…. Isn’t that how life works? … Isn’t that how office functions? … Isn’t that how business is done? Don’t you find such interactions in business when you encash a demand draft, issued by State Bank of India at Delhi, at Canara Bank in Chennai? Are we not getting our insurance claim processed without really bothering about the paperwork behind the seen? …

Can that happen in technology? Don’t we have a whole of trouble even when we try to integrate even two applications eg. Seibel & SAP? IBM Websphere Business Modeler and Mercury Test Director? ….

By the way, you are able to pull out information from across the world (say, NASA or CMU etc) without really knowing the technologies behind? Also, we see money exchanging hands through electronic transactions when you are purchasing online… and you have authorized banks to pay mobile charges through ECS

Haven’t you seen how a simple development environment like Eclipse is evolving? It is evolving to be an open source platform for software engineering .. It is almost “name it and you have it” kind of ….. Eclipse is not more than a development environment which support coding & debugging… Don’t you know that the same development environment caters to Java and C++ coding? …. Don’t you know that Eclipse scales seamlessly with plug-ins for configuration management, modeling, code review, testing etc and more in the pipeline ….

It all depends on how it was developed earlier, how you look at things, and what you want to achieve….. Collaboration happens when we agree on a few basic things and then stick to it.

All that is fine… I knew these things …. I am looking forward to a great time as users.

Great!. …. Do you also see that we made a lot of assumptions about sticking to agreement etc? … Finally, somewhere, someone like you need to make sure things are intact, make sure that every one, those whom you see and don’t, stick to those agreements, make sure that quality is actually delivered in tune with agreement, make sure that quality delivered provides a business value

Testing a software running in your machine alone simpler compared testing a software running in multiple machines … It is all the more complex when these machines are away from you and unknown to you … Yet difficult when you don’t own these pieces of code… when you have no control on that…. When you do not know anything about its internals …. And when you know that right from operating system to the kind of use software is put to changes. …

And as testers are expected to know the software better .... expected to test on behalf of customer, on behalf of user .... required to advise on ….

Sunday, January 01, 2006

Happy New Year!

Yet another year passed by
Dawn of yet another beginning
Time for reflections ...
Time for new hopes ...

I observe with apprehensions on 2005
1. Rita & Katrina shattering life in the cities of most powerful country in the world; and natural disaster turning into catastrophe through human mistakes
2. Earthquake shaking various parts of earth .... is it not yet time for India & Pakistan to work together for mutual and global benefits .... probably, earth quake in Kashmir has a divine message to human kind
3. Water flooding most of Indian states; as India collectively is striving for excellence, have we forgotten to take development to grassroots, making developments more a scalable

It is not technology, or modern development but rather its adoption is what makes the difference .... for good or bad!

Hope we learn....

I look forward with hope on certain developments that potentially could,together, change the contours of software development space.

1. Model Driven Architecture
2. Software Factory
3. Ajax
4. Ruby on Rails
5. Eclipse & other open source initiatives in software engineering
6. Aligning technology with business
7. Asset Based Development
8. Service Oriented Architecture

To quote Einstein, "Opening up yet another fragment of the frontier of beauty"

And, on personal front, it is time for a change
I am publishing it wide to ensure that I do keep myself in check

1. Over years, I focussed on "intellectual" excercises ignoring my health to a great extent.
This year I plan to care a little about my health; particularly in terms of routine physical excercises
2. My kids are growing up and it is time, I spent some time for their mentoring as well, as best as I can; not only from spiritual and mental perspective but also from educational front
3. These call for some discipline; I plan to reserve holidays for myself ... a big departure from my life so far wherein I used to work through many nights and holidays.

Saturday, July 23, 2005

NOW, cheaply, and without taking much trouble?

I was going through the BLOG of Grady Booch "Monday, July 18, 2005 Grand Challenge" at http://www.booch.com/architecture/blog.jsp

The words "NOW, cheaply, and without taking much trouble" registered deep within me.

As managers, we try to keep things simple, or at least look simple. Reasons we can attribute to many factors, but fact remains all the processes & tools etc, even considering, are not yet "NOW, cheaply, and without taking much trouble"....

Looks like, miles to go before I can sleep?!

Some common problems in software development

1. Customers are kept at bay (at times, because customers are assumed to be ignorant or too demanding and at times, because too much of knowledge of inside realities may affect their confidence in the solution .... in either case, it is better to expose the reality to the customer under controlled environment. Customer has right to information, right to be educated and right to make informed decisions
2. Casteism (certain roles like testers, technical writers etc are considered to be of lesser value ... of course, the situation is improving at least in isolated pockets .... only a teamwork can lead to a quality product)
3. Defering a risk for a later day or delegating it to someone else; delegating does not absolve any one, least of all the organization, of any risks, damages or guilt
4. Covering up the ignorance; considering the pace, at which the industry is evloving, it is not practically possible for any one to acquire in-depth knowledge on all related areas and it boils down to "almost always seems to mean knowing who knows what and figuring out a way to bring them to bear on your client’s
issue.”. Organizational culture and environment, and in turn, customers should accept this reality and move towards what can realistically be done
..... More to add, ... may be some other time

Imperatives of successful software development

Manage
1) Risk
2) Complexity/Size
a) Conceptual integrity of solution vis-a-vis problem: Essential
b) Structural integrity of solution: Accidental
c) Work
i) Progress
ii) Activities
iii)Work products
2) Environment (Platform, Language, IDEs, Tools, and Process): Accidental
2.1) Resources (time, team, machine, software, and other Work products)
2.2) Reusable software assets (Patterns, Framework, Components, Idioms, and Automation assets)
3) Change (requirements, environment, and team ie. no, skills, attitude, ...)
4) Communication across all stakeholders (including customers & users)

Success of art and software development: a few loud questions

What makes a software success? What makes software development success?

I know both are not the same; though, may be related in some ways.

What makes a product success? What makes an artistic creation a success?

What makes music a success?
Lyrics, Tune, Visuals, Choreography/Actors, Context ....

Art is playing to an audience or playing for the self?

Answers to these questions at various levels are different...

Monday, June 27, 2005

Software factory at work!?

One of my customers, with whom I am working very closely for last couple of months is actively into many a things which are part of software factory .... seems to be great and quite interesting .... makes a lot of difference and it works!

Give me the methodology!

Quite often, I find people asking me the methodology that I advocate and what they should adopt; whether it be for requirement management, architecting, analysis & design, testing etc.

In my experience with various customers and various kinds of project suggest that there is no single answer that can apply to all such cases and yet be specific to the detail.

Many of ‘so called’ methodologies are steps evolved based on local successes, being generalized or it becomes too exhaustive like an encyclopedia. What always works is something is evolved based on these global experience to sent the specific need.

I keep getting this kind of questions and I keep asking …… what is the problem?

What? What? What? Why? Why? Why?

Back again....

Hectic pace of work kept me away from blogging for couple of months by now.

Hopefully, I am getting into relatively easy pace as the initiatives, which I was working on, has picked up the critical momentum and would require only a moderation from side.

Typically, I engage with the customers who are developing software to solve some of their problems related to software development. It often requires a combination of mentoring on tools and finetuning the software development process.

Most of my customers are not global software giant but are big in their own way. They play an important role to ensure the world runs on software smooth. They develop software for business spanning airlines, plantations, healthcare, banking etc

On top of this comes the IBM Rational assignments which are essentially training on the IBM Rational tools and methodologies. All of them happens to be of advanced nature rather than structured training offered by IBM Rational.

That makes the job challenging and enjoyable

Monday, April 04, 2005

About architecture

http://www.iasarchitects.org/blogs/index.php?cat=1

Learning by denial

Quite often, we become victims of our own knowledge!

Early stage of our learning, we move with doubt, caution or skeptism, depending on the topic, our previous knowledgebase, source of new information etc. However, soon the knowledge gets embedded in our very being and is taken for granted ... source & validity rarely questioned, by the self and we resist questions from others as they seem like a question on ourselves.

1+1 is assumed always to be 2, while we know that it could be different depending on the context, ... also, 1 and + are only notations for something. Till this realization comes, 1 the notation and the 1 the notion are intertwined.

Here, comes the importance of denial. In Indian approach, we say the realization (of the supreme Brahma, from the point of knowledge pursuit) can be only by denial (Ne/ethi... ie. Na Ithi ... That is "not that'). Disassociating ourselves & knowledge to its source

Saturday, April 02, 2005

Limits of 'Science'

Quite often, we find many arguments being claimed as scientific implying authenticity of the statement.

What is often forgotten are limits of 'science' the way we define.

In science, we consciously choose some specific techniques which can be classified as 'divide & conquer' or 'abstract'; and often their combination (in any case, the big picture is lost). This restricts the space in which our theories operate and hence its validity. Further, our hypothesis are validated with deduction, contradiction or induction. Most logical, in the general sense of 'logic', being the former and least being induction as induction is more of an extrapolation. Quite often the dependence on a priori knowedge even for the former limits the validity of hypothesis testing.

These limits the scope of science to a limited space, data (pure data from the limited space is often hard to come by, in the attempts of scientific approaches in daily life) on which our theories are based and However, we apply or extend theories quite often these limitations are overlooked and scientific premises are presented and accepted more like gospel truths, abusing the very value and sanctity of 'science'.

Monday, March 28, 2005

About consulting experience: Health practice & Software Engineering

There have been many hypes in the market and, therefore, many die-hard loyalists for all of them. They often advocate and consume solutions at their own discretion. Quite often, it may work out as well; but at times, it also proves to be fatal.

Would you say that it does not happen so in medical field? I agree that it is true; by and large…. But, there are many instances of patients allured by the glossy advertisement and scientific-like reasoning….. Often, less educated, rural folks are the gullible victims, though once in a while.

Part of the reason there is that we are more careful in our decisions; after all, it affects life of our own or our dear ones.

I would say, from my experience, is that caution is rarely exercised in software development. There was a trend towards that immediately after the dot-com collapse; but now that the market has recovered, it is all back to the same old practices.

Decisions are driven by the hypes; rather than the compelling need to solve a business problem; in my experience, a business problem is rarely solved by a particular medicine alone; it involves a combination of factors; people, process, methodologies, tools, … and they influence each other. Die-hard loyalist of one may deride another; vendors of new technologies may suggest these as things of past. But, no matter, what tools, processes and standards come in, if caution is thrown to winds, result would always be a chaos.

I shall be more specific; for instance, object oriented approach & UML has been around for almost a decade. But, percentage of successful adopters are far too low if you pose a fundamental question like ‘Why did you adopt this approach? Did you actually derive that benefit from this adoption?’. I just took object oriented approach as an example just because of the hype (that was) around it; you could replace that with automated testing, total quality management, business process re-engineering, CASE tools, ISO, CMM, CMMI …. Often, these are used for marketing, by the producers of the technology naturally; surprisingly by consumers as well!

Be warned that market is set for yet another transition; in terms of processes, methodologies and tools. I shall probably discuss some time later, as and when the time permits. I do not mean to deride or belittle the quality of new solutions; they do provide definitely a quantum jump. The point is, jump to what? Do we really need it? Can we afford it? In terms of cost, learning, ….? Can we defer? Can we gradually adopt?

Innovators and creators of the technology has all reason to hype up as they need to leverage their the competitive edge but for the followers, it is invariably a constant chase of a mirage, the hard way. Almost as one seems to learned something and is ready to put into use, the very core of what he learned is undergoing a change….. but for what benefit? Is it realistic? Is it the solution that we really require? What would be involved to make the transition? Believe me, it is never instantaneous…. Because, as of now, every organization, every project, every team, every customer has their own specific differences…. Retention of the knowledge and assets will not happen at the click of a button!

Well, in medical service, usage, positive & negative effects, contra-indications etc of a specific medicine is well-documented and available, at least with the doctor. He, or she, is supposed to where one can effective, where one may not be and where it could be counter-productive! What is our equivalent?

Argument could be that hazards of a wrong medical practice is too high, to tolerate slip. When we take pride in pervasiveness of software, it is high time for us to accept that, quite often than not, ours is no less…. Only difference probably being that damage is incurred much later and we could probably diffuse it in time …. In reality, we never get prior information for disasters and, in the world where the developer works more than 10-12 hours a day, we rarely have time to complete our work; leave alone anticipate and diffuse a problem; the moment a code is shipped out, focus shifts to the next functionality to be coded or bug to be fixed!

Marketing hypes around new solutions would continue to be around for time ahead as well. Also, the pace at which changes happen would continue to be too fast to absorb. Unbiased information would continue to be hard to get. Given these facts, what are our choices? …. We cannot be blind to changes; as changes will any way become more and more inevitable, as the time goes by …. Anyway adopt? That is like, self-medication without any knowledge of effects and contra-indications of medicine.

I am intentionally not proposing an answer; My intention was only to share the concern …. If you share my concern, ponder over; solutions may seem obvious but it is truly not; it is not all that easy…. Had it been, solution would have naturally come … do share your thoughts …. If I have got you thinking on this, I would consider that the purpose of writing this is met.