A day in the life of a software engineer - Can high quality systems be developed with this work schedule

Objective

In this article I will try to put across you a problem which I believe is one of the most fundamental problems in the Indian Software Development industry . This problem is so chronic and basic that it can render any best practice or a tool or a process useless irrespective of its merit.

As you can sense from my profile over the past 6 years I have been trying to develop best practices, tools and methodologies for solving problems related to systems analysis and design starting from requirements gathering to low level designing. I used to get very frustrated as to why do software professionals and their companies not understand the importance of these best practices …. Why don’t they use it ? It doesn’t take any significant efforts but the advantages are many times high …. and each time my mentor used to pacify my frustration. Once my mentor shared with me a very simple fact …. He said … “it is not just the problem related to systems analysis and design …. It is a fundamental problem of DISCIPLINE”.

According to him “If a software professional writes his code with a good amount discipline and sincerity …. The quality of the systems will be many times more than what we have today”.

He was trying to make me understand that fundamental engineering discipline and sincerity is missing at all levels starting from requirements gathering to maintenance of software systems….

Once I realized this fundamental problem … today I am able to understand this problem from a very different perspective. No longer it is just a technical problem … it has a lot of Behavioral and Strategic implications as well.

In this article, I will describe a typical days schedule in the life of a software engineer in India. The intention of this article is not to hurt the sentiments of the software professionals. I will request the reader to be impartial and look at this from the point of view of "Success of Software System" rather then taking it personally. This article is also important to highlight a very critical behavioral problem created and nurtured by vested business interests for their strategic gains to an extent that even if they want to solve this problem in future, they just can't do it.

Presuming the official working hours is from 9 Am to 6 PM with no flexi working.

  • 9:00 am - Mr X comes to the office.
  • 9:00 AM to 9:30 AM - Mr X takes a break for the breakfast.
  • 9:30 AM to 10:30 AM or even till 11:00 AM - Mr X checks his official and personal mail and replies to them.
  • 11:00 AM to 11:30 AM - Looks at the work to be done in the day.
  • 11:30 AM to 11:45 am or 12:00 am - As Mr X is already seated for the past 2 hours, he would definitely need a tea or a puff... so its tea break which usually gets extended to ½ hour (15 minutes to coordinate with other friends and 15 minutes for the tea. Courtesy the spacious campus of various software companies in India).
  • 11:45 AM to 12:30 pm - This is the time, Mr X actually does some work, that too if no meetings are planned for the pre lunch session. If a meeting is planned, then the meeting will continue till lunch with no absolute work done till lunch.
  • 12:30 - 1:00 pm - By 12:30 pm, Mr X will either start coordinating with his friends for lunch or he will start getting SMS's and calls from his friends.
  • 1:00 to 2:00 pm - This is the actual lunch time.
  • 2:00 pm to 2:45 pm or 3:00 pm - This is the time when the most efficient and disciplined engineer will find it difficult to concentrate on work giving the sumptuous meals that are served by the software companies.
  • 3:00 pm to 3:30 pm - Again it's a time for tea break to get ready for the actual work.
  • 3:30 to 5:30 pm - If there is no meeting planned in the post lunch session, this is the time when the actual engineering work is done.
  • 5:30 to 6:00 pm - Build up time to leave - By 5:30 pm again, the process of wrapping up starts. Some of them starts packing for the end of day while some of them prepare for the evening conference calls.
  • 6:00 pm to 7:00 pm - For people staying back, time for snacks and table tennis
  • 7:00 pm to 9:00 pm - For some people its conference calls, while for others it's a time to complete some work which they were unable to do due to meetings during the day time.

All in all the actual time when the actual engineering work was done is - 2.5 to 3 hours out of 10 hours at office.

My simple question is "Can high quality systems be created with the above mentioned engineers working schedule?"

Or can we expect our "Cars" or "Cell phones" or "Washing machines" or any other systems belonging to the non software domain to be created using the schedule followed by a software engineer.

