If you still need help, visit Application Lifecycle Management and book in a consultant.
Source control is the backup of your code, as well as your tool for tracking changes over time.
With source control, we can share project code and collaborate with other team members. Using it allows us to track changes, compare code, and even roll-back if required. Moreover, it keeps our code safe and that is the most important part.
When checking code into TFS, a build should be triggered as per the rule Do you know the minimum builds to create on any branch?
You should not just trigger a build and walk away however – make sure that build succeeded!
Gated Checkins are great for verifying your project builds successfully before a checkin occurs, but the workflow and dialog messages can be difficult to follow. Sometimes it’s not clear what you need to do next as a developer.
Check-in policies are a great way to enforce code quality before it hits your source control repository. SSW recommends that the following check-in policies be enabled by default on your project:
Too many people treat Source Control as a networked drive. Don't just check-in when the clock ticks past 5 or 6 o'clock. If code doesn't pass its unit tests or won't even compile put your code in a shelveset.
Never allow a situation where a developer can check outcode and the code does not compile – or the unit tests are not all green. This is called “breaking the build” and the punishment in our office is 20 push-ups and fixing broken links for an hour!
Note: If you did not finish working:
New, Bug or Refactor should be the prefix.
Here are some examples:* New P112: Added a new control for DateOfBirth
Team Foundation Server is great, and one of its neat features is enforcing comments when checking in code. Without comments, some of the other built in features like History become redundant without comments.
You can spend valuable developer time on every part of a project. The bulk of time is normally spent on coding up .cs, .vb, .resx and .aspx files. However, you could potentially have the following happen if you do not include other files in source control:* lose work
tfs.your-domain.com)One of the big advantage of using TFS is end to end traceability, however this requires the developer to do one extra step to link their code (changeset) with requirements (work items). Code is the body of software, while user requirement is the spirit. Work Item association feature helps us to link the spirit and body of software together. This is especially useful when you trying to identify the impact of a bug in term of user requirements.
The best way of getting the most out of DevOps is to have a "DevOps Master". A DevOps Master is like a Scrum Master but is only interested in helping you get 100% from DevOps and it's perfectly fine for them to be part of the development team.
It's important to note that a DevOps Master is not a management position. It's simply a role that encourages the team to use DevOps in the best way possible. With a specialist knowledge of DevOps, they're in the best position to know what should change and what could be done better.
This field should not be null (Remove me when you edit this field).
The cube is by default refreshed every two hours, but what is you are about to go into a status meeting and you want up to date reports?
You can refresh the cube manually using the web services, but only from the TFS server:
This field should not be null (Remove me when you edit this field).
Having a good folder structure in version control allows everyone to know where everything is without even having to look.
Git has become the defacto standard for version control systems. It's distributed and decentralized and promotes working disconnected as default. It also takes away the pain of branching and merging and has a built in code review system with pull requests. Everybody should be using Git, and if you're not, you should be migrating the Git using one of the below tools.
Azure DevOps (was TFS) is recommended as a source code solution.
This field should not be null (Remove me when you edit this field).