Linked by Yamin on Wed 9th Sep 2009 16:17 UTC
General Development I've been developing software for quite a few years. One of the issues that seems to come up again and again in my work is this concept of design and implementation. I recall it being a significant part of my education at the University of Waterloo's Computer Engineering program as well. The message was always the same. Never write code first. First you must design software by writing a design document, flow charts, pseudo-code, timing charts... then it's merely a trivial matter of implementing it. Make note of the attitude here given towards implementing. The real work is in the design, and it's just a trivial matter of implementing it. It sounds so simple doesn't it? Now, how often does this work out in real life?
Permalink for comment 383069
To read all comments associated with this story, please click here.
samad
Member since:
2006-03-31

I think your description of the business world is quite accurate.

However, you are overlooking another important world: the academic world. I use the word academic in its most concrete sense, as a collection of educational institutions, not in the sense that's used in forums where it means impractical, nebulous, or distant from reality.

In long term academic projects, programmers are part of the very user base they are writing software for. A biologist writing a program knows pretty well what other biologists like to work with. The programmer is not given a set of highly compartmentalized tasks. Rather, the programmer has a large, amorphous idea of what the program should do, and addresses the problem without the significant planning that large software firms employ. Their chief concern is to produce results that earn a publication. Writing well designed software is part of that, since the scientist-programmer must constantly refine and restructure the program to further his or her study. Programmers are given extraordinary flexibility out of necessity.

It's this very flexibility that Google uses. By giving programmers 20% of their paid time to work on any project that interests them, Google has amassed 50% of its software from this sliver of time.

It's no coincidence that the free software movement has taken hold very strongly in the software of physics, chemistry, and biology fields. It's the very nature of open software that matches science's necessity for openness in order to progress.

Because free software is now widely respected in business circles, business managers are recognizing the importance of decentralization of planning. If it weren't profitable to do so, how can one explain the success of Linux in the business world? Expect to see programmers to be given much more control over their work.

Reply Parent Score: 2