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

The Profession of the IT Architect – The Next Ten Years

A very interesting lecture by Grady Booch

June 14, 2012 Posted by | Uncategorized | Leave a comment

Grady Booch interviews Steve Wozniak

June 14, 2012 Posted by | Uncategorized | Leave a comment

Victims of ‘push’ technology

I was surprised by rise in my facebook friends watching videos and articles which I found as obscene and offensive. I was surprised as we ‘choose’ our friends, and how could my friends stoop to such lows… Just as the case with any society, I believe wired world is no different from regular world as far as importance of health social interactions are concerned. This includes understanding just expectation on one another, honoring the expectations, mutual respect, social etiquettes, and so on. These are mandatory for healthy social interaction in social circle in wired world also. I believe my friends too understand this

I have come to conclude that many of my surprises are due to them being gullible victims of yet evolving social format. Many new feeds from ‘Trending videos’, ‘Trending news, etc appearing in my page confirms my view. Messages are provocative and one may innocently or accidentally click on these… and that must be it.

I wish feeds not forced on users but left to their choice. But that is not the case as of now. Feeds are thrust on gullible. If you are one such victim, and if you would like to block such videos, articles and news, all you need to do is to modify your Privacy Settings as mentioned here ….

June 13, 2012 Posted by | Uncategorized | Leave a comment

A great lecture on software testing by James Bach

June 6, 2012 Posted by | Uncategorized | Leave a comment

Making of a professional software developer!

I came across an interesting lecture on professional software development by Robert Martin, a promotion part of video lecture series on clean code. I would recommend every software developer, and aspiring ones, to listen to. I believe that you will find this as quite thought provoking, and inspiring, just as his many other lectures are.  You would find it gently nudging you out of comfort zone into challenges of evolving into a true professional

Head count of manpower involved in software development has multiplied manifold from the time I started my career in software development more than two and a half decades back. Technology involved has changed, and software development environment has changed as well. World of software, and its role in the world, too has changed quite a lot since then…. and, as software reached out to every walk of life,   complexity and expectations too has increased manifold.

As we have reiterated many times over, software is essentially a construction in mind in first before it is executed in computer. It gets created in the minds of users, customers, developers, testers, … and often these do not connect breaking dynamic equilibrium of balance as software evolve. Making it still harder, complexity and disconnect increases exponentially with increase in the number of minds involved. It does not make any sense to wish these complexities away. These are here to stay. It can only get more complex and challenging, as we depend more and more on software.

Key to being a professional is to get on top of these. That is, a true professional would stand up for what he believe in, what he likes to do, take up the initiative, own up the commitment and deliver to the commitment. A true professional will see commitments as extremely important, not a casual word. We work as we work as a team, and a whole chain of commitments depends on your commitment. Many business, and many lives, depends on it and if commitments are not honored all of them are affected. It is your responsibility to see that commitments made by you are honored within time, budget and quality expectations.  That is, you are absolutely in charge of the situation, rather than its victim.

Note: Video of interviews with a super star from Indian film industry and another one with a master batsman from Indian cricket embedded here, both worked their way up fighting many odds. Both are involved in a profession which calls for individual excellence and team work for success. Both are professional who made indelible in their space, and are reflecting back on their rich experience. I believe spirit of professionalism cuts across many disciplines. It may differ on details but fundamentals remain the same. It is about conviction, self belief, working hard for what you believe in, working as a team and and winning against many odds, in the right spirit

I believe, technologies, processes, methodologies and tools have evolved to a great extent by now and these can help us address the key challenges, if we can put these together in the right way, as people/team enabler. Well, it is important to get it right.

Also, it is important to stay clear of dogmas, and realize that when we direct attention towards moon by pointing in that direction, the pointing finger is not moon. It might sound trivial but it is common to see finger being confused as moon. What do I mean by that?

I have seen process quality standards like CMMI degenerating into a compliance ritual. Insistence (by whom? It is interesting to know) on excessive documentation leads to outdated, and even lack of (gets postponed as it is time consuming), documentation. Later documentation is done purely to satisfy auditing needs. That is, an initiative intended to help you manage collapse on its own weight. The real problem is not with CMMI but in its adoption

I have also seen free and honest communication getting compromised in so-called ‘agile’ environment with regular meetings turn into witch hunting and ‘save my skin’ interactions. That is, the term ‘agile’ gets stripped of its core values and gets used as a matter of convenience rather than any good. Again, what fails is not ‘agile’ but its adoption

Automation initiative, that starts with purchase of a commercial software for software development, get stuck in learning some esoteric aspects of the tool rather than addressing true automation needs. Again, problem is not automation rather how automation is approached and implemented

It is curious to see the patterns of wrong adoption repeating itself. While technologies, processes, methodologies and tools can help us in addressing key challenges, often, it is the related technical details grab attention through advocacy of vociferous loyalists and marketing machinery, rather than applying them right. The fact that these are enablers in the first place is conveniently forgotten

Looking around, it look forward to a phase in software development, a phase that physics had gone through between Galileo Galilei and Isaac Newton … a phase of consolidation, period of drastic and intense changes with far reaching impact. We have seen some of these continuing even into early 20th century through Albert Einstein, Werner Heisenberg , et al…. and as an industry, we continue to deal with more unknown factors than known ones, till the dust settle

I hope to see software development eventually settling down to become a profession, in its true sense… It has changed over years but still it needs to go a long way before it can truly be called a responsible profession.

April 21, 2012 Posted by | Agile, Business, Collaboration, lessons learned, Management, Sociology, software engineering, Software Engineering Career, Software Testing | Leave a comment

DId you say usability?

An interesting message from a commercial product! Wonder what it seeks to convey. …

Of course, I have removed details to hide information on product, and its manufacturer to protect their interest

December 3, 2011 Posted by | Uncategorized, User Experience, UX | Leave a comment

Looking ahead

October 30, 2011 Posted by | Uncategorized | Leave a comment

Looking back

October 30, 2011 Posted by | Uncategorized | Leave a comment

Dependence, Independence and Interdependence

One of my friends recently asked me a question as to ‘why people, by and large, not aware of the persons those who are pioneers and leaders in software engineering?’. For instance, names of Donald Knuth, David Parnas, Edsger Dijkstra, John McCarthy, etc are not names familiar even to a typical software engineering of today.

I think it has partly to do with maturing of this profession as well as maturing of the specific individual as a professional.

Why maturing of profession? No profession worthy of existence can forget people who contributed to making it better. A common man may know only handful of greats in Physics like Isaac Newton and Albert Einstein. But a physicist cannot be ignorant of greats like Max Plank, Werner Heisenberg, etc whom an common man may not be aware of. Every profession has become what it is because of great work of people like this.

Why individual? A professional musician, an professional actor, a professional movie director, a professional artist etc would acknowledge that he or she is not an island of excellence. What he or she is, is a result of contribution of many, known directly or indirectly. I have heard such acknowledgement while listening to interviews of professional, irrespective of their profession.

What this has to do with dependence, independence and interdependence? Many of us start our career working for a big organization. Does not matter, even if organization that you work for is small. Point here, you are part of a big system and you are dependent on that system. You may not have much of choice in the kind of technology that you work with, the kind of project that you do, the kind of process that you follow

But gradually scenario changes and you get into position where you can command at least to some extent. As you keep working, you come across many Déjà vu experiences and it becomes too familiar to you. Then you also start looking around and realizing that you are not alone.

At this stage, you start learning from patterns, learning from the past, learning from society, learning from everyday life and learning from collaboration, acknowledging work of greats in the past and contributing back to business, society and world around

October 29, 2011 Posted by | Uncategorized | 2 Comments