Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Programming IT Technology

The Pragmatic Programmers Interviewed 162

jpkunst writes "An interesting interview at the O'Reilly Network with Andy Hunt and Dave Thomas, authors of The Pragmatic Programmer, who recently started their own publishing company. Many topics are covered. Dave has this to say about outsourcing: 'To get job security, developers need to position themselves as highly effective business-value generators, working with the rest of the company to solve common goals. If you sit in your cube waiting for a spec to be thrown over the wall, then you may be in for a wait -- that spec might be in an envelope on its way to Bangalore'"
This discussion has been archived. No new comments can be posted.

The Pragmatic Programmers Interviewed

Comments Filter:
  • I am a sysadmin (Score:3, Insightful)

    by ObviousGuy ( 578567 ) <ObviousGuy@hotmail.com> on Saturday June 26, 2004 @01:06PM (#9537766) Homepage Journal
    Let's see him try to send that spec through email. hehehe.

    But seriously. System adminstrators seem to be about the only job you can't send overseas. The real programming jobs are all done in India these days, with planning and scheduling handled to a lesser extent in the U.S. since the collapse of the dot.com boom.

    I don't begrudge the engineers in India, I actually think they are doing a very huge favor for most of us left in the U.S. They are relieving us of the cost of developing simple UIs and basic programmatic functionality while allowing us here at home the ability to spend time designing instead of coding. We can then send our designs overseas to the programmers in Inida for implementation.

    But system administration still can't be outsourced. Programming can be, but sysadmin'ing and program designing (what's the right word??) can't be done by foreigners. It's got to be done right here at home by people whom we trust implicitly.
  • by Qbertino ( 265505 ) <moiraNO@SPAMmodparlor.com> on Saturday June 26, 2004 @01:09PM (#9537785)
    'To get job security, developers need to position themselves as highly effective business-value generators, working with the rest of the company to solve common goals. If you sit in your cube waiting for a spec to be thrown over the wall, then you may be in for a wait -- that spec might be in an envelope on its way to Bangalore'

    The man is so right on. I went freelancer a year ago myself. I have to stick right to the processes and problems in order for my IT stuff to deliver results that count. That's when IT work starts to be fun, actually has a meaning, produces happy customers and - on top of that - brings in the cash. I can only second what he says.
  • Specs (Score:4, Insightful)

    by haystor ( 102186 ) on Saturday June 26, 2004 @01:11PM (#9537802)
    Anyone notice that in their efforts to use outsourcing, companies are willing to commit themselves to levels of specifications that are just insane? I'm doing this right now. I'm writing up specifications that are so detailed it would be just as easy to write the code. Of course, if I was writing the code I would be discovering bugs at the same time and problems would be corrected sooner. I figure the number of our analysts is equal to the number of analysts and coders we'd have needed for a similar local project. All the money spent on outsourcing could have just been spent on documentation.

    Outsourcing in my limited (just this 1 project) seems to be a good way for consultants to draw a fat fee while they manage the outsourced project. It is like watching someone buy something expensive but they're happy because they saved 20%. Not posting anon just in case this will get me fired and force me to move on.
  • Re:Specs (Score:4, Insightful)

    by ObviousGuy ( 578567 ) <ObviousGuy@hotmail.com> on Saturday June 26, 2004 @01:18PM (#9537844) Homepage Journal
    A couple of things.

    1) If you were as good as you say you are, wouldn't you be able to find problems with the spec at the outset rather than at the implementation level?

    Most serious specifications (which apparently you seem to be working on) get their spec bugs worked out right at the beginning, finding places where the spec simply contradicts itself or leaves gaping holes.

    Implementation-level bugs, with a proper specification, are usually the coder's fault and not a problem with the spec.

    Surely you aren't trying to 'dive into the code' before the specification is complete? But hell, I've known programmers just like that...

    2) Do you think you can do a better job writing "for (int i=0; iMAX_LEN; i++)" better than anyone else? Do you really think that coding is the most important part of program design?

    God help us if we base our economy on such shortsightedness. Frankly, it baffles me that we continue to think that brown people can't code as well or better than us here in the U.S. Fact is, coding is nothing special. Coding is what you get when you feed a set of commands through an interpreter. Sure the interpreter is trained, but it doesn't mean that the message is any better.

    Concetrate on making the message (program) better, and then pass it along to cheap coders. You will do your company a huge favor in cost savings, and you will see your product finished with the least amount of hassles (because the complaints are being made 1,000 miles away).
  • fuck value-added (Score:2, Insightful)

    by Anonymous Coward on Saturday June 26, 2004 @01:20PM (#9537851)
    My company has cut back on my health benifits, increased my personal contribution toward them, withheld raises and bonuses the last four years, restructured a thousand times until it's hard to know which way is up in our organization (or which organiation we're even in at a moment) and are constantly putting us under the moral-degrading "layoffs may be pending" glass.

    Exactly why should I feel motivated to add value to a company that is taking value away from my employment?
  • Job security? LOL (Score:5, Insightful)

    by cubicledrone ( 681598 ) on Saturday June 26, 2004 @01:27PM (#9537883)
    To get job security, developers need to position themselves as highly effective business-value generators,

    ..and since nobody knows what the (*&%#)@$ that means, it provides every company with an automatic, built-in excuse to fire anyone, anytime, for any reason.

    Business 1
    Employees 0

    working with the rest of the company to solve common goals.

    Goal of the company: fire everyone as quickly as possible to save money so we can afford extra buffalo wings with our catered lunch.

    Goal of the employee: to try and stretch seven weeks of stagnant, inadequate wages to pay for 12 months of rent, since ain't no FUCKING WAY this job is going to last two months.

    Companies and employees no longer have common goals because middle management has put a great deal of thought and effort into making the workplace a toxic, hostile, adversarial environment which makes it much easier to keep the Just-In-Time-Fired(tm) policy generating quarterly revenue savings and bonus checks.

    Working 80 hour weeks for piss-wages in a 19th century management structure is way way WAY past obsolete, and the workplace is a festering sphincter of liars, cheats and misery. Let's talk about fixing it instead of trying to be a "team player." We could start by replacing office politics with something that doesn't actively and constantly diminish good ideas and positive thinking.

    Oh, and yes, I'm bitter.

    I'm also right.
  • by RLiegh ( 247921 ) on Saturday June 26, 2004 @01:28PM (#9537889) Homepage Journal
    generally isn't made on the basis of skill or knowledge but on the basis of how much they want to spend for a certain task.

    All the training in the world will not matter if someone is bangladesh is able to work for what would be starvation wages in your country.
  • by Anonymous Coward on Saturday June 26, 2004 @01:28PM (#9537890)
    I am a programmer, but my main value to employers is that I spent ten years working in other capacities: management, sales, construction grunt work, you name it. As a result, I usually don't *need* specs from analysts or product managers, because I usually have more business experience than most of them and can figure it out for myself.

    Most of the programmers I've worked with lack this experience, and as a result end up having to be told what to do because they don't understand the full context of the problem they're being asked to solve. They often come up with elegant solutions to the wrong problem...
  • In other words (Score:5, Insightful)

    by melted ( 227442 ) on Saturday June 26, 2004 @01:32PM (#9537915) Homepage
    >> position themselves as highly effective business-value
    >> generators

    Yeah, just like our bosses, let's talk about how "highly effective" we are and how much "business value" we generate. Let's do it INSTEAD of work, because that's what management seems to have been doing very successfully for the last decade.

    How about BETTER MANAGEMENT? How about managers who, in fact, know what the fuck they're doing and have come from the very bottom, not straight from some stupid MBA program. Where the heck are you going to get them if all your "very bottom" is in India? Do you seriously think that folks who have no idea how software is built can successfully manage Indian technies? Think again then, "highly effective business value generator".
  • by Anonymous Coward on Saturday June 26, 2004 @01:34PM (#9537920)
    Start up a union in the shop. Get everyone that does the work in your company to agree to strike. It's tough to get someone to train his replacement when everyone in the shop is on strike. They can shut down the whole shop, or listen to your demands. The difficult part is getting the union formed before your bosses find out and sack your ass for trying to ruin their profit margins.

    Only rich people can get any traction in the capitalist world we live in. Unions are the little guy's way of creating a rich person front to deal with other rich people.
  • by melted ( 227442 ) on Saturday June 26, 2004 @01:35PM (#9537929) Homepage
    And guess what will happen to his company when there are enough IT jobs around. They'll go titsup very quickly, because mistreated "business value generators" will simply throw in the towel.
  • Re:Specs (Score:4, Insightful)

    by haystor ( 102186 ) on Saturday June 26, 2004 @01:39PM (#9537950)
    We have higher level of design done. We've got all the patterns nailed down. We're sending specifications to them at the class level.

    You're right. Coding is nothing special. In fact, it's a very small part of doing the job. It's roughly 20% maybe? I won't dispute programmers are roughly the same everywhere but if we hire 3 more analysts because the programmers won't be local, we could have just hired 4-5 local programmers instead.

    The benefits to hiring a local programmer are many. You can start them when you need them. You can have them work on ancillary tasks much easier to fill time (this becomes a problem when you've scheduled offshore resources and you can't deliver tasks for them for whatever reason, you still owe them). The turnaround time for resolving an issue is nearly immediate compared to the day long delay caused by time zones working with India.

    Don't get me wrong. I'm sure there are projects where it's wortwhile. Especially projects that already know everything about the product. I just can't get over the feeling that I'm part of (and beneficiary of) a conspiracy to use offshore work to actually produce *more total revenue* for the consulting firm than the client would be willing to pay for locally. Again, this is why I hate my job.

  • by Theovon ( 109752 ) on Saturday June 26, 2004 @01:40PM (#9537955)
    It's amazing the things you can get away with when you're one of the top contributing engineers at your company.

    Not to say that what I "get away with" is anything more severe than coming in late a lot, but still...

    Also, when you're a top engineer, you can do stuff like yell at the boss and tell the CEO when you think one of his ideas is stupid or something like that.
  • Re:I am a sysadmin (Score:5, Insightful)

    by sql*kitten ( 1359 ) * on Saturday June 26, 2004 @01:54PM (#9538047)
    But system administration still can't be outsourced.

    You think?

    What if the data centre itself moves to India? What if all your desktop users run all their apps via Citrix, with the server farm in India? Sure someone has to physically set up a network in your office, but then all the routers and switches can be remotely administered.

    Unless by "system administration" you mean changing toner cartridges and cleaning sticky mice. Yeah, that can't be outsourced.

    It's got to be done right here at home by people whom we trust implicitly.

    You trust your bank, right? Their call centre is probably in India by now. Very very few jobs can't be outsourced in one way or another.

    Except for management, you might think. Well, you'd be wrong. Managers in the US have this dream where all their work will be done at low cost offshore, and they'll rake in the profits at home. What happens when the offshore companies realize, hey, we know everything we need to about the business now, we've done all the work - why do we need management over in the US to cream off the profits? Already there are Indian companies like Tata and Wipro doing an end-run around US-based consultancies and pitching direct to customers. Won't be long before there are actual Indian investment banks, telco equipment manufacturers, accountancy firms, competing directly with US-based firms who now have no staff of their own.

    The US in particular and the West in general doesn't realize that it's simultaneously educating its competitors and losing the skills needed to compete. In 10 years, all those hollow management-only companies will totally implode.
  • by Anonymous Coward on Saturday June 26, 2004 @02:14PM (#9538174)
    and since nobody knows what the (*&%#)@$ that means, it provides every company with an automatic, built-in excuse to fire anyone, anytime, for any reason.

    Umm, it means that you need to earn the company more than you cost it.

  • by cubicledrone ( 681598 ) on Saturday June 26, 2004 @02:19PM (#9538202)
    Umm, it means that you need to earn the company more than you cost it.

    Umm, no. It means you get down on your knees and beg for your job on a daily basis.

    And no company will EVER honestly state what an employee "earns" for them.
  • Re:Specs (Score:2, Insightful)

    by Anonymous Coward on Saturday June 26, 2004 @02:19PM (#9538203)
    >1) If you were as good as you say you are,
    >wouldn't you be able to find problems with the
    >spec at the outset rather than at the
    >implementation level?

    If you were as good as you think you are, you would have known the answer (hint: the answer is not "YES"). Why? Because in a lot of cases you can not know that something is inconvenient for the user until you actually start using it (this applies to GUIs, APIs, CLIs, nearly anything). With a LOT of foresight and experience you can foresee many things but not all and not always..

    Same thing with any performance problems, in many cases you won't know which part of your design may affect performance in what ways until you actually start using the software.

    And of course your requirements are going to change making big parts of your design meaningless.

    >Surely you aren't trying to 'dive into the code'
    >before the specification is complete? But hell,
    >I've known programmers just like that...

    Hell, I have known projects which have never got to the coding stage! (b/c they got boggled in design). I have also known projects which spent enormous time on design, did write the code, which had to be rewritten a month later b/c code turned out to be unmaintainable, slow, etc

    >2) Do you think you can do a better job writing
    >"for (int i=0; iMAX_LEN; i++)" better than anyone
    >else? ...Fact is, coding is nothing special.

    Are you by any chance implying that everyone's code is similar in quality? Then I am afraid you simply don't have enough coding experience.
    Coding quality varies ENORMOUSLY from coder to coder. Why does it matter? Simple, the code will have to be maintained. The best code btw is almost universally the code written by people who also designed this particular piece of software.

    To summarize: every project requires its own amount of upfront design. For most business project out there the right amount of upfront design is quite small (5%-50% coverage of the problem). And if you do more upfront design than needed you will make your project more expensive So the original poster was very right: having to do 100% of design/specs upfront is likely to make his project much more expensive and more likely to fail/produce irrelevant code than mixing coding and design...

  • Absolutely right (Score:5, Insightful)

    by ceswiedler ( 165311 ) * <chris@swiedler.org> on Saturday June 26, 2004 @02:29PM (#9538277)
    I work in an IT department of a large company. The reason I'm confident that I can't be outsourced is because I'm not just a programmer. I do design and business analysis as well, meaning that I use technical tools to solve problems for the business. You cannot outsource problem-solving, because it requires communication with and knowledge of the business and its problems.

    Even if 100% of programming were outsourced, application design and specification will always be done on-site. If businesses go this route, then what will happen is a meta-programming specification language will emerge. On-site 'analysts' will produce a 'document' in this specification language, and this will contain around 50% of the complexity of the finished application, which is why it will need to be in a very precise and well-defined language.

    In order to communicate with a computer, you need to be extremely precise and know what you're doing. There's a complexity of information problem, because a computer can be told to do basically anything. I can't type one line and get a complex program. In the same way, I can't just tell a programmer 'write me a database app which does our accounting' either. I have to communicate my knowledge and requirements to the person. Depending on their prior understanding of the problem, that will be anywhere from 25% to 75% of the information in the finished program. You save a little because humans are (variously) intelligent, but really, you have the same problem--communicate the rules and behaviour of the application.

    I like programming computers because it's an interesting way to solve problems. But it's my problem-solving ability which gives value to my company, not my ability to type in C.
  • by Anonymous Coward on Saturday June 26, 2004 @02:52PM (#9538413)
    You write this message full of vitrol and then dare to complain that office politics diminish positive thinking?

    Go to Europe. They have job security there.

    Here, you are expected to make something for yourself if you have good ideas. Start your own company or go to one that appreciates you.

    Might I ask what kind of job made you bitter like this? Where did you work, what did you do?
  • by cubicledrone ( 681598 ) on Saturday June 26, 2004 @03:06PM (#9538490)
    You write this message full of vitrol and then dare to complain that office politics diminish positive thinking?

    Office politics don't diminish positive thinking. Office politics make positive thinking impossible. There's nothing political about what I wrote. I'm not trying to destroy other people's careers. Like it or not, it's reality for the overwhelming majority of employees in this economy.

    I'm a great positive thinker. Item one for positive thinking: properly explain the problem. The problem is office politics.

    Here, you are expected to make something for yourself if you have good ideas.

    I did.

    Here you are expected to make something for yourself, and then not complain when MIDDLE MANAGEMENT STEALS IT FROM YOU.

    Start your own company

    With what capital?

    or go to one that appreciates you.

    No such thing.

    Might I ask what kind of job made you bitter like this?

    The kind of job where I was lied to, repeatedly. Cheated, repeatedly. Fired, repeatedly, for no good reason.

    Where did you work, what did you do?

    I was a programmer, like most of the other people here. I was very good at my job, and very knowledgeable. I contributed a great deal, I worked extra hours constantly, and I completed numerous valuable projects.

    I got fired anyway. It was then I realized that just about everything I had been told about hard work, education, etc. was a big, fragrant sack of shit.

    I went to school. I got an education, and I worked hard.

    I got

    fired.

    anyway.

    But I'm still a positive thinker. I just don't pretend that the workplace is a productive place for a career.
  • by cubicledrone ( 681598 ) on Saturday June 26, 2004 @03:29PM (#9538593)
    they have no reason to fire you.

    They don't need a reason.

    If you are draining the companies money, why do you expect to stay employed?

    I don't expect to stay employed, regardless of how much I'm earning/spending. That's the point.
  • by Brettt_Maverick ( 780722 ) on Saturday June 26, 2004 @04:03PM (#9538800)
    Completely right! Fact is, maybe 5% of professional coding is done in a 'pure' CompSci atmosphere. The other 95% reflects the true nature of computers and software - a tool to get some job done. And there is one metric hell of a lot of jobs.

    Coders in banks need to learn about interest and amortization, coders in nuclear facilities need to learn about half-lives and gamma rays, coders for phone companies need to learn about telephony, coders for mom and pop stores need to know about mom's left-hand arthritus (so avoid F1-F8).

    Not only is it relevant or valuable for coders to understand the context of the business they are in, it's vital. In fact, code-sense should take backseat to business-sense (although informed by coder-logic). Too often a tech solution will be shoehorned in when a practical solution based on knowing the business will do.

    One time I stopped a restaurant manager from uprooting and reconfiguring all of his networked terminals and printers the day before a national holdiay in favour of a solution involving no more than a sideways abacus sitting on the bar. It wasn't a technology problem, it was an information problem. For that day, and that day only, blender drinks were being made at the beer tub, not at the bar. Problem was, orders for blender drinks were printed out at the bar, not the beer tub. The plan was to rejig all the printers and terminals so that the beer tub would have a printer, and then to reconfigure the POS software to route blender drinks to the beer tub. This sounded like a lot of hassle for one day, and knowing the 'stability' of the POS system, it was a recipe for disaster. The beer tub was in clear view of the bar. All the person there needed to know was how many of 3-4 different blender drinks to make. My solution was this: get a colourful child's abacus and mount it horizontally, so the beads slide from left-to-right. Each row represents a different drink (yellow=pina colada, red=strawberry daiquiri, etc). When an order comes up in the bar, the bartender slides the appropriate bead(s) over. The person at the beer tent can see this, and make the drinks. The server collects the drinks and slides the bead back. At any time, the person in the beer tub knows how many of what kind of drinks to make, and nothing had to be rewired or reconfigured or coded. And it worked like a charm.

    Of course, over the years I've come up with a lot of elegant solutions to a lot of wrong problems, but never regretted it once. Usually, a good solution to the wrong problem is about 70% of the solution to the right problem, and even if it's not it invariably ends up being the crucual 30% of some yet unforseen problem. Software's cool that way.

    One problem that comes of being a competent and experienced coder is that managers assume you know everything and assume that they don't have to know anything, rendering them (more) useless.

    The question I always ask myself before starting any coding is: "Is this going to let the user go home early? Or work late?"

  • by Fished ( 574624 ) <amphigory@gma[ ]com ['il.' in gap]> on Saturday June 26, 2004 @06:43PM (#9539562)
    Oh, and yes, I'm bitter. I'm also right.
    The first is self-evident, the second is quite improbable.

    Look, you sound like a kid I used to know (me) so let me offer you some helpful advice. This whole thing about "business value generation" is why you have a job in the first place, and until you understand it you're going to spend the rest of your life going from one de-.com-posed job to another. The days when companies would keep people around on the theory that they would somehow, someday make the company money are long since gone. On the other hand, if you really, consistently, solve your bosses' (note the plural) problems, you will never lack for work and never get fired.

    I speak from experience. In 1998-2000, I was a consultant (UNIX systems, Networks, perl programmming.) In 2000, I read the tea-leaves, looked at the business cycle (you know, the thing Clinton claimed to have defeated) and came to the conclusion that it would be a good time to work for a major corporation who /might/ keep paying me through the recession. So, I looked at my clients - people who knew and would appreciate my abilities and compensate appropriately - and picked one to go to work at. Had no problem getting a job there, even though I suspect I was the highest salary in my group.

    Unfortunately, the company I chose was WorldCom. I spent two years looking over my shoulder, waiting for the axe to fall, while it hit people all around me. But I also spent that two years fixing the problems that my bosses' wanted fixed -- and making sure that when I had an initiative or something I wanted to do, I explained it to them in terms of /their/ problems, not mine. So, it wasn't "this mail server setup is a huge kludge and I'm sick of messing with it and its obsolete and I want to replace it with something better" but "I'm fixing this mail server now, but we could've prevented this crash with a small investment of hardware and free software, thereby avoiding client downtime." At the end of the day, I was one of the lucky few who kept their jobs.

    Why did I keep my job? Because, in the minds of my management and their management, I was a "highly effective business value generator." The people who lost their jobs didn't necessarily have fewer technical skills than me (although, frankly, a lot of them actually needed to go), and they certainly weren't disliked or unloved. What they didn't know was how to connect their job to the interests of the corporation. (N.B. Don't stab people in the back trying to get noticed. In fact, you should try to make them look good just as hard as you try to make you look good.)

    So learn this lesson and learn it well: despite what 100 years of syndicalism, liberalism, socialism, and -- dare I say it -- labor unions may have led you to expect, your job as an employee is to produce business value that can ultimately be translated into money. The company does not exist for the purpose of caring for its employees or establishing a social safety net - it exists for the purpose of increasing shareholder value. If you can do that - increase shareholder value and make sure your boss knows you do it - you will /always/ land on your feet, even if you do happen to lose your job for a while.

    That's part one of getting rich. Part 2 is "always saved 20% of your gross income in quality stocks." Part 3 is "don't be a jerk. Take care of people and they'll take care of you." Part 4 is, "have fun, whatever you do, because nobody likes a whiner."

  • by cubicledrone ( 681598 ) on Saturday June 26, 2004 @07:26PM (#9539755)
    I'm fixing this mail server now, but we could've prevented this crash with a small investment of hardware and free software, thereby avoiding client downtime

    No, you aren't, because a) you don't have the authority b) the person who does have the authority won't approve it and c) the suggestion causes several people to complain that you aren't being a team player because everyone else in the department agrees that management was brilliant for approving the current mail server.

    I've spent a few minutes in the cubicles. I know the basics.

    If you can do that - increase shareholder value and make sure your boss knows you do it - you will /always/ land on your feet, even if you do happen to lose your job for a while.

    I automated a job that saved our company about 2,000 man-hours once. The resulting shitstorm of office politics led to one of the managers screaming hysterically at us in a five-hour process improvement meeting saying that if we ever made the management team look stupid again they would dock our paychecks.

    The controversy continued for four months. The database team decided my idea was good enough to include in the next set of test procedures. The other teams all disagreed. Upper management had to be called in from their golf games. My guess is that half a million dollars was spent in meetings and overtime over those four months.

    It was later explained to me, two of my co-workers and the entire database team (in a very slow, politically-correct voice) by an HR representative (unspoken threat: open your mouth again, and you're fired) that we should write a memo explaining our idea and send it to our immediate supervisor for approval before starting any new work.

    We later found out that the Department Director (a Senior VP) with the unanimous approval of the entire senior management committee and several members of the BOARD OF DIRECTORS SPECIFICALLY ORDERED all of the group managers to ignore all such requests no matter how simple or worthwhile they may be. Those who made more than three suggestions in a month were told, in writing, to stop "wasting time on non-core projects" or re-assigned.

    Two dozen people quit. Five were repeatedly threatened with their jobs, one to the point of having to go on disability for depression. Everyone else just kept quiet. The atmosphere in the office from that point forward was indescribably gloomy.

    That was one of my few successful attempts to really do anything useful at a large company, or "increase shareholder value." I personally saved the company about $100,000. The company spent over half a million $ arguing about it and treating us all like idiots.

    It is just further proof that competent, smart, skilled employees are not welcome in the workplace.
  • Re:Specs (Score:3, Insightful)

    by jhoger ( 519683 ) on Saturday June 26, 2004 @08:38PM (#9540034) Homepage
    The mistake you make is thinking that everything that can be coded must go through a long drawn out design phase. For all code that doesn't, which I'd wager is most software that gets created on a daily basis, it is enough to know in broad strokes know what the problem is and get to work producing something that does what you want. That doesn't necessarily mean coding, but it could very well all be done by one good programmer.

    The thought that the waterfall method of hashing a spec and design out for months before any development can begin only comes from those in involved in larger projects... > 50,000 SLOCs... that are created in a herculean effort to produce a mammoth piece of software which must perform to a rigid set of specifications.

    Even in large projects, rigid adherence to waterfall method has never worked. You always wished you had spent some time prototyping (read: designing and coding) to figure out the problems you only discover after you get into implementation phase and realize there are problems with the spec.

    Good coding does require skill, that's a fact but the skill doesn't take more than 2 years to acquire, I think. Design is a more significant skill and the best programmers bring the skills of a designer to the table as well.

    The fact is that most of the time rough design and coding is done by the same person: the programmer. In such cases it rarely makes sense to spec and design then farm it out.

    If you're actually going to specify design and validate things to a degree that the only errors that are possible (a herculean feat beyond anyone's imagination) are coding errors, why bother even farming it out at that point? If the task you have created for the outsourced coder is just translating spec to code, there's barely even a task there. How many lines a day can you type when you don't have to think about it? I can code a couple of thousand lines a day if the thing is already design.

    That said I have found that corporations are on a kick that they don't want to shrink their in-house development staffs. This doesn't automatically translate to "outsource to India" which is a very big step even for large corporations. Rather they tend to rely on local software contractors.
  • Re:I am a sysadmin (Score:3, Insightful)

    by garyok ( 218493 ) on Saturday June 26, 2004 @08:53PM (#9540088)
    The US in particular and the West in general doesn't realize that it's simultaneously educating its competitors and losing the skills needed to compete. In 10 years, all those hollow management-only companies will totally implode.

    Yeah, but those new Indian start-ups will be funded by venture capital from the same people that created the investment banks and had seed money for IT companies, telecos, etc. here in the West. The same people, families, whatever, will be getting richer, the Indians will have a great time thinking they've got the tiger economy until it's rug-pulling time. The economic powerhouses seem to have been emigrating east since the industrial revolution: Britain and Europe, then the USA, then Japan, then Taiwan and Singapore, now India. Maybe some lucky Ethiopians are in for a shitload of IT contracts round about 2050.

    The folks with the big money do this to stop everyone else having the werewithall to match their power (economic and otherwise) but still allowing people to delude themselves into thinking it something special about them, about their nation, that's allowing them to prosper. And they'll do this to the next round of dummies in about 20 years time again.

    My only gripe about the way this stuff happens is that there should be more turnover at the top - you notice rich families aren't sending their sons and daughters to war now, what with death duties and all.

  • by Anonymous Coward on Saturday June 26, 2004 @09:23PM (#9540170)
    Not every company is so shit faced. Where I work, suggestions to save time/money are appreciated. I work for a very large bank in IT, and we are appreciated by the business folks that we work for and the upper management actually sees their IT department as an asset. In fact, our business colleges look to us for help to make their grand ideas concrete and implementable.

  • by Anonymous Coward on Sunday June 27, 2004 @04:17AM (#9541233)
    i know its very hard to select competent contractors but hiring ppl from the bottom barrel (cheapest) will always bound for failure
  • by quarkscat ( 697644 ) on Sunday June 27, 2004 @04:17AM (#9541234)
    When your entire data center moves to India, so does your job, buddy. But guess what? You can still get another job as a sysadmin, providing you have a current & transferable Top Secret/Lifestyle/Polygraph security clearance. The big Catch-22 is that if you don't already have the security clearance, you are fscked. It takes 2 plus years these days to get that clearance, and not too many employers want to hire someone for a job (maybe) 2 or 2-1/2 years, meanwhile paying them a living wage for some other position. On top of that, the employer has to shell out the $15 - 25K USD to pay for the background check. I have seen the exact same sysadmin positions advertised for nearly 2 years, because the employer would not hire someone that didn't already have the security clearance that their work required. (So much for the aftermath of 9-11-01, and our glorious leader's war on terrorism.) The people that do have the job qualifications AND the security clearance are still in the military. Some would get out and take that civilian job, if only their tour of duty didn't keep getting extended. Sorry to sound a bit bitter here, but if I had known 15 years ago what I know now about the future prospects for the USA's IT industry, I would have becoem a plumber or electrician. Those jobs cannot be outsourced overseas, but are instead threatened by cheap imported labor from illegal aliens. There are plenty of construction job sites in the Metro DC area where you cannot get hired if you don't speak Spanish. The Bush administration seems bent upon what it's corporate overlords want -- cheaper labor from any source possible. If you want to survive the Bush "revolution", get used to a much lower standard of living (and shuffling your feet, averting your eyes, and saying "yessir, master") for whatever job you can get.
  • Re:No, no, no (Score:3, Insightful)

    by GCP ( 122438 ) on Sunday June 27, 2004 @02:41PM (#9544646)
    This is the basic inequity of W-4 employment: All sources of income are temporary. All expenses are contracts. ...
    But a company can walk away from that employee's paycheck any time they feel like it.


    Many, probably most, states in the US have what is called "at will" employment. That means that, with only a few exceptions such as firing based on race, your employer can do exactly what you said: stop your employment and paycheck at any moment for any reason they like.

    The flip side is that, in such states, the employees are accorded the same prvilege. You can be the key developer working on a product that simply MUST ship on time because manufacturing is already contracted, the press has already been notified, etc., and you can announce at the worst possible time for the company that you are quitting, and (again, with a few exceptions) there is nothing they can do about it.

    Your comment about all sources of income being temporary with expenses being contracts goes both ways. If you are worth having at all you are a source of income to the company. If you walk out the door and they can't ship on time, they are still stuck with the manufacturing contracts, the advertising, the rent....

    Now that's the typical US system, though there are variations state to state.

    In Europe and Japan, they have more protections for the employee. Employees are much harder to get rid of. Because companies know that, they respond by being far more reluctant to hire you in the first place.

    Once you're hired, they know they can only get rid of you if you quit, so if they decide--for whatever reason, just like the US--that they don't want you around, they can't just fire you so they have to make you want to quit.

    I've worked in Europe, the US, and Japan, and if you think office politics are intense in the US, well, you haven't seen anything until you've seen politics in a place where your company wants to make you miserable enough to quit, but you're too afraid to quit because other employers are afraid to hire anybody and, therefore, will be extra careful to weed out applicants who had to be forced out by a previous employer.

    Talk about career impediments! When you can't easily hop from job to job, as you can in the US, and neither can your bosses or coworkers, then you are stuck in a political game from which there is no retreat.

    The only thing like it that I've seen in the US is in academia or government, where you can't easily go do the same work for the competitor down the street if you don't like your current management.

    W-4 employment is so unfair that no business would EVER agree to its terms as an agreement with another business.

    Businesses have no choice but to agree to these terms. "At will" employment applies to both parties. An entire team of engineers can walk out the door and cripple a company. Old fashioned strikes can do likewise. And I run a small company that has entered into agreements with big companies of the sort that you say a business would never enter into. You can essentially sell them the security of being able to get out of the contract "at will". We trade away some security for some money.

    I can explain the problem, but very few people listen.

    Since almost every adult you know works in the same world as you, you might consider that the chances that you have discovered something that all of the rest of us have missed is pretty small. As far as I can tell, you are providing no new information, just a bitter attitude that almost all of us can see at a glance is likely to impede your progress.

    I suspect that what you call "listening" is merely someone else sharing your attitude, but since most people know everything that you know about the world of work and, in addition, recognize the self-destructiveness of your attitude, they aren't going to adopt that attitude, which you define as not listening.

    I hope you'll discover the amazing opportunities of such a flexible employment system and learn how to use them to advance your career instead of letting a few failures convince you that you can't win.

The Tao is like a glob pattern: used but never used up. It is like the extern void: filled with infinite possibilities.

Working...