It’s not enough, as programmers, to talk about code or to talking about committing code if we’re not also talking the best time to commit code, right?
Sure, some developers have their times dictated by outside circumstances. Maybe it’s an employer, maybe it’s a person who’s hired the developer under a contract, or maybe it’s some other external circumstance.
Whatever the case, I’ve found that having a set expectation as the best time to commit code can help take several aspects of the full sprint or milestone development process a bit easier especially regarding how it helps to scope a given release.
Time to Commit Code
I should preface all of this by saying that this is how I’ve been trying to run work within the context of Pressware for at least the last year.
When to Commit
As the team has grown, we’re still looking to experiment with this kind of stuff so I don’t know if it will hold, but I’ve tried to set time to commit code every Thursday evening.
This results in the following (in no particular order):
- I scope weekly milestones that set expectations for the client and myself,
- Scoping milestones per week help triage issues and requirements as they come in for a current or future sprint,
- The ability to avoid committing code on a Friday which may result in weekend emails and work (depending on the client).
This doesn’t mean that milestones aren’t adjusted. Yes, there are a few times where I have to extend milestones beyond weekly delivery, but I try to do that only in extreme circumstances (which are usually related to testing things or introducing features that are otherwise more in-depth than planned).
Secondly, you can instate a ‘no weekend work’ policy, but if you do that then I think you need to make sure you aren’t setting yourself up for feedback over the weekend by committing code on the day the weekend starts (you know, Friday).
Finally, having a Thursday commit also gives me time to create screencasts for my clients, so they know what to expect given what I’ve created.
(Yes, I’m one of those that will create occasional screencasts for the sake of making sure we’re all on the same page. It helps with remote work.)
This results in some things that I’ve found beneficial to running both a business and a project (again, in no particular order):
- this creates a predicate schedule for all of my projects which are beneficial not only my calendar, but it sets expectations for customers,
- it gives us the ability to determine what features belong in their milestone or the current milestone,
- it makes it possible to open issues (or re-open issues, if I’m honest) and move them to the current milestone if a bug is discovered.
There are more, of course, but your mileage may vary based on the type of work you’re doing. But knowing that “Thursday’s coming” always makes it easier to sit down with a notebook and scope a milestone before loading it up into your project management tool of choice.
To be clear, nothing that I’ve listed above is all-encompassing. It’s more-or-less general advice. And though it’s useful within the context of what I do, it may or may not be beneficial for you.
Ultimately, the point is to try to a find a way that’s an ideal time to commit code so that it alleviates certain points of stress is your development process and project management.
This Isn’t Law
None of the above is meant to be a recommendation on how you should be running your business or your projects. It’s simply my sharing how I do it and what I’ve found to be a good way to scope projects that alleviate stress and the feeling of pressure.
After all, it creates a predictable schedule with a definitive beginning and end. If you know how to estimate your time for a given task correctly (which isn’t always easy), then it makes it much easier to plan how you want to break a task into parts and then schedule them.
With all of that said, I’m interested in hearing the benefits of how you scope projects. I’m always open-minded into ways to make the whole project management aspect of this industry a bit easier especially in the context of contracting and small business.