I have some friends who need to read this...
Wow! An excellent piece, worth reading, on how successful software companies should be run. Good ideas!
There is a lot of talk about outsourcing whenever information technology is discussed.
In this article Joel Spolsky argues that software companies consist primarily of staff to support the software development teams; therefore, the outsourcing of programmers will not save a substantial amount of money.
According to the U.S. Department of Labor Bureau of Labor Statistics "jobs in software engineering are less prone to being sent abroad compared with jobs in other computer specialties because the occupation requires innovation [along with] intense research and development." Moreover, this same source projects that software engineering will be one of the fastest growing occupations in the next ten years.
Regardless of current outsourcing trends, many employers are discovering that quality is worth paying for. Employees who are able to write clean, efficient code are a rare commodity. Software development is as much a science as it is an art and talented programmers will continue to enjoy large salaries until programming is no longer necessary. Many, including myself, consider software development abilities to be on a continuum (i.e. there are many levels of skill). The lowest skilled, generally those with the least amount of education and experience, will perform the unpleasant grunt work for less pay -- much like technicians who perform the necessary but mundane tasks for engineering teams.
Management's primary responsibility to create the illusion that a software company can be run by writing code, because that's what programmers do.
From the page: "The Development Abstraction Layer"
"a system administrator who makes the Internet as available as oxygen, a tester to find the bugs they just can't see, a graphic designer to make their screens beautiful, a team of marketing people to make the masses want their products, a team of sales people to make sure the masses can get these products, some patient tech support saints who help customers get the product working and help the programmers understand what problems are generating the tech support calls, and about a dozen other support and administrative functions which, in a typical company, add up to about 80% of the payroll".
Did I miss something or has everybody forgotten about human-computer interaction design? Or is this guy just calling them programmers, the people doing the requirements engineering and the usability research?
Another nice piece from Joel. It's really an eye-opener for all the "managers". Managers would now know the reason for their existance - creating abstraction for the programmers.
Really nice article
If you've never worked for a company driven by marketing then trust me, you really don't want to. I was at one for several months where the cofounder was this marketing guy gobshite who forced design decisions on us so horrible that I'd be ashamed of the work I was forced to do there if not for the fact that he took credit for everyone else's work. Latest I've heard is that he's fired most of the staff that did actual work and the rest quit in disgust, the only employee he has left is an accountant. So at least he knows to 3 decimal places precicely how screwed he is.