Software Engineer’s Blog

Software Engineering weblog

First sensible discussion on software testing after a long while

I happened to listen to a CAST 2012 lecture “Get the Balance Right: ATDD, GUI Automation and Exploratory Testing” in You Tube; an interesting one in the sense that it highlights essentials from practitioners point of view rather than riding on marketing hype and mundane technical jargons.

It is probably the first sensible one in software testing after a long while.  There is unfortunate explosion of jargons which complicate and hinder rather than help improve software testing as a specialization. My personal observation is both hype and jargons more to do with marketing/business needs of consultants and tool vendors rather than the subject matter itself.

July 24, 2012 Posted by | Software Quality, Software Testing | Leave a comment

A tribute to a master!

I have come to know only today; sad to realize that Prof. Watts Humphrey is no more!

I remember listening to his lecture during a conference on software engineering organized by Computer Society of India in mid nineties.

Software development community used to be very small in those times and far less connected. I was a programmer, cocooned in glass houses with mainframes and PCs; a simple world of FORTRAN, COBOL, C and C++. Interaction was truly an eye opener for me, and encouraged me take a decisive plunge into software engineering and software quality. My journey continues, though the master who set me on the journey is no more!

I would like to clarify that, barring my initial interaction during the conference, I have never met him in person. But I had been following him though his published works.

In a career spanning more than two decades in software development, I have seen many advocates of software engineering and software quality crashing with dogmas and myopic vision, without adequately appreciating various dimensions of software development, and dust has not yet settled.

As a person committed to software engineering and software quality, Prof. Watts Humprey had not lost sight of various dimensions involved. Rather, he was able to effectively manage these, and synthesize changes continuously into his work

Though he no more amidst us, I believe, his work and spirit would continue to inspire and guide us, as software development evolve to engineering discipline

What you leave behind is not what is engraved in stone monuments, but what is woven into the lives of others. ~ Pericles

November 3, 2010 Posted by | software engineering, Software Quality | Leave a comment

IT 2010 and beyond!

Have you been looking at your crystal ball to see where IT is headed? Read Gartner Highlights: Key Predictions for IT Organizations and Users in 2010 and Beyond .

Particularly interesting, looking at it from India, is the prediction that ‘India-centric IT services companies will represent 20 percent of the leading cloud aggregators in the market by 2012’ is interesting.

Prediction that ‘mobile phones will overtake PCs as the most common Web access device worldwide by 2013’ indicates a changing landscape of computing. Computing was once a terrain for techno-geeks; it is now an irreplaceable aspect for everyday life, tool for business and platform for collaboration. Is it not yet time we get serious about it?

January 18, 2010 Posted by | Business, Collaboration, Product Engineering, software engineering, Software Quality, Value Based Software Engineering, Web 2.0 | Leave a comment

A hard look at software development business

Software Engineering: The Sociology of Software Project Failure is taking a hard look at current business, especially software development business, scenario. Statements sound harsh and politically inappropriate but many of them are, unfortunately, true.

Whether you agree with all observations and inferences made in the article, or not, it makes a compelling reading. It is pointing to fault lines in much touted software development business which prides itself in building social and business platform of future

I am reminded of Edsger W. Dijkstra: The required techniques of effective reasoning are pretty formal, but as long as programming is done by people that don’t master them, the software crisis will remain with us and will be considered an incurable disease. And you know what incurable diseases do: they invite the quacks and charlatans in, who in this case take the form of Software Engineering gurus.

Is it not yet time for business to wake up and own social responsibility?

January 17, 2010 Posted by | Software architecture, software engineering, Software Quality, Uncategorized | Leave a comment

Software engineering and Business

As a software engineering practitioner, I had been trying to apply software engineering practices in my daily business life. For instance, I started working with object oriented approach from 1993. I started use case modeling from 2002. I had started adopting agile practices since 2003. I started using function point estimation since 2004. As a subject matter expert, trainer and consultant, I had been helping my customers adopt these, and many more.

I help my team and my customers adopt because I do believe in these practices, and its business value. That said, my observation and experience has been each of them has evolved as the way of doing, through success in specific projects, then generalized and applied in many similar ones. Absolute care is called for when applying to a business context to be successful, because each context is different; people, business imperatives, priorities, technology, customer, user, … these differ.

Success here refers to business success. For example, when a project team is enabled on requirements definition, compliance to a defined standards is incidental; Compliance to a standard is rarely a real business objective/benefit. It, in turn, for another business objective/benefit. Actual success would mean achieving business objectives of well defined requirements. It may ,for instance, be a better communication across the team, control on scope creep etc. There are many cases where documentations are created but never referred except for process audit. It is pointless if compliance to standards is achieved but not the business objectives

Why am I saying? If you look around, you will find many situations where hours, or even days, are spent on creating documentation to convince an external auditor. I have seen this happening many times over. What is the business value delivered? Valuable productive time is being spent on a work item that should have been in place. These should have been part of the process, or by-product of the process, is being created for the sake of review. If it is truly valuable, why not account for it? If realities of business does not allow time for such documentation, why create them in the first place? Why recreate just for the sake of process compliance?

