Software Surgery ---------------- Surgeons are a highly skilled profession. They have to learn their trade and gain experience over many, many years. So do software engineers. Surgeons hold the lives and health of their patients in their hands. Software engineers often hold the health, if not the life, of companies in their hands. So, why are software engineers treated so badly compared to surgeons? They are rarely head-hunted by leading institutions, although their managers are - in comparison with surgeons. While the MDs of the hospitals might get headhunted, the best surgeons are also massively in demand. Software engineers are hired more-or-less by accident. Both careers have a high degree of specialisation and both have a bestness that is hard to define. While most people in the fields can tell a really good surgeon or a really good software engineer, even the best surgeon has their failures, and so do software engineers. In the case of surgeons, a high death rate could be any number of causes. Possibly the patient turned out to be more ill than it appeared from "outside", possibly the surgeon is taking on more serious cases than another comparable surgeon. Skilled surgeons, however, are highly respected. They carry authority and their opinions are considered to have value. Software engineers, by and large, are not. They do not get promoted. Non-techical staff overrule them on technical decisions. The career software engineer will end his days at the same desk he began it, while managerial staff are rewarded with cars and stock and position and power. Surgeons learn throughout their careers by attending conferences and learning as a community. Software engineers rarely do. They get sent on "courses", often as a matter of form-filling for company policy. They get sent on Lotus Notes user courses. Which is akin to sending surgeons to needlework classes. While it might seem at first sight to be relevant, surgeons don't need to be able to sew fancy patterns - and sewing sutures is not needlework. Software engineers don't need to be taught to use a broken collaboration tool. Software engineers are carefully firewalled off from the email lists and discussion websites that make up their community learning. If surgeons were treated like software engineers, operating theatres would have a lower cleaning priority than managers offices. Managers would decide which instruments would be used, what procedures were allowed - surgeons would be forbidden from using modern, efficient techniques. If they failed to follow the managers arcane rules about where they were and were not allowed to cut, they would receive written warnings and be sacked. Instruments would be inspected by people who would never wield them and then arbitrarily forbidden from use. The restricted set of instruments would not be the best that money could buy - they would be dull, rusty. Their operating rooms would be noisy with all manner of people walking through them. Surgeons used to operate in dirty environments with limited instruments and poor subject understanding - they were forbidden by law from having the resources to reasonably learn basic anatomy.. It took 200 years for that to really change. Centuries went by while most of their patients died on the table. Most software projects today are failures. They are the casualties of forbidding software engineers to learn together and to use proper tools. If you go to a surgeon and ask him to help you, you do not get to insist that he uses blunt, rusty instruments while he holds your life in his hands. Companies, however, every day ask software engineers to help them with their critical IT systems and then insist on the use of blunt instruments and a limited set of procedures...