Hire only good people who get things DONE.
Even if they are more expensive in terms of compensation.
Quality trumps numbers. No doubt about it.
Development Team
- 1 Lead Developer
- 1 Senior Developer
- 2 Junior Developers
- 2 Business Analyst/QA
Operations Team
- 1 Lead Systems Admin
- 1 Senior System Admin
- 6 Junior System Admins
Give your team a quiet working environment with ergonomic furniture and equipment
Give your team good internet connection
- the faster they can download their installers, the earlier they can start working on code
- the faster they can look up the solution on google or stackoverflow, the faster they can proceed to the next problem
Give your team good computer hardware
- at least dual core processors with virtualization support
- at least 8GB memory
- at least 2 hard drives for mirror setup
- at least 2 screens
Make sure to have enough environments to test, deploy and support the system properly.
- Development Environment
- Staging Environment
- Support Environment
- Production Environment
Make use of Free or Open Source systems to manage the development process.
Buy a commercial product only if you can't find a solution that fits.
Project/Issue Tracking with Source Code Management Options:
- Indefero
- Gitorious
- Gitlab
- Redmine+gitolite
Continuous Integration Server Options:
- Jenkins
- Team City
Code Quality:
- Sonar
Setup google apps for for email, calendar and other stuff
As an example, here is how I would set it up on three physical servers:
Server#1 running ProxmoxVE
- Firewall/Proxy Server/Package Cache(apt,yum,mvn) VM
- Redmine+gitolite VM
- Jenkins VM
- Sonar VM
- NFS/Samba Server VM
Server#2 running ProxmoxVE
- Development Environment VM
- Staging Environment VM
- Support Environment VM
Server#3 for storage of backups
- nexentastor or freenas or centos+zfsonlinux
I hope you found the post useful. You can subscribe via email or subscribe via a feed reader to get relevant updates from this blog. Have a nice day.