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 …

trashtime.jpg

The Purpose of Unit Testing

I was reminded yesterday that there are still many people out there who still don’t really understand the purpose of unit testing. A funny shift happened in the last 5 or so years. About 5 years ago, when I would suggest TDD or just doing some unit testing when creating code, I would get horrible responses back.  Many developers and …

continuousimprovement.jpg

When Process Improvements Don’t Make Sense

Since I joined the team at TrackAbout, I have been rethinking some of my ideas about process improvement. I have always been a big advocate of test driven development, static code analysis, and other best practices in software development. A large portion of time at previous jobs I have either spent time explicitly or implicitly in the role of improving …

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 …

automate

What to Automate – Developer Tools

Okay, so you’re convinced you need a developer tools team, or at least that development tools are important to build. Now, what kind of tools do you build? There is no answer that works universally, otherwise you wouldn’t really need to build anything.  The key is finding what things your team is doing frequently and automating those things, or finding the …