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.