6 ms·
One piece of the puzzle is that programming education is not very effective. Most computer science programs teach you almost nothing about software engineering,
by cynicalkane 14y ago
One piece of the puzzle is that programming education is not very effective. Most computer science programs teach you almost nothing about software engineering, partially because many CS profs know almost nothing about it.
- _yosefk 14y agoI think CS education is extremely effective, if one does the exercises himself, and as to software engineering, they don't teach about snake oil, either. It's just that there's not that much to learn that is universally applicable, comparatively. The field is young, and then computers are easier to make sense of than most things, because we made them that way. Doctors need to deal with human bodies which aren't designed for human understanding and tinkering. Lawyers need to deal with documents which aren't designed for easy understanding, either - they're designed to prevent hostile, malicious parties from screwing each other. We simply have it easier than most skilled professionals.
- colinb 14y agoI think one of the problems with software engineering is that [almost] no one knows anything about it. I've been a working programmer [or software engineer if I've just met you at a party and I think you're cute] for long enough to work on >5 multi-billion dollar projects. Of these, one was delivered on time and according to spec. That company went down the toilet within four years. I've read fairly widely in the software engineering literature starting with Weinberg and Brooks in university, and chasing my share of papers, 'blogs and web pages since then. One of the most positive things that has happened to the field is the recent discovery that the only thing at the end of the methodology rainbow would appear to be consultants [wearing suits with slits for the dorsal fins [h.t. Mr Stross]] and stacks of unread Learn Florble-Oriented Development in 21 days. I know I can build complex systems. I know I can sometimes build simple systems [much much harder.] I don't know how to reliably schedule a project to build a new thing. I think anyone who thinks they do know this is delusional or lying. And in the end, I think it probably doesn't matter. The truth of the software engineering crisis, is that it never existed. And it's possible that software engineering never existed either. We program. We do it because we like it and it pays. The folks who do it only because it pays usually end up in management fucking things up by assuming they can motivate people always and only with money. [oh, on a tangent I've also been a manager. I wasn't all that good at it. The team I managed delivered good stuff, some of it on schedule, but the company still went belly-up. And I learned that I don't enjoy management, and would rather have less money and more fun - take from that what you will]
- skrebbel 14y agoA multi-billion dollar project. I can't really imagine that. Are those ever executed by a single company all on its own? Are they software-only? Do they exist outside NASA?
- EwanG 14y agoI think timescale may be applicable here. Some key programs for large companies will spend several million a year for several years - particularly if you are taking your Mainframe applications and trying to restructure them to have more easily changed business rules and a new infrastructure. That said, I also suspect he may have been exaggerating for effect :-)
- teach 14y agoI have a friend who works for Northrop Grumman, and he just completed a $500 million project he described as "relatively small".
- clueless123 14y agoYou are kind of right that this type of projects go for years, but other than that, billion+ projects are no exaggeration..
- adgar2 14y agoMicrosoft and Apple both have multi-billion dollar projects. Edit: Google and Amazon likely don't, actually.
- jarek 14y ago> One piece of the puzzle is that programming education is not very effective. Most computer science programs teach you almost nothing about software engineering, partially because many CS profs know almost nothing about it. And mostly because computer science is not software engineering. If you want to learn software engineering, find a degree or diploma program in software engineering. Being frustrated that your computer science degree did not teach you about software engineering is like being frustrated that your civil engineering degree did not instruct you how to physically build a bridge, or that your mathematics degree did not teach you how to corporate accounting.
- nostrademons 14y agoIf you want to learn software engineering, get a job as a software engineer after a degree in CS. You will learn far more from the job than from the degree.
- jarek 14y agoSure, that could work too, it's basically apprenticeship. But it's still not the CS degree's fault or problem that you're learning software engineering on the job.