Throughout my career and in particularly during my interviews, I met people who would consider IT like a craft activity. The difference between Craft and Industry is less in the quantity than how to make.
A craftsman makes masterpiece for each customer and a manufacturer produces consumer goods. This difference shows an important perspective on the way to work. A manufacturer produces objects which have to satisfy to the bigger number. A craftsman makes a particular object for a specific person.
In IT, a wrong idea is to think that the software is a masterpiece but it is a usual illusion for many reasons. First, the programmer thinks he is the first to solve the problem. Even if it is a new case, the elements of the problem already exist. It is enough to analyze and to factorize the problem to know the solution already known. The programmer’s work consists more in assembling permanent solutions to create quality software, than to rewrite algorithms that other validated before. Second, software is not for a specific use but it is an ordinary tool. Another illusion is for the customer. He often thinks his problem is specific, but his problem is mostly the same of his competitors at less. Finally, IT is an engineering work where the true difficulties are in the understanding the customer’s needs.
Another difference is about economical aspect. An IT firm must respect two principal constraints: cost and delay. Unlike a craftsman who realizes a masterpiece, the means are limited.
Quality also has a different meaning. For a craftsman, it is intrinsic because he works for a unique customer. For a manufacturer, it is a more complex idea because it works for customers and users which have different needs and targets. They all work towards the success of the company but the constraints of their works are not the same.
The IT as an industry must satisfy customers and users. An additional problem arise, the users don’t have the same needs. During the analysis of the needs of the users, the correct definition of the roles of each user is very important and to understand the need of each role. Indeed, in all company, it is necessary to forget people because they change quicker than the role. Each role defines precise duties. Some people can have some roles. A role expresses the job of the user and is shared by many companies. Some role exists in all company.
A classic problem for IT companies include Software Engineering Company, software editor is to focus to the technology. They must follow the technologic changes which are difficult because they are quick. But it is an illusion because it is often the updating of existing technology. Three real revolutions take place: Object programming, Agile Method and cloud computing because they change the level of abstraction of the job which they concern: programming, the organisation of job and the infrastructure which are fundamentals for IT.
The IT is an industry in its huge majority. Some specific cases exist with few programmers who are often the best. A programmer generally puts together validated components. The heavy analyst’s task is to understand the needs of customers and users. The Scrum Product Owner must obtain the realization of standard functions and in the same time managing the belief of the customer about the specificity of his company.