A Small Feature

08 27 2008

Software 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

  1. Idea: Wouldn’t it be nice if…
  2. 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.)
  3. Implementation: Code it up
  4. Test: Make sure your change didn’t break anything

Total time: 4 hours

Medium/Large Organization

  1. Idea: Wouldn’t it be nice if…
  2. Track: File a bug to track the issue
  3. Approval: Get approval to include the feature in the current release
  4. Design Review: Write up the design and implementation of the proposed change
  5. Engineering Signoffs: Discuss change with co-workers and get signoffs as needed
  6. 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.)
  7. Implemention: Code it up
  8. Engineering Test: Make sure your change didn’t break anything
  9. Internal Docs: Update internal documentation, release notes, upgrade procedures, etc
  10. Discuss with QA/QE: So that they can test your change
  11. QA/QE Test: QA/QE should test every new feature
  12. 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.


Actions

Informations

Leave a comment

You can use these tags : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>