Code Fisting by Matt

Code Fisting: A phrase made popular by Zed Shaw describing the act of committing large amounts of broken code, usually right before a deployment and not telling anyone (or not knowing) that the code is broken.

When you are a fistee (the person responsible for fixing the broken code) your natural reaction is to assign all blame to the fister. But there's a reason your code got fisted and it's not just because the fister was held back in the 3rd grade. Twice.

There once was a time before revision control. You worked on your local machine and at some point needed to deploy your code to a shared environment. This was a leap of faith since you had no idea what changes your teammates had made to the code since you checked it out. It was also a leap into a pit filled with angry snakes.

Then came CVS. A place to store all your code and get updates from others before making the leap of faith. However CVS was cumbersome and the common practice became (and still is in many places) to wait until the last possible moment to commit any changes. This minimizes the times you have to deal with CVS, but ensures your leap is still into a pit full of snakes.

The next evolution was Subversion. Learning from the mistakes of CVS it made commits and updates quick and painless. The new motto was "Commit often!" Unfortunately this coincided with the DRY movement, and its mottos "Refactor all the time!" and "Don't be afraid to make sweeping changes." Which brings us back to code fisting.

When you are not afraid to refactor, and you commit all the time, you're going to break shit. That's a fact.

Here are some solutions:

  1. Have clear expectations about which branches must have rock solid code in them. Trunk or master for example.
  2. Create a release or experimental branch for refactoring so you can test and share changes with other before merging them into trunk or master.
  3. Use Git to make the previous two points as painless as possible.

Frequent commits and refactoring are good things. Some communication and management are required to prevent code fisting but it beats landing face first in a pit full of snakes.

3 Comments

  • Eddie Pasternak says:

    http://www.angryflower.com/bobsqu.gif

  • Colin says:

    Thanks for the new phrase. There have been times when I could've used this at work lately.

  • Steve says:

    Thanks for the great advice to save me from being fisted.

Add your comment...

Required

Required, but not shared. Nerd's honor.

About the ZURBlog

The ZURBlog is where we discuss design interaction and strategy. We use design thinking to challenge businesses and designers to improve the products and services they create.

What's the ZURBword?

What's the ZURBword?

ZURBword.com is our thoughts on interaction design and strategy. What?

Photos on Flickr

  • 4972328732_899fe38771_s
  • 4925136982_f118e72b92_s
  • 4821798712_a59412e236_s
  • 4821797872_d7f1536a2a_s
  • 4774579941_9e8716910a_s
  • 4763601643_f0ce03a887_s
  • 4764235066_49f1ba7055_s
  • 4763591117_d8d093c510_s
  • 4764222474_373922c9fb_s

Videos on YouTube

Bookmarks on Delicious

Wanna talk? Call us at (408) 341-0600.

Hmm, not a big talker. Email us to .

Still here? Great, we're hiring.

We need people with chops to join our quest
for world domination. Want a job, nerd?

What's the ZURBword?

ZURBword.com is our thoughts on interaction design and strategy. What?

Subscribe to ZURBnews

Get our monthly newsletter, ZURBnews.
Check out the latest news and buzz »