Optional essay
How can anyone not having even a college education claim that he has solved a problem which even the research divisions of Microsoft and IBM could not? In general how can one speak about mass production in an area where mass production “by definition” is impossible? And if this were possible, then why has nobody done it up to now? In this optional essay of mine I shall try to answer these questions.
In my opinion, the reason why custom software mass production has yet to be created is because of the improper approach to solving the problem. The distinguishing feature of custom software development is that each project is carried out on the basis of unique requirements. However, this does not signify the need for more complicated programming as it might seem at first glance. The challenge is in accommodating individual clients with their specific requirements.
Attempts at avoiding this challenge of working with clients began with the appearance of the Internet and continue to this day. They are predicated on shifting analysis, architecture, and project management to the client. Everything comes down to certain predetermined, template solutions with ready-to-use functionality. One need only to check out the latest solutions such as “Office Live Small Business” from Microsoft or Google’s “Google Sites” to understand that conceptually nothing has changed over the last 10 years in the field of custom software development. The approach was and is hackneyed.
I consider this approach, i.e. transferring analysis, architecture, and management to the client fundamentally incorrect. From my point of view, the solution is relatively simple and lies in: first, increasing the unacceptably low efficiency of the work of teams specializing in custom software; and second, in changing the very business model for custom software development.
Let’s take, for example, the Requirements Analysis Process. In accordance with the Rational Unified Process (RUP), it is the business analyst who is responsible for dealing with client requirements. He meets with the client and, using various techniques, gathers, refines, records, and revises the requirements when necessary. This works well in theory (or in big projects), but is not at all suitable for 95% of real-life projects, i.e. those projects which can be placed in conveyor-belt production. Why? The reason for this is that in small projects clients do not understand the importance of requirements analysis. Believing that their requirements are already clear, they accordingly are not willing to pay extra for this work. As a result, most software companies cannot afford high-paying business analysts. Nevertheless, doing without the analysis inevitably results in an inaccurate estimate and collapse of projects. What, then, must be done?
I found what can possibly be a solution in outsourcing requirements analysis. Over the course of a number of years my company practiced the following approach. Two people were responsible for working with requirements—the project manager and the business analyst. This is what would happen: the manager meets with the client and tapes their conversation. Then the recording is handed over to the business analyst who uses it to prepare and pass back to the manager a list of requirements. The client meanwhile does not know that someone else is performing the work for the manager. He is simply ecstatic over how his demands were understood.
This, it would seem, is a simple idea, but it permitted solving a multitude of tasks: 1) the manager would not need to be so qualified; 2) reduction in client-staff meetings; 3) creating a more informal, relaxed environment proven to induce clients to express themselves as fully as possible; 4) a guarantee that requirements will in no way be ignored; 5) securing high-level analysis since processing the information is accomplished in a calm situation by a specialist. While there are other benefits, the most important is that now the services of a business analyst are accessible. Why? The high paid specialist is not wasting time on traveling to clients or conversing with them. He remains in his office, 100% immersed in scores of projects simultaneously. I utilized this method over a number of years and was surprised how “traditional” software companies categorically refused to accept it. Their arguments against it ranged from statements that the manager “is not able to ask the correct questions” to accusations that “confidentiality is sacrificed”.
I do not want to say that a recording device is a “magical means”, allowing solution of custom software development problems. What I do want to say is that the monolithic processes which today’s software companies follow are far from perfect. Perhaps this explains why that the field of custom software development has not yet shifted to the level of mass production.
Involved in solving the problem of mass production in custom software I, in the period 2001-2006, reviewed many RUP disciplines, trying to change roles, activities, and the associated concepts in line with the requirements of mass production. In 2005, I founded a company in order to test my ideas and the business model which I created. The results were unexpected. Practice showed that even one reengineering of business processes is capable of significantly (up to 10 times) increasing productivity of the custom software team’s work, with no loss of quality. However, I understood that one could go further. Calculations showed that a software company, where the necessary infrastructure and divisions are in place, and work is based on a proper business model, can reach the level of real conveyer-belt production of IT projects.
My ideas are more than theory. They have been tested in actual projects, with real software teams. And although I make no claim to having solved all problems, I know that the business model which I developed is correct. I am convinced that this model can change the very field of custom software development by applying mass production methods. Success in this project would mean new opportunities and thousands of new jobs in America. I am intent on continuing my research at Columbia University. Here I can perfect a business model, and with the constructive criticism of my fellow students, complete my project by creating an IT corporation.