What is the issue? It is conflicting stakeholder interest, not mapped, not assessed, not tracked, not managed, … well, all stakeholders are not the same, and all stakeholder interests are not the same. Nor these remain the same; it may change with time. Practices which does not realize this, sooner or later degenerate into a ritual.

Let us accept. Practices of software engineering are not universal as in case of other engineering disciplines because underlying principles are not universal as in case of underlying scientific principles of other engineering disciplines; say scientific principles in mathematics or physics.

Software is a construction of human mind and software development is a teamwork. Therefore, management of software development business includes, but goes much beyond confines of, traditional science. Some of the underlying scientific fields are physics, mathematics, organizational behavior, economics, management science, and sociology

That makes it more than what a everyday business can chew; it is more of a potential research area. But life is not so complex either. We balance these forces everyday; we do it more out of experience and gut feel. Dynamic balancing is done in the context of everyday business. What interests me in value based software engineering is that it gives me a context and a framework for such balancing and a reasonably scientific analysis

January 4, 2010 Posted by | Business, software engineering, Software Quality, Value Based Software Engineering | 1 Comment

Value Based Software Engineering

More than four decades passed by since birth of software engineering!

The Standish Group‘s report, “CHAOS Summary 2009” indicates that only 32% of all projects are succeeding. This represents one end of the spectrum with the gloomy picture of failing projects. On the other end is pervasive influence of software in every walk of life and burgeoning business of software development.

Since 1968, many has professed software engineering. Software engineering defined as “systematic, disciplined, quantifiable approach” has been both wide accepted and questioned. Fundamental questions remain unanswered:

1. Is software development a craftsmanship an engineering discipline? Why should the question be either/or ? I think it is both
2. Is “systematic, disciplined, quantifiable approach” important or delivering value NOW is important? Again, I think the question is not either/or. It is interesting to see the definition of engineering from Merriam-Webster Online Dictionary. That is, meaning is given as the application of science and mathematics by which the properties of matter and the sources of energy in nature are made useful to people . More than “systematic, disciplined, quantifiable approach” in itself but ensuring value is delivered to business, ensuring success of success-critical stakeholders is more important.
………………………………………… and many more

Value based software engineering seems to be providing a framework for assessment. It answers many questions and it is throwing up many more questions. These questions are poised to take software engineering to new heights

I am getting set to explore the space of “value based software engineering”. I plan to dedicate my new year for “value based software engineering”

January 2, 2010 Posted by | Business, software engineering, Software Quality, Value Based Software Engineering | Leave a comment

Life cycle of a test case

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

December 22, 2009 Posted by | software engineering, Software Quality, Software Testing, Testing | Leave a comment

Cheese is moving again!

Landscape of world around is changing drastically with innovations like Sixth Sense, Project Natal , and multi-touch man-machine interfaces. Software is opening up new frontiers in collaboration. What is more, Cloud computing is changing the deployment and usage model of software taking it more towards a service paradigm.

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?

December 1, 2009 Posted by | Agile testing, Natural User Interface, NUI, software engineering, Software Quality, Software Testing, Surface, Testing, User Experience, UX | Leave a comment

Project success rate still alarming slow!

2009 Chaos Report from Standish Group indicates that project success rate are still alarming slow! Seeing what happens around, I am not surprised at this rate!!

But I am not surprised at the expert reasoning either. I tend to concur with these views. Despite all engineering, process and quality initiatives in software development, success is still elusive. Not surprisingly, all reasoning points to people factor.

After all, software development is team work. Fundamental to team work is honest and clear communication. That is what fails. Without honest and clear communication what remains is process for the sake of process and automation for the sake of automation

November 10, 2009 Posted by | Business, software engineering, Software Quality, Uncategorized | Leave a comment

Defining Quality in eLearning world

This is inspired by blog Defining Quality in Learning for Virtual Worlds, Mobile Devices and Online Modules. I believe it is high time we get on with a working definition of quality from e-Learning systems.

When we talk about quality, definition that is closest to my heart is ‘value to someone’ from Dr. Gerald M. Weinberg. It is closest to my heart because I find it easy to apply into a business context. Well, that some one is the customer who invests in the product on behalf of the user (if customer and user are different). That is also the user who actually uses the product. That also includes balancing interests of many other stakeholders. Does that sound confusing? Not necessarily. Art of management is about balancing various forces. It is not one at the cost of others

That brings to FURPS+, traditional classification of quality we use in software engineering. I believe all dimensions require attention. Reliability, Performance and Supportability of the solution is as important as Functionality and Usability.

Well, that sounds too generic? What is “good enough” quality for a specific project/product must be assessed with respect to stakeholders of that project/product. I believe, assessing them on all dimensions are important though one could define degree of acceptable tolerance/compromise taking respective stakeholders into confidence

Now getting specific to the eLearning, two key elements that make a successful eLearning system are i) technology and ii) content. From technology perspective, I would consider adaptability, scalability and maintainablity apart from FURPS+. Well, I am aware these are already addressed by FURPS+ but I think these require special attention as the eLearning technology space is still evolving. From content perspective, I would classify it further into quality of content, quality of content presentation, and quality of content delivery. In the latter two (that is, quality of content presentation and quality of content delivery) role of technology is significant but what I would like to assess is what does it mean for the user, and other stakeholders

November 10, 2009 Posted by | e-Learning, eLearning, Software Quality | Leave a comment