Summary of problems

Human Limitations wrt complex systems (can be understood better using the detailed description)

  • Single Frame Of Vision – Human beings are limited by the problem called as Single Frame of Vision. Human beings can only describe those aspects of  a system completely and correctly as to whatever he can see in the current frame of vision. For every aspect of the system that cannot be visualised in the current frame , he will have to depend on his memory and the resultant information might be incomplete or incorrect. Business systems are too huge to be visualised in a single frame of vision. A human being cannot understand the system completely and correctly till he cannot visualize a system from different perspectives at different levels of granularity in a single frame of vision.
  • Inability of a human brain to comprehend the numerous scenarios in a system – Complex systems can have thousands of combinations of scenarios for which the business logic can be different. But a human brain is actually not capable of thinking more than 20 scenarios and hence thousands of scenarios get missed because of this human limitation.
  • These two humans limitations are mostly responsible for the losses worth 50 billion USDs.
  • Till these human limitations are not resolved , these problems with requirements and analysis will continue to exist.
  • Lack of understanding about these human limitations and the associated best practices.

Behavioural issues

  • Requirements gathering tasks mostly needs overseas travel and extra compensation. Hence these tasks are the most sought out tasks among the software professionals irrespective of the fact whether they have the right skill to execute this job. Managers mostly use requirements gathering tasks to satisfy disgruntled or dissatisfied employees. Professionals place overseas travel and locations as precondition to taking up job assignment. I am sure we all have seen team members threatening the manager to either send them abroad or they will quit.
  • In India because of the Demand Supply inequality because of which software professionals rule the roost, is it possible for the project manager to reprimand a software professional for task not done properly when the professional has atleast 2 jobs waiting for him?
  • Task of requirements gathering, analysis and design needs very high level of discipline which is mostly lacking within software professionals.
  • Considering the points mentioned above ask yourself do you feel people who are gathering the requirements today are they the best people to do this job? Do they specialize in this task? Are they aware of the limitations wrt complex systems ? Do they know the best practises? I hope we all know the answer.

Business and Strategic Issues

  • Most of the TSPs use T&M as a billing model wherein more the hours invested for a project, more the revenues for the company.
  • Is it a prudent business decision to complete the project ASAP when the revenues of the company are directly affected by longetivity of the project?
  • When I was trying to sell my product based on requirements , quite a few decision makers of TSPs frankly told me about T&M as a model for increasing revenues.
  • Quite a few TSPs also told me that they have processes in place but engineers just don’t use it or just complete the formality (Classic example – Code and design reviews).
  • Is it viable for TSPs to force lakhs of their professionals to change their knowledge and behaviour issues given the demand supply inequality?
  • Even I empathise with the TSPs and I believe they are also constrained by a lot of factors and cannot do much even if they intend to do.
  • Majority of the phases of software development done by a single engineer.
  • Lack of accountability as today a single business entity (TSP) performs all the task of requirements gathering, analysis, design, development and testing unlike in other successful streams of engineering wherein there are different business entities accountable for each phase all contributing for a single project (Like in civil engineering there are different business entities like the Design Company, Project Management Company and Implementation Company(Contractors) all working on a single project or system).
  • Lack of knowledge about the importance of Non Functional Requirements.

Lack of usage or minimal usage of Standardized Modelling language and Engineering processes in software development.

  • Even today most of the software professionals start developing systems by directly writing the code.
  • Most of the software professionals don’t even understand the difference between Analysis and Design.

Lack of Analysis and Design work outsourced to India.

  • Majority of the work outsourced to India is maintenance and development while the bulk of the analysis and design work is still done overseas.
  • The lack of analysis and design work doesn’t give our professionals a chance to hone their skills on analysis and design.
  • Most of the books available in the market are programming books, there are very few good books on analysis and design.
  • A flawed perception that software systems are very different and difficult as compared to other systems belonging to other streams of engineering.
Hemant Jha
Founder - VPlanSolutions
Researcher, Trainer