Developing software is like writing a book. It can be very time consuming at times but does depend on a number of variables. Building Windows XP, for example, took millions of man-hours to develop and maintain. ReactOS, which is an open source attempt to build a carbon copy of Windows XP, may take a hundredth of the time Microsoft took.
Whether we’re talking of OSS (open source software) or CPS (commercial and proprietary software), programmers face the same problems and obstacles; only the philosophy underlining the production is changing.
The general way software development works in OSS and CPS is often fundamentally different. OSS takes a user-programmer approach, whereas CPS is more programmer-user approach.
For example, OSS-wise, as a programmer, you identify a gap in a certain area (for example Bram Cohen found traditional P2P cumbersome and too unreliable, so he made his own), you write software and post it to the community, all for free. If other people find it useful, they will download it, comment on it and iron out its problems etc also for free.
In the CPS world, it is often the other way round. The marketing department identifies potential markets and profit zones, sends the spec sheet to the programming department, which then gets a deadline and works with that.
Features which may be classified as “wants” become “needs” and this brings about all kinds of nagging problems and often prevents software developers from focusing on what’s essential.
Microsoft, of course, is the most obvious example but profit making firms dabbling with OSS also have this kind of issue – Red Hat and IBM come to mind. You can guess, of course, that the cost of development therefore shoots up, not because of the cost of programming, but rather associated costs like marketing, administration and finance.
You can read about the ten other myths of commercial and proprietary software here.