Software Development
Points to keep in mind
- Stay organized
- Create and maintain internal best practices
- Have a direction/scope/milestones.
- Scope should be as detailed as possible, written down, shared.
- Encourage knowledge sharing among team; No single person owns the code.
- All decisions have ramifications for end users. Always detail those ramifications before making final decisions.
Approaches
Tools to use
- Version control system
- Types: SVN, Git, Mercurial
- Issue Tracking
- Trac
- Redmine
- GitHub
- Google Code
- Documentation
- Testing
- PHP Unit
- Selenium
- Infomaki
Topics
- How to prioritize work?
- We have a system for assigning levels to tickets on the Omeka trac.
- New features are almost never “blocker” tickets.
- Issue tracking software seems much better that other task management (Basecamp, to-do lists).
- Use wiki for documentation, meeting notes
- Use tickets to report issues, or request new features
- Be as explicit in ticket descriptions as possible
- have conversations about tickets in the comments section.
- When changing tickets, justify change in comments.
- When reporting an bug, should try to also add a test that helps replicate the bug, and/or add a patch that fixes the bug.
- Create and maintain internal best practices
- Knowledge sharing among team
- Having only one person know, or be responsible for, all the code is dangerous.
- Weekly meetings, where developers discuss current projects, issues they’re running into.
- Review commits.
- Share patches on specific tickets, review those
- Code review with at least one other person.