The most common opening line at a bar near a college campus is, “So.. what’s your major?” To be honest the answer does not really matter because the question is designed to start a conversation. The same is true when I ask, “Where does software development belong?” because the point of the question is to stimulate some conversation. Does software development or computer science warrant its own department or division like physics, economics or accounting?
You are probably thinking stop asking questions and give me some answers. It is not clear at all where the discipline software development or computer science belongs. There are some that argue software development is branch engineering and degrees related to software development need to be conferred by the department of engineering. Others maintain it is a management science and should be part of the college of business. Still others think that software development is a natural branch of industrial design. One thing has become clear there is no consistent coursework for those getting degrees in software development or computer science. Software development is an industry that struggles defining terms like software life-cycle or software methodology. It is common that new software methodologies pop up like Agile or RAD (rapid application development). These methodologies go as fast as they came.
I believe software development belongs in Industrial Design. The professional organization Industrial Design Society of America (IDSA) defines industrial design (ID) “is the professional service of creating and developing concepts and specifications that optimize the function, value and appearance of products and systems for the mutual benefit of both user and manufacturer.” If we change the last sentence to read … for the mutual benefit of both user and developer, then we have a good definition for software development. Where the field of industrial design differs from software development is ID places an emphasis on those factors that relate most directly to human characteristics, needs and interests. The field of ID teaches how to study customers using techniques like ethnology.
A bit of history
In the early 1960’s universities decided they needed a new department called Computer Science (CS). These new CS department would be equivalent to the existing departments like Physics, Mathematics, Engineering, Economics and Business. Graduate schools appeared first and nearly all those getting PhD’s were mathematicians.
One of the first texts used in computer science courses was An Introduction to Digital Computing published in 1963. The book describes the method to write code to solve complex mathematical problems like least square analysis, Taylor series and differential analysis. The new programmers, most of them mathematicians, used computers to solve really hard math problems. Before the arrival of computers a small army of graduate students would have to make tedious calculations using a slide rule. Most of the early computer programs were used to solve complex math problems and the user and programmer were the same person.
Today about half the degrees related to “software development” are earned in the department of engineering and the other half are granted from either arts & sciences department or the school of business. The course work required for these degrees varies from one department to the next and from one university to the next. There is no consistent required course work for a career in software development and this is in sharp contrast to just about any other career.
Where software development really differs from the field of ID, ID includes a concern for marketing opportunities, sales, servicing products, and economics. Software developers have basically no education or training on anything relating to marketing, sales, economics, and especially design. Unfortunately software developers have little desire to learn about marketing or sales either. To many software developers believe their role is to just write code or just to program.
Study The Customer
The field of Industrial Design includes a significant amount of study of the actual customer and his or her business. Today most software developers move from industry to industry and have no specialized industry knowledge. This would be Okay if they understood how to study an industry, a business or a customer, but they don’t.
One of the largest problems facing software development today is gathering or eliciting requirements. The reason developers are not skilled at studying the customer environment is because they have not been trained to do so. In the end most people do not know what they want, so it is wrong to expect a user to provide requirements.
I would recommend that all software developers join the Industrial Designers Society of America (IDSA) – http://www.idsa.org and learn some new tricks from another discipline.
Read more at the free online book Reboot! Rethinking and Restarting Software Development. (www.RebootRethink.Com)
You must be logged in to post a comment.