Think of 1 non software engineering company which functions in this way and still delivers high quality systems. I am sure you will struggle to find one.

I hope the readers will realize, no best practice, tools, methodologies, frameworks can help the software industry if this is how the bulk of the software professionals operate.

I am again reiterating, this is the general schedule followed by most of the software engineers across most of the software companies (Except for small startup). There will definitely be 5 % engineers who are putting in the right numbers of work either due to project deadline or due to their inherent nature.

I personally believe Software Engineers should not be blamed for this. During my training programs I come across lots of software engineers who are frustrated by this daily routine as they feel their engineering talent is wasted. I come across many software engineers who say that this is what they feel is software industry as "This is what they saw when they first entered this industry and have made a belief that this will be the way software industry will function for ever". Most of the engineers who join the software industry are fresher and have not worked for any other industry and hence what they see the first time, they believe this is how this industry functions. This is the reason I don’t blame the software engineers. They just did what their employers wanted them to do and they continue doing what their employers want them to do … irrespective of the fact whether they like it or not.

As I said software professionals should not be blamed for this ….

Then who is responsible for this behavioral problem … ?

Ask yourself why doesn’t other streams of engineering work like this with so much of inefficiencies ?

or

Can any other company belonging to a non software engineering discipline be a profitable business with so much of inefficiencies?

or

Ask yourself why does the software development companies tolerate such inefficiencies and still become profitable business entities with consistent growth and ever increasing returns to its investors?

or

Are the management of these software development companies incompetent enough to make their teams efficient (or to sort out the problem of indiscipline) when all the other companies in the non software engineering field are able to do it?

We all know business is always driven by profits. If we closely look into businesses dealing in non software engineering based systems, one of the very critical ways of increasing profit is by reducing the inefficiencies within their business because of limited (or ever shrinking) margins.

To understand this we need to look into a bit of history of Indian Software Industry.

Ever since its inception, India has been an export oriented market … wherein most of the customers of the software development companies were overseas (foreign) business entities mostly from the US and the European market. This resulted in a huge currency conversion ratio and hence the profits of these companies were just multiplied by a factor of 40+.

On the other hand historically most of these software development companies where on the TIME and MATERIAL (T&M) billing model wherein more the efforts and time invested more the revenues for the companies. This billing model virtually ensured that any inefficiencies of these software development companies directly multiplied their revenues by a great factor.

As we know the Currency conversion ratio along with T&M billing model virtually ensured that these companies had huge profit margins (considered unimaginable and hypothetical in other streams of engineering).

Now ask yourself ..why would someone try to sort out the inefficiencies in the business when the profits are already increasing that too exponentially … that too because of the inefficiencies in the business.

So let us understand … it is not that the management of these software development companies are incompetent to handle these inefficiencies but there is no business motivation for them to do it.

Now the next logical question is …

Can these software companies continue to milk the cash cow endlessly?

No … The customers are becoming very prudent and many of the customers have started demanding “Fixed Price” billing model. Also because of global competition the margins are shrinking as well. Unfortunately for the software companies the Indian rupee also has become strong further denting their profits but they still continue to remain very profitable.

[Generally it is a matter of pride for any citizen of any country if their national currency becomes strong as compared to other currencies in the world. But in India, the software development companies starts lamenting the moment the national currency becomes strong.]

But with frequent slowdowns and the recent factors mentioned above … very soon software development companies will have to a serious look into this inefficiencies …

Also let me reiterate the problem doesn’t lie with the software professionals …. The problem actually lies with the business and strategic objectives of these software development companies.

But can they really sort out this problem now even if they want to solve it?

The answer lies in the question …. Can we change the behavioral attitude of millions of software professionals immediately?

The answer is No … (As we know putting up fat [inefficiencies] is very easy but putting off [slimming] weight is very difficult and needs very strict measures and self discipline)

Let us understand today the scale of the problem is so big that even if these software development companies want this problem to solve … It will be a very difficult challenge …

 
Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer

www.VPlanSolutions.co.in