- Feature Articles
- CodeSOD
- Error'd
- Forums
-
Other Articles
- Random Article
- Other Series
- Alex's Soapbox
- Announcements
- Best of…
- Best of Email
- Best of the Sidebar
- Bring Your Own Code
- Coded Smorgasbord
- Mandatory Fun Day
- Off Topic
- Representative Line
- News Roundup
- Editor's Soapbox
- Software on the Rocks
- Souvenir Potpourri
- Sponsor Post
- Tales from the Interview
- The Daily WTF: Live
- Virtudyne
Admin
Actually...
In smaller environments the definition of "right" changes. A LOT. And what really is important is being able to adapt quickly to changing definitions of "right" without a lot of communication overhead, because that REALLY eats up resources. You'd be amazed at how many meetings it can take to iron out small issues, depending on people's personalities and inclinations.
I think people should ideally have an intuitive brain for design concepts and notions (particularly object-oriented programming); and running a design for a sub-component by someone should be as frivolous as running an arbitrary "if" statement by your co-worker. Furthermore I don't think good design is "top-down," except on a VERY high level. Most good design comes from applying good general principles up-front and refactoring subsystems to "grow" an architecture; as opposed to coming up with the Grand Architecture (which is especially crazy when you don't, and can't, know the actual product spec).
Personally I think any such process that you're suggesting would be, and should be, ad hoc.
Admin
University of Washington has an MS in Software Engineering.
Admin
Well said. I have spent years coding but have noticed that those who have spent time on maintanence work for periods of time gain a much deeper understanding of both coding and APIs. I'm stuck doing some maintanence at the moment, but it's a fascinating learning experience and encourages your to write better and better code.
Admin
Actually, they just started offering it at my alma mater:
http://www.cs.dal.ca/undergraduate/index.shtml