tags:

views:

196

answers:

10

In the systems-admin sector, servers and IT infrastructure is being moved into datacenters and IT staff are sometimes cut. Is it possible for the same thing to happen to software developers, that the world's software could be produced by a few massive corporations instead of by so many developers?

+1  A: 

I would argue no - in the short run. With things like TDD and paired programming and other stuff, it just seems like smaller more agile teams are the way to go.

And I always go back to things like "The Mythical Man Month". I could have a huge corporation with 1000 developers - but that doesn't mean a 1000 man hour project would be done in a day.

Just doesn't seem like it would work well

PSU_Kardi
Like the saying "9 men can't make a baby in one month".
JulianR
Unless I've been lied to all my life, 9 men can't make a baby anytime
Joe
@Joe - you made me LOL in my cube +1 to you good sir
PSU_Kardi
Heh. At first, I had written "9 men and a woman" but then I thought "nah, keep it simple, they'll get it".. :p
JulianR
A: 

Some would look to the large development houses in India and see this as a possibility once the kinks are all worked out.

u07ch
A: 

There were always attempts to automate the generation of software. To only write UML and then have the software being written magically from a program.

But sys-admins are always needed maybe not so much anymore. And there are thousands of small it infrastructure and server hosting companies out there.

It will be the same with software development. With the improving of tools and frameworks and everything the need for actual programmers will decrease. But there will always be the small companies doing custom stuff and the big companies like SAP building the big frameworks. And somebody has to write the frameworks as well.

So don't fear for your job :)

Janusz
A: 

Maybe partly, but not completely.

In addition to various sized software firms (that produce mainly software), there are many companies that need custom software as parts of their products - say, for instance, firmware for a radar device. Such companies employ lots of individual developers, and outsourcing such work is not practical nor effective, since it would require someone to create exact specs for what's needed. Creating good specs might be even more difficult than just creating the software.

Joonas Pulakka
A: 

I would argue that the availability of cheap commodity hardware and resources such as "cloud computing" increase the incentive for development be more decentralized. Massive corporations, with their huge resources, can no longer enjoying such an advantage over independent or smaller-sized development teams.

In a sense, it is like how there are a few big publishing houses out there, but still many independent authors (or groups of authors) out there. The exception would be things like all those newer "Tom Clancy" series novels, all written by a pen name that represents numerous untold authors.

Peter
A: 

I don't think that we'll see this happen.

A big part of developing software is having intimate knowledge of the problem domain that you're working in. There's no way that a single big company would be able to have significant problem domain knowledge for a large number of sectors.

Software development also tends to be part of the core that makes a company valuable, unlike peripheral support functions such as IT or HR. Outsourcing core competencies is a very dangerous proposition. Not only are there huge intellectual property concerns, but there's always the possibility that the company handling the outsourcing goes away or decides they don't want to do the work any more. If that happens, the company who outsourced the work is basically dead.

17 of 26
A: 

Good software is designed to make users productive, and mostly that means understanding peoples' jobs and how they do them. Given the huge variety of organizations and work processes within them, that requires designers and developers who work as closely as possible to the point of application. All the attempts to normalize these work processes into a single application have inevitably ended up with software that matches no one's work.

I wouldn't worry about it any time soon, based on any software development process currently available, or cencieved of.

le dorfier
+3  A: 

No.

Building software isn't an activity that scales well. If it takes one woman 9 months to have a baby, does it take 18 women one month? Someone above mentioned "The Mythical Man Month" - this problem was first covered there. At some point, communication and overhead costs of developing software in a team actually begins to hinder forward momentum.

There's also the argument that there's a factor of 10 difference in productivity between great programmers and an average programmer (or - those that waste their time posting on StackOverflow and those that don't) And the mythical (or perhaps not-so-mythical) Net-Negative Productive Programmers - those that through bad practices, bad design decisions, or in some way destroying team morale actually cause negative productivity.

Plus, most software houses specialize in a type of software, or a language, and there's new stuff coming out all the time. "Innovation Happens Elsewhere" - once you're big enough, you're comfortable doing what you've always done, so you're not going to be looking for new things that may destroy your current model.

And open source is big now - so you can't really get a big company that's going to lock out all software except for theirs. (No matter how much Microsoft wants to...)

Nate
"If it takes one woman 18 months to have a baby" Nine months is the usual length of a pregnancy!
HLGEM
Yeah, but his baby was created iteratively
Joe
LOL - corrected
Nate
A: 

Administration of servers is something that can be automated. A well-run modern server farm doesn't have sysadmins logging into a server directly anymore. Everything is deployed and managed through automation.

Contrast this with software development, where every individual program still has to be written by an actual human. There's no automation of the creation act. Because of this reason, software development is more like a craft than like an industry. An industry can scale up and out. A craft can only scale through segmentation into independent groups. This is how 1000-developer projects work. They consist entirely out of teams of half a dozen people.

So, no, unless someone invents a genuine tool for automating the act of creating software, and turns it from a craft into an industry, you're not going to see the same trend as for sysadmins. What you do see is that the craft is being taken up in low-wage countries, and that it can be more cost-effective to hire cheap craftsmen. Notice that i said "can", not "will". The largest cost of software development is communication, and communication is the most likely to spiral out of control when you offshore.

Joeri Sebrechts
A: 

Large companies will for to do this, but it will never be owned completely. For one thing, the large organizations will suffer from the host of problems that always plague large corporations.

Never bet against a single developer or small team with a focused goal and the skills to write good code. Best practices, great tools and knowledge are easily accessible by all. There is no reason (in fact there are many reasons not to) to move development to centralized organizations.

Tim