When starting a new project or joining an existing one there are a number of tools and features which should be in place. I have ordered them in order both of importance and the order in which the global community learnt the painful lessons that none of these are optional.
This is based upon Project initiation - a recipe.
Short name
Google it, ensure it is available as a url, check twitter.
README
If there is no README create it now!
Source control
The only decision is public or private. It will be a git repo.
If any other SCM system is in place convert to git before doing anything else.
Decide on git usage strategy: git flow, release branches, developer forks with feature branches and merge to master.
Development machine
Do we really want to develop in Fortran under VMS? oh, OK.
Develop on the operating system you are deploying to. If you develop on OSX and deploy to debian it will bite you. Developing for Redhat using Windows should be made illegal.
Continuous Integration
Jenkins of course.
Track the code coverage, anything less than 100&percent; is not acceptable.
Static Analysis
For legacy projects Sonar establishes a baseline, for new projects it holds the line throughout the projects life.
Continuous Deployment
The closer to Continuous Deployment the fewer platform types are needed.
Measurements
Metrics enable blue green deployment and A/B testing.
Issue tracking and work planning
Just you: gitthub, team: Jira
No comments:
Post a Comment