Skip to content

Instantly share code, notes, and snippets.

@johana-star
Created May 14, 2015 15:53
Show Gist options
  • Save johana-star/5027cacdb946913e3cd0 to your computer and use it in GitHub Desktop.
Save johana-star/5027cacdb946913e3cd0 to your computer and use it in GitHub Desktop.
Status Report, May 14th, on Boring Software

Last night I went and saw Ex Machina a scifi thriller that both Wryly and I enjoyed thoroughly. It was chilly and drizzly and I'm glad that we have a moment or two before summer is really here. The sun was still out when we got out of the movie, making the sky a glowing indigo for its last few moments.

During the day yesterday I spent most of my time restructuring a hundred-line procedure (parse!) into seven smaller methods. Interestingly, about half of these methods already had a comment indicating what they did when I extracted them.

I also discovered a PORO with specs that wasn't connected to anything else in our codebase. It felt good to make a commit getting rid of it. A bin commit.

I'm a little uncertain about this approach of putting refactoring upfront… I feel like I should be fixing the problem and then doing cleanup. However, I now understand parse! significantly better than I did before, and now that I've got a map, I might be able to extract into collaborator objects.

Writing these daily status reports has made me feel a bit more confident in figuring out how we attack the problems of technical debt. There are some technical strategies as well as cultural ones to making a large, calcified app into a better, more maintainable one. Service Oriented Architecture is of course, the most recent hotness, though it's cooled off some, and folks are starting to see that slicing services smaller doesn't make the codebase better, just more distributed.

Myself, I'm a strong proponent of boring software. Boring software sticks to boring patterns most of the time. Boring software is well tested with quick, and extremely mundane specs. Boring software follows the styleguide, because consistency is more valuable than a cool new way of solving the problem. Boring software is finding a standard way to solve standard problems, and not deviating from it unless there is a good excuse. Boring software is testing and documenting every good excuse, so its easy for newcomers to figure out when you're off working on more interesting software.

I checked yesterday, and boring.technology isn't available. Boring software is however. I'm tempted, but there're too many vanity domains I'm doing nothing with… luv.li for instance. Should I register boring.software? Leave a comment or tweet at me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment