Software Engineering weblog

Again, another year is coming to a end. It is time for a new beginning.

Personally for me, 2008 represented a successful completion of a journey commenced in 2002, and 2009 was a new beginning. Foundation is being built yet for my new dream, and realization of that is a long journey; a journey that may probably take about 10 years. Therefore, 2010 represents a continuity for me personally rather than totally a new beginning

Yet it make sense to look back into the times gone by and then look ahead. Year 2009 started on a gloomy note with the world in the grip of recession. As we see the world gradually wriggling out of recession, the coming year 2010 promises to be better.

2009 was a mixed bag, in general. As I look back into 2009, what comes to the top of my mind, on a positive note, is Oscar awards coming to India for the first time. What I recall on a melancholic note is the unexpected loss of an icon of our times ‘Michael Jackson’

An interesting question on “”States” of a Test Case” in Software Testing & Quality Assurance group in Linkedin. This got me reflecting back on my test management practices.

Following are my comments:

I presume that question is not limited to test case execution. In such case, my suggestion would be to consider what I call ‘life cycle of a test case’.

Some of the states in the life cycle of a test case would be:
1. Identified: Test case is first identified in consideration of various factors. At this stage, test case may have only the name and description.
2. Designed: Test case is further designed with details and elaborated with test procedure/manual test script
3. Design-reviewed: This is a state where test case designed is reviewed and accepted.
4. Executed: Test case is executed.
5. Result-reviewed: Result reported by a human tester or a tool may require moderation
6. Closed: Test cases no longer valid

As we progress, some test cases may get further refined into many related test cases and some may go obsolete overtime. Maintaining state and related information helps in effective test management

I came across an interesting O’Reilly web cast titled ‘O’Reilly Webcast: 10 Things Every Software Architect Should Know’. It is important ‘words of wisdom’ definitely for software architect

But, well, I believe much of it is quite relevant to many others as well, It is all the more so as software has become integral part of our every day life and software development is getting to be increasingly, as Grady Booch points out

I am neither an expert nor a student of sociology. But I believe what is happening on web 2.0 has a lot to do with sociology and many related subjects.

Social networking enabled by web 2.0 is only a few years old but it is catching up for sure going by popularity for services like orkut, facebook, linkedin, twitter, second life etc. It is almost evolving into a virtual society parallel to the real world that we have been living in.

Many of us are hooked into that already, and many of us are getting into it. Each of us have got into it with different expectations. Social interaction are a combination of give and take, staying within the rules and norms of the society.

Rules of the real world are formed over centuries from experience and thoughts of visionaries and thought leaders from the past. It is time for norms of real world to be adapted to suit virtual world. Having said that, we need to admit that it comes with unique challenges.

Norms of society are evolved over centuries based on local culture and values, forming a foundation like tectonic plates. As virtual world is set to integrate heterogeneous social groups across the globe, it holds potential for significant friction along underlying fault lines.

At times, it is good to step back and take a look at what we are doing. I believe, it is the very essence of what Stephen Covey referred to as “Sharpen the Saw: Principles of Balanced Self-Renewal”; the seventh habit in The Seven Habits of Highly Effective People . I would say, caught in the rat race, this is one of the first good habit that is easily compromised

Computer has evolved from being a device for data processing to a platform for knowledge sharing. However, does that make a platform for learning. No doubt, it assists but to be a platform for learning, I believe we have still a long way to go

Why is this important to discuss? We live in a world where i) huge amount of data is being created and processed every minute, ii) amount of information we require to consume and process to make decision to stay effective and competitive, both in personal life and business is huge and is increasing, iii) great deal of effort goes into creation of data and processing of information rather than presenting for a purpose, iv) ability to assimilate information to make quick decisions could make huge differences in personal life, career and business.

Let me explain this in a context. My father has been going through a traumatic phase over last two years; short term memory loss and similar strange behavioral patterns. From the descriptions from his physician, I understand that this is due to a growth (hopefully benign) in the brain. What is the issue? What is the cause? What is the best possible treatments? What are side effects? What are do’s and don’ts?

Before web, information to me was limited to what our physicians in the friendly neighborhood could offer but now a whole world of information is available to me. Mark my words, it is information at best; not knowledge!

I do not expect my doctor to be God. I do not expect my doctor to be all powerful and all knowing. I do respect the profession and respect the person. But I would like to educate myself. I do not expect to educate myself to the level of my doctor. As a professional, I understand what it takes to be a professional. My intention behind educating myself is to make informed decisions; as best as I can

I do it but I think it could be better. I look forward to it being better. I look forward to making it better if I can. What does it take? That is where I believe we need to distinguish between i) data, ii) information, iii) knowledge, iv) expertise and v) wisdom.

What is the distinction?
I believe, they are:
Data, as we all know, is raw facts.
Information is relevant data available on time.
Knowledge is internalized information/awareness,
Expertise is ability to apply knowledge (what)/skill (how)
Wisdom is knowing when/where to apply

To me, learning is moving from having to work with a lot of data to wisdom where I can make informed decisions. As an old saying goes, first quarter of learning is from the master, second is from the learner himself/herself, third is from peers and forth from experience.

Web 2.0 has everything that it takes to make it happen. Well, someone needs to make it happen

I believe, these augurs well for the world at large as it brings technology closer to people. For me? I have different hats. Good for most hats but not so good for others

It is fascinating for the curious onlooker in me. It is good for my business as it provides new possibilities in improving my customers’ business. It is good for software developer in as I get to work with something new, different and probably even unique. It is a new challenge for the architect in me, as I grapple with the unknown.

It alarms the tester in me. I know, I will be in the middle of it in no time at all; even before the world comes to terms with it. The world understand the need for architect, developer and user to learn and adapt but the tester is expected to get into the situation and has to come to terms with it on their own. For instance, what are the techniques that hold good? Where are my tools?

Well, we like it or not, the cheese is moving. I am diving in…. better to be proactive than reactive, right?

About

Software engineer referred here is not a person with designation “software engineer” or similar but a practitioner in perpetual quest in balancing academic interest with business priorities.

This is blog of my forays into software engineering!! Indeed, software engineering is not new; it is there for decades now… to be precise, since NATO conference 1968. But does it make sense? does it have practical relevance? in the context of business imperatives? what does practical adoption involve? … and many more questions follow

In my business, my endeavor to deliver business success to my customers leveraging software engineering principles, best practices, tools, technology and so on… and my learning and experiences are what I seek to share here