How to Keep Your Job
An anonymous reader submits: "Dave Thomas of "Pragmmatic Programer" fame presents the first in a series of slides based on presentations about how programmers can maintain job security in this time of increased competition, cost cutting, outsourcing, etc. He makes several excellent points about things many programmer may not think about such as the dangers of over-reliance on one company or sector, the importance of diversity of knowledge, the fact that foreign programmers CAN produce quality code, and the fact that time does NOT necesserily equal value (the Everquest Syndrome) when it comes to software engineering. There is a lecture that goes along with the slides, but a great deal can be learned from the slides alone. Worth the read..."
Saying any individual coder is at CMM 4 only works if one person is the entire process.
I'm pretty convinced that any project with one or only a few developers is CMM Level 1, regardless of what the CEO brags about. The CMM implies bureaucracy, where there really needs to be additional people on staff to handle all the documentation. Other people are needed to enforce the process. There also needs to be extra managers to handle all the new communication overhead. Don't forget the payroll people to handle all the new accounting practices. Oh, and there's the system administration overhead of all those CM tools.
I'm pretty convinced that the CMM is relevant only to those companies big enough to rival governments in sloth and politics, where some rule of law, essentially, is needed to keep everything moving forward.
Healthcare article at Kuro5hin
"[Consultant co] claims their offshore operation is CMM 5. You wouldn't notice from here. Project timeliness, quality, and budget targeting aren't noticably better than before, when we were about CMM 1. I think [employer] is realizing some ROI from run of the mill maintenance and such, but for any new work needing a little innovation or [industry] knowledge, forget it. We have to spec practically down to pseudocode to get useable apps back, so all the savings from coding go right back into design. :-P "
"True, once the hand-holding is out of the way they usually deliver as promised. More often than not, anyway. Maybe more often than we could beforehand, but it still isn't a dramatic difference. Cripe, with 60% of the budget going into analysis & design, it's hard NOT to hit late-phase milestones. (We used to feel lucky to get a third of that.)
"I have to wonder though if the difference is CMM 5, or if it's because they're away from the politics and constant priority juggling, or if they can just afford to throw bodies at the task as necessary. It still seems like a lot of work is late and/or buggy and/or out of spec and/or all but unmaintainable. And guess who gets blamed when that happens!
"GRRRRR!!! Aren't you glad you asked?
Life is like surrealism: if you have to have it explained to you, you can't afford it.
Whenever possible, go for java instead of C#. Go for PHP instead of ASP.
If your at the level where this advice makes sense to you, go the local university and enroll in something that isn't programming realted.
All the best coders I know started with assembly language and not one of them started in a high level language. Real coders can work in machine code if needed because they understand whats going on at the low level.