Live data from Hacker News

Hordes Of Novices

blog.8thlight.com

41–50 of 90 posts

Re: Hordes Of Novices

#41

> Is our industry doing the equivalent of offering free rides to hopeful software developers, calling them pilots, and throwing them by the thousands into airplanes just to watch them crash and burn? The evidence is pretty compelling. There's a lot of crashing and burning out there. Is that because nobody is signing the log? No, it's because some companies do a really bad job of interviewing and hiring developers. Th…

I think people underestimate how hard it is to find good developers. I've spent a lot of time thinking about it, experimenting with hiring processes, and hiring yet I still wouldn't trust my success rate very much.

The issue is that we don't have any objective measures as to what makes good software. This means that everything we do in the hiring space is subjective, which makes it really difficult to do rigorous study/improvement on.

That said, novice programmers even excellent ones are exponentially less valuable than experienced ones. But, the ratio of good developer to bad seems constant across experience levels.

In my mind the 2 biggest issues in finding good developers are: 1) the cost of novice developers. The market has driven demand so high that it is too costly to experiment/mentor young developers knowing that they will (and probably should) only provide 2 years of valuable work (1 year of uselessness and 2 of value in a 3 year hire). 2) the senseless ageism in our industry. The idea that older developers are somehow inflexible or out of touch just doesn't gel with my personal experience. The older developers who are still out developing are doing it because they enjoy it and keep up with new technology. If they didn't they would have left the profession a long time ago.

Unfortunately, this has led me to a policy of hiring a few more experienced developers instead of a more healthy mix of novice/experience. I know that makes me part of the problem but I can't afford to be otherwise.

Re: Hordes Of Novices

#43
post #35

If one doctor can transplant a heart in ten hours, can ten nurses transplant that heart in one hour? Can a hundred nursing assistants transplant that heart in six minutes? Can six hundred hospital receptionists transplant that heart in one minute? The real question is: Could the doctor do the transplant without any nurses? Could the nurses help the doctor without the receptionists?

If I wanted to be pedantic I'd say that you'd really want a heart transplant done by a surgeon, not a doctor... That said, I think the real questions is: who is Robert Martin, self-described uber-hacker, that his opinions should be taken so seriously? What has he written?

I first encountered him with this book: Designing object-oriented C++ applications using the Booch method

and really liked: Agile Software Development: Principles, Patterns and Practices.

I didn't think Clean Code was worth it though.

Re: Hordes Of Novices

#44
It is probably worth noting that Uncle Bob doesn't seem to be implying that the pilot training model is exactly the model that we should use. His point if you read a bunch of his stuff is that as a profession, we should look beyond our own borders to learn lessons from doctors, accountants, lawyers, pilots, engineers, architects, etc. to advance the level of professionalism in our profession. If software is going to make the world a better place ideas like "move fast and break things" probably isn't going to end up being a net benefit overall, especially for important, life or security critical software.

If we pile in a bunch of novices without proper training and hand them projects that involve account security, personal information, etc. we are going to keep hearing about major security breaches, password hacks, etc.

The more that the software industry has major catastrophic failures costing millions/billions of dollars, the more likely that we get regulated.

Re: Hordes Of Novices

#45

If one doctor can transplant a heart in ten hours, can ten nurses transplant that heart in one hour? Can a hundred nursing assistants transplant that heart in six minutes? Can six hundred hospital receptionists transplant that heart in one minute? The real question is: Could the doctor do the transplant without any nurses? Could the nurses help the doctor without the receptionists?

Ironically your argument fails as it depends entirely on skill level. A highly skilled surgeon could perform emergency surgery without standard resources, and you could run an emergency hospital without receptionists.

Let's not get distracted by shitty analogys.

Re: Hordes Of Novices

#46
post #20

Is our industry doing the equivalent of offering free rides to hopeful software developers, calling them pilots, and throwing them by the thousands into airplanes just to watch them crash and burn? With some exceptions, it's less dangerous when a novice programmer writes ugly code than when a pilot crashes a plane. So we shouldn't require as much caution around letting people program as we do in letting them fly an a…

http://www.wired.com/software/coolapps/news/2005/11/69355?cu...

1982 -- Soviet gas pipeline. Operatives working for the Central Intelligence Agency allegedly (.pdf) plant a bug in a Canadian computer system purchased to control the trans-Siberian gas pipeline. The Soviets had obtained the system as part of a wide-ranging effort to covertly purchase or steal sensitive U.S. technology. The CIA reportedly found out about the program and decided to make it backfire with equipment that would pass Soviet inspection and then fail once in operation. The resulting event is reportedly the largest non-nuclear explosion in the planet's history.

1985-1987 -- Therac-25 medical accelerator. A radiation therapy device malfunctions and delivers lethal radiation doses at several medical facilities. Based upon a previous design, the Therac-25 was an "improved" therapy system that could deliver two different kinds of radiation: either a low-power electron beam (beta particles) or X-rays. The Therac-25's X-rays were generated by smashing high-power electrons into a metal target positioned between the electron gun and the patient. A second "improvement" was the replacement of the older Therac-20's electromechanical safety interlocks with software control, a decision made because software was perceived to be more reliable.

What engineers didn't know was that both the 20 and the 25 were built upon an operating system that had been kludged together by a programmer with no formal training. Because of a subtle bug called a "race condition," a quick-fingered typist could accidentally configure the Therac-25 so the electron beam would fire in high-power mode but with the metal X-ray target out of position. At least five patients die; others are seriously injured.

