Tips on staying on track: Agile and Git

I’ve always been interesting in selling software, but in the past I would get lost in features and loose track.

One tip that really helps staying focused is a combination being ‘agile’ and using Git (or any other version control system, but Git works particularly well).

If you have a hard time staying focused, this usually leads to your codebase having half baked features scattered throughout. How does this happen? Well since you have issues with focus, you jump around from feature to feature and before you know it you have lost track of what feature you are working on and what is completed and what isn’t.

Solution?

If you force yourself to work on a single user story, and create a feature branch in git (branches are cheap with git!), you are guaranteed to have a single change in your branch, and your trunk will have stable version of your project.

You can of course do things in many ways depending on your workflow, but another thing to force yourself to do is commit early and often. Don’t make multiple changes to your codebase and commit things when you have 1.5 changes on the go.

And lastly, setup a dev server on ec2 and ship your app as early as possible, it will really help keep you going during your ups and downs.

2 Likes

:+1: to all that…

The one thing that’s improved my productivity in the last year is shifting to using a combo of Github Issues capturing a user story and the git-flow tool to automate related branches. This gist captures it.

It was the chief engineer of one of our consulting clients that got me started on it by sending me this article.

My git use is fairly basic right now. I just keep to the one single branch, and push it out to multiple heroku sites (staging and early access at the moment). I’ve found heroku really useful. It’s been a real timesaver, not having to spend time setting up machines like you do in AWS, and easily being able to clone environments. Particularly as a sole founder, that’s been invaluable.

I avoid having a whole lot of half-baked features by periodically going through and polishing everything up to the point where I’m happy to deploy it - doesn’t have to be perfect. Normally I do that once a week, but there’s been a bit of a gap recently while I’ve focussed on other things.

On my list of things to do is implement feature flags so that I can hide features while I’m working on them. Ideally I’d like to move towards a continuous deployment type model.

That gitflow plugin looks pretty awesome though, thanks @imsickofmaps.