A Small Feature
08 27 2008Software engineering in a medium or large organization, especially for an existing application, is a lot different than programming at a startup or on my own. It’s not inherently worse, but it can be frustrating if you walk in the door expecting to spend most of your time writing code.
Startup
- Idea: Wouldn’t it be nice if…
- Design: You keep the idea in the back of your brain for a day or two. (You could do it immediately, but in my experience it’s better to wait a bit before implementing a great idea, because frequently you will realize there’s a better way.)
- Implementation: Code it up
- Test: Make sure your change didn’t break anything
Total time: 4 hours
Medium/Large Organization
- Idea: Wouldn’t it be nice if…
- Track: File a bug to track the issue
- Approval: Get approval to include the feature in the current release
- Design Review: Write up the design and implementation of the proposed change
- Engineering Signoffs: Discuss change with co-workers and get signoffs as needed
- Cross-department Signoffs: If the feature impacts other groups, get their signoff. (If it doesn’t, you may need to get their signoff anyway to confirm they agree it doesn’t affect them.)
- Implemention: Code it up
- Engineering Test: Make sure your change didn’t break anything
- Internal Docs: Update internal documentation, release notes, upgrade procedures, etc
- Discuss with QA/QE: So that they can test your change
- QA/QE Test: QA/QE should test every new feature
- External Docs: Work with doc writer to update customer documentation
Total time: 2-3 days, assuming things go smoothly
It’s important to note that none of the steps required in a Medium/Large Organization are unnecessary or even overly bureaucratic. Any change to the code has the potential to impact a lot of people and groups. For an existing application, no change is better than a bad change, and even a good change isn’t that useful unless everyone else knows how to take advantage of it. Going through a change control process makes it much more likely that all your changes will be good changes.



