Software Engineer’s Blog

Software Engineering weblog

Pioneer, par excellence

I believe it would be a gross mistake to talk about computer science and software development without talking about  the pioneer par excellence Alan Turing. Yet it is harsh and ironical that the person who is considered as father of computer science and artificial intelligence had to traumatic times for reasons that had nothing to do with his contributions to society in the world of computer science and artificial intelligence

May 25, 2013 Posted by | History, Sociology, software engineering | 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

Outsourcing: sustaining business growth

Companies in India have been into outsourcing model, with reasonable amount of success so far. Many companies of recent origin has been shot to prominence, living standards of a section (yes, it is only a tiny fraction still but rest of India is still starving) has improved, quality of infrastructure is improving (of course, not yet how it should be but it is changing). Good but I think, it is not yet time for India Inc to rest on its laurels.

Why talk about it now? I came across an interesting write up ‘When will TCS become the next Accenture?’. It is an eye opener; it should be one. As per the write up, TCS ranks as #1 in software services/outsourcing and it is (but it is only) 9th largest software services company in the world; where are the rest? What is India Inc’s share in global business?

Being successful is one thing, sustaining and building up on earlier successes is yet another. if first part is hard, second is harder. I am not referring to packaging and marketing. They are required but that is not sufficient in itself. It is also about watching the ground we stand, it is about assessing the battlefield, and realigning strategies to evolving world.

What I find particularly interesting in the write up is ’employee utilization’. It brings hard questions on many intangible aspects of how business is functioning. What was ‘good enough’ for the past is not ‘good enough’ for the times ahead. It is not just about TCS. It is about India Inc

July 8, 2010 Posted by | Business, Management, Sociology, software engineering | Leave a comment

As web evolves into a social infrastructure

Web has been around for long as a platform for social interaction, and it is time to recognize it as part of social infrastructure very much like healthcare, transportation etc. But while potential benefits of web are discussed widely, related risks are not. With its root in research and open source community, it operates still largely on trust.

Many layers are added on as it is evolving into a platform for social interaction across the world but those were after predators catching their gullible victims. This may be fair from the point of evolution theory (struggle for existence and survival of the fittest) but as a way of evolution of infrastructure for social interaction, it sound barbaric and, therefore, not acceptable for for a civilized society.

I am glad to see that Government of India is wide awake to this concern. I am also concerned about potential intrusion into privacy given that corruption still looms large in the corridors of power. Balance between security of society and privacy of individual is very delicate. I hope they get it right!

July 2, 2010 Posted by | Business, Collaboration, Google, Governance, Sociology, Web 2.0 | Leave a comment

Politics of Technology

Internet has simplified computing manifold, in 1990s, and thereby taking technology to every walk of life. First decade of the new millennium has seen it evolving increasingly into a platform for social collaboration. By and large, collective human endeavor has been behind this success with open and free interaction.

Popularity and adoption has also led to burgeoning trends in attack of malicious intent on this wonderland, and sometimes with political undertones. This runs counter to spirit of largely trust based interaction of professionals and volunteers. But, then, it is a natural consequence of social adoption of technology and cannot be wished away.

As is made out sometimes, problem is neither with technology nor with social adoption but the recklessness of its adoption. Technology is often adoption without adequate cost-benefit analysis; obviously, cost-benefit mentioned here is not just from economic perspectives

I think it is time for sociologist take a serious look at unprecedented social changes triggered by evolving technology, to contain its negative impacts, before it turns out to be a frankenstein

January 21, 2010 Posted by | Collaboration, Sociology | Leave a comment