Slashdot Mirror


Hackers As Factory Workers?

DevDude writes "A strangely interesting article is running on MSDN, entitled: The Case for Software Factories. It suggests creating 'development environments configured to support the rapid development of a specific type of application.' As a developer thrust into many an unsavory situation, I am constantly stepping in the remnants of some development methodology or other. Will super-specialization of software development teams help the industry to push out better software faster? Or are we hassled enough without being treated as an assembly line?"

8 of 342 comments (clear)

  1. And while we're at it by Anonymous Coward · · Score: 5, Funny

    Do programmers really need to sleep and eat? What if we just give them implants and let them plug themselves into nutrient/rest bays at the factory? I'm sure it would be quite a bit more efficient. It worked well for the Borg.

  2. Food chain by Kris2k · · Score: 5, Insightful

    Programmers are at the end of the food chain buddy. That's why you need to upgrade and become part of a function that requires decision and analysis. Or , if you're looking for the easy exit, a Sysadmin :)

  3. simple by Hard_Code · · Score: 5, Insightful

    this is simple - it's the difference between the mass production line worker, and a master craftsman.

    It would be foolish to say that there is no place whatsoever for one or the other type of worker in the programming ecology (extrapolate this analogy to society and economics at your own risk).

    --

    It's 10 PM. Do you know if you're un-American?
  4. Eliminating the "Good" option. by Maul · · Score: 5, Insightful

    It has always been said with software...
    "Good. Fast. Cheap. Pick two."

    Outfits like the one proposed here elminiate the choice of "Good."

    --

    "You spoony bard!" -Tellah

    1. Re:Eliminating the "Good" option. by quelrods · · Score: 5, Insightful

      Uh since when did we have "good" commercial software? I've got mod points but I couldn't resist responding to your comment. Corporations 99% of the time pick fast and cheap. I lament the fact that we never are allowed the time to do things correctly. Software out of almost every company is massive hack on massive hack followed by massive rewrite due to lack of doing it right the first time.

      --
      :(){ :|:&};:
  5. It Won't Work Because Of Programmer's Personalitie by TheWanderingHermit · · Score: 5, Insightful

    Most programmers have a strong desire to be challenged and to solve problems. They want to use their brain and imagination. (Wasn't there an article here within the last few weeks about charactistics of good programmers?) That's why they hate cubicles so much. If you try to stuff them into "factories" where they're doing nothing but making modifications to existing code over and over, the tedium will get them.

    Those that don't quit will burn out and self destruct. While there is a surplus of IT workers, a sweatshop like this will burn through programmers fast enough that it'll only last a few years before the quality of code gets shoddy because there's no good programmers left that are NOT burned out that will willingly work at such a place.

  6. Around it comes again by crmartin · · Score: 5, Insightful

    One of the really odd things about a long career in computer science is that you often find the Big New Thing was a big new thing ten, or twenty, or forty years ago. Wilbur and TSO and VTAM become EMACS on a terminal which becomes "thin clients" (and its dual, dedicated compute time becomes workstations become personal computers.)

    In this case, we're seeing the re-awakening of the notion of "commoditizing" programming. Back in the day, it was the notion of "deskilling" programming with forth-generation languages; before that it was the development of general high-level languages like FORTRAN and COBOL; before that it was the realization that you didn't have to be either Goldstein or von Neumann to successfully program a computer.

    So, yeah, it's possible to improve programming productivity by building specialized environments for certain classes of problems. That trick worked for report programs with RPG in the 60's; works marvelously with parser generators; works pretty decently with GUI tools for UI programming now; and will undoubtedly work for other classes of programs in the future.

    Then you'll find people programming new classes of programs by hand, and a few years later someone will say "wouldn't it be better if we could do this with specialized tools?"

    And you can bet that 50 years from now the big issue will still be figuring out what you want to do, and figuring out how to describe that.

  7. Software development has gotten harder by trenobus · · Score: 5, Insightful

    In the old days of machines of 8KB of memory and sub-Mips processors, programming was easier. The space of what programs you could potentially implement was much more limited than today (although both are obviously very large spaces). Most of the development time back then was devoted to figuring out how to implement a program, e.g. how to fit it in memory and make it fast. The was no operating system and the language was assembly (for the 8KB sub-Mips machines anyway).

    Today we spend a great deal more time deciding what a program should do, since better machines have expanded the possibilities to an extent we could scarely imagine 35 years ago. But we also spend more time deciding how to implement programs, though for different reasons than before. Now we choose languages, databases, GUI frameworks, and on and on. And the basis for making those choices intelligently involves much more knowledge than was needed before, i.e. not just knowledge of the target machine, but knowledge of the capabilities of the potential languages, operating systems, databases, etc. So the how part is now much more knowledge intensive, whereas it used to be more like solving a puzzle.

    So programming really has gotten harder! Is it really any wonder it takes longer and is so often screwed up?

    How to improve the situation? Well, the what part is only going to get worse, and we want it to, because that means we can do more with computers. The how part, on the other hand, can and probably will get easier. Standardization is the easiest way that can happen, though I wouldn't call standardization "easy". Using higher levels of abstraction is another way, but the current means of achieving this is mostly through components, the use of which narrows the spaces of both what and how. The problem is that component packages often make incompatible decisions about the how of their implementation, which often makes it difficult to combine multiple packages. And that gets back to the need for standardization.