Tech Harbor uses the systems development lifecycle model principles combined with those from agile programming methodologies as a basis for our software engineering efforts
This model helps us think of the big picture during the real development cycle. ;)
We use some agile methods to help us get there. The principles we use:
- Customer satisfaction by rapid, continuous delivery of useful software
- Working software is delivered frequently (weeks rather than months)
- Working software is the principal measure of progress
- Even late changes in requirements are welcomed
- Close, daily cooperation between business people and developers
- Regular adaptation to changing circumstances
The things we must to avoid by being fast:
- Lack of structure and necessary documentation
- Insufficient software design
- Inability to develop realistic estimates of work effort needed to provide a quote.
We're not hung up on best practices, but we want to follow them where it makes sense, like this:
- Do you use source control?
- Can you make a build in one step?
- Do you make daily builds?
- Do you have a bug database?
- Do you fix bugs before writing new code?
- Do you have an up-to-date schedule?
- Do you have a spec?
- Do programmers have quiet working conditions?
- Do you use the best tools money can buy?
- Do you have testers?
- Do new candidates write code during their interview?
- Do you do hallway usability testing?