Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

The Big Picture of ACME Model Development

 

Task Team Leads coordinate and schedule development relevant to their team.   They should have developers assigned to work on features in the order necessary to meet ACME's deliverables.

Task Team Leads, Chief Scientist, and Chief Computational Scientist coordinate the order that major new features are added to the model, relevant testing criteria, and when the master should be tagged (using the Branch, Tag, and Version name conventions).  Integrators should be aware of the overall schedule.

A branch for every feature:  Developers should find some unit of work that is big enough to be relevant to others, but simple enough that it can be called one feature (or perhaps a couple of highly-interdependent features) and make a branch for it.  The developer should make commits that are minimal atomic units of work to complete the feature that the branch seeks to implement.  This separation makes it easier to review and debug later.   Avoid creating "large" branches that contain many features.

Focus on your branch:  While working on their branch, developers should focus on the work necessary to complete the branch and not worry about what else is going on.  In particular, there is almost never a need to "merge from master" or "stay current" with development going on in master or other branches.   If a developer thinks a merge from master or another branch is necessary to complete their work, they should check with an Integrator first.

Testing and Merging: When the feature branch is done, the developer performs relevant testing, issues a "pull request", and designates and Integrator.  The Integrator conducts the code review, performs any additional testing and merges the branch to master.   The branch is complete and the developer can move on to other topics.

 

 

  • No labels