There Are Only Two Roles of Code

All code can be classified into two distinct roles; code that does work (algorithms) and code that coordinates work (coordinators). The real complexity that gets introduced into a code bases is usually directly related to the creation of classes that group together both of these roles under one roof. I’m guilty of it myself.  I would say that 90% of …

Tie Your Shoes and Pull Up Your Pants

What slows down the development of software? Think about this question for a bit.  Why is it that as most software evolves it gets harder and harder to add features and improve its structure? Why is it that tasks that would have at one point been simple are now difficult and complex? Why is it that teams that should be …

HTCAndroid.png

The Best Way to Unit Test in Android: Part 1

I’ve been doing some development in Android lately on a top secret project, one that hopefully will change the way you run with your phone. In the course of building this app, in a previous post I mentioned that I wanted to find the right, or perfect way, to build an Android application. I haven’t found the best way to …

cucumber depicting a helper class

Should I Leave That Helper Class?

The project I am working on is riddled with “helper” classes.  What is a helper class? Good question.  I don’t really know.  Neither does the helper class. When you ask the helper class, what do you do… he half smiles, looks down at his over-sized feet and replies with a squirrely “stuff”. How to identify helper classes There are a few common attributes we …

bad architecture

When Scrum Hurts: Mob Architecture

If you have been following my blog, you know that I have a love/hate relationship with Scrum. I’ve previously talked about why I think Scrum will eventually die and I am still pretty much convinced of that point.  Scrum has become something you sell through training and consulting.  If you make your living off of doing this, sorry, but you may …