I was recently brought in to consult on a project for a mobile company here in Kansas City, (let’s call them ACME Mobile). They began building their backend platform in Java, but needing to move more quickly, they migrated to Ruby on Rails using an outsourcing company. It wasn’t long before they started having issues; that’s where I came in.

I was asked to provide a technical analysis of the platform being built and to give my recommendation. They obviously wanted to know if the application would work, but they also needed to know if it would handle their requirements. My analysis showed that it would indeed work, but that it would need some significant refactoring if it was to be the foundation for their platform. Due to their budget and time constraints, I advised them to stay with the outsourcing company and use me only to provide guidance on best practices and technical solutions.

Just a few days later, ACME Mobile called me again and asked my opinion about whether they should stay with the Rails platform or move back to the original Java platform. I was a little surprised to hear this given my recent recommendation, but after hearing more of their story, I advised them to move back to the Java platform they originally began with. Why?

I had many interactions with ACME Mobile, both in person, over the phone, and through email. Throughout all of our exchanges, it was apparent that they really weren’t comfortable with their outsourcing company. They did, however, have a great deal of faith in the initial Java application and they had a very healthy relationship with the company which created it.

When I took myself out of the picture and looked solely at the needs of the client, the conclusion was obvious. ACME Mobile really wanted to go back to the Java version of their application and they were just looking for assurance that it was the right move. More than that, the trust and sense of security which would be afforded them by going back to their original provider would allow them to focus their attention on their business rather than being caught up in just a piece of their business.

As a consultant, I could have urged ACME Mobile to go with the platform which would have benefited me most. I didn’t, because it wasn’t the right choice for them, and therefore it wasn’t the right choice for me. It is my firm belief that the contractor, consultant, or freelancer must put the needs of the client before their own needs, knowing that in the end they will come out ahead. I don’t like losing work, but I like losing sleep even less.