Keeping it Simple
In the past months my team and I have spent some time reflecting our development processes in general and our Git workflow in particular.
One of my favorite things to do these days is questioning why something has to be that complex. Over time every single aspect of our work has become increasingly complex and many people come up with solutions to these problems. But looking at these fancy solutions often doesn't make things easier since now you have to understand why something was solved that way, what benefits it brings over doing it in a different way and if the assumption under which this solution was designed even applies to our situation.
I feel it's very refreshing to forget about everything that's out there for a moment and start from scratch looking at the big picture first, reflecting the actual problem and what's the simplest solution to it. Then think about what the limitation are to this solution and if there are ways to work around these in an elegant way or if we might want to come up with a different solution for the edge cases.
Don't confuse this approach with quickly hacking something that "works for now". In fact a lot of thought usually goes into creating a very minimal solution. After questioning and rethinking how to set up our development environments with Chef and Vagrant, how to design our build process with Jenkins and how to deploy code to production, the next thing was to come up with a Git workflow that's simple enough to bring back the fun into committing code :)