June 4, 1996 -- Ariane 5 Flight 501. Working code for the Ariane 4 rocket is reused in the Ariane 5, but the Ariane 5's faster engines trigger a bug in an arithmetic routine inside the rocket's flight computer. The error is in the code that converts a 64-bit floating-point number to a 16-bit signed integer. The faster engines cause the 64-bit numbers to be larger in the Ariane 5 than in the Ariane 4, triggering an overflow condition that results in the flight computer crashing.

First Flight 501's backup computer crashes, followed 0.05 seconds later by a crash of the primary computer. As a result of these crashed computers, the rocket's primary processor overpowers the rocket's engines and causes the rocket to disintegrate 40 seconds after launch.

November 2000 -- National Cancer Institute, Panama City. In a series of accidents, therapy planning software created by Multidata Systems International, a U.S. firm, miscalculates the proper dosage of radiation for patients undergoing radiation therapy.

Multidata's software allows a radiation therapist to draw on a computer screen the placement of metal shields called "blocks" designed to protect healthy tissue from the radiation. But the software will only allow technicians to use four shielding blocks, and the Panamanian doctors wish to use five.

The doctors discover that they can trick the software by drawing all five blocks as a single large block with a hole in the middle. What the doctors don't realize is that the Multidata software gives different answers in this configuration depending on how the hole is drawn: draw it in one direction and the correct dose is calculated, draw in another direction and the software recommends twice the necessary exposure.

At least eight patients die, while another 20 receive overdoses likely to cause significant health problems. The physicians, who were legally required to double-check the computer's calculations by hand, are indicted for murder.

also http://en.wikipedia.org/wiki/List_of_software_bugs#Military

The software error of a MIM-104 Patriot, caused its system clock to drift by one third of a second over a period of one hundred hours – resulting in failure to locate and intercept an incoming missile. The Iraqi missile impacted in a military compound in Dhahran, Saudi Arabia (February 25, 1991), killing 28 Americans.

A Chinook crash on Mull of Kintyre in June 1994. A Royal Air Force Chinook helicopter crashed into the Mull of Kintyre, killing 29. This was initially dismissed as pilot error, but an investigation by Computer Weekly uncovered sufficient evidence to convince a House of Lords inquiry that it may have been caused by a software bug in the aircraft's engine control computer.

In April 1992 the first F-22 Raptor crashed while landing at Edwards Air Force Base, California. The cause of the crash was found to be a flight control software error that failed to prevent a pilot-induced oscillation.

http://www.computerworld.com/s/article/9183580/Epic_failures...

Osprey aircraft crash

Two weeks before Christmas in 2000, a U.S. Marine Corps Osprey, a hybrid airplane and helicopter, suffered a hydraulic system fault that should have been remedied without loss of life. A hydraulic line broke in one of the two engine cases as the Osprey was shifting from airplane to helicopter mode for landing.

According to the Marine Corps major general who presented reports during the investigation of the incident, the trouble was "compounded by a computer software anomaly." The flight-control computer stopped the rotation of the engine pods when it detected the hydraulic failure.

The pilots went through the normal procedure and pressed the primary reset button to re-engage the pods. At this point, both prop rotors went through "significant pitch and thrust changes," which led to a stall. The plane crashed into a marsh and killed all four Marines onboard.

Re: Hordes Of Novices

#48
post #35

If one doctor can transplant a heart in ten hours, can ten nurses transplant that heart in one hour? Can a hundred nursing assistants transplant that heart in six minutes? Can six hundred hospital receptionists transplant that heart in one minute? The real question is: Could the doctor do the transplant without any nurses? Could the nurses help the doctor without the receptionists?

If I wanted to be pedantic I'd say that you'd really want a heart transplant done by a surgeon, not a doctor... That said, I think the real questions is: who is Robert Martin, self-described uber-hacker, that his opinions should be taken so seriously? What has he written?

To expand on that a bit, I should mention that this question came up at a software craftsmanship meetup, after Martin had given a talk in Cambridge. (Incidentally, people who had seen him speak had been very disappointed.) The only answers to "Who is Uncle Bob?" seemed to be "He's very old" and "He wrote a book". Given his schtick is to be a sage figure of comparable stature to, say, Don Knuth or Brian Kernighan, I don't think that's good enough.

(I missed Martin's talk because it clashed with one by Herman Hauser. Industry pioneer vs methodology salesman wasn't much of a contest for me.)

I the interests of full disclosure, I should probably mention that I've had an encounter with another Martin (Micah) from 8th Light (see http://forums.pragprog.com/forums/62/topics/2753) - nice kid but I wouldn't want him writing code that I needed to rely on.

Re: Hordes Of Novices

#49
As the guy who formulated SOLID principles, co-created the Agile manifesto, and formulated the red-green-refactor process of doing TDD, I'd say that we should listen to what he has to say.

Why do we keep training programmers in university to bang out low-level unstructured code? We know better and some schools like MIT with SICP have been following a different approach, but why is this not more widespread?

Java is a horrible language to teach to new developers because it has traps all over the place that are best avoided. If a course started with DDD for a month before the first line of code is written, then perhaps Java would be OK.

I'd still like to see all developers learn some machine coding and assembler but that should be something that you leave to 2nd or 3rd year after you have a grounding in how to structure programs.

Re: Hordes Of Novices

#50
post #35

Earlier quoted context omitted.

If I wanted to be pedantic I'd say that you'd really want a heart transplant done by a surgeon, not a doctor... That said, I think the real questions is: who is Robert Martin, self-described uber-hacker, that his opinions should be taken so seriously? What has he written?

https://en.wikipedia.org/wiki/Robert_Cecil_Martin He’s the head of the agile movement.

AFAIK, not the head, but one of the founders - one of the signatories of the agile manifesto back in 2000:

http://agilemanifesto.org/

Post reply on HN