I have run into a few situations recently that made me think about when and why I would fire a contracting organization (assuming they did not resolve the issue immediately). Obviously there are exceptions, so use some common sense. But do not let an abusive relationship form where you will always come out as the loser.

Here are my tips:

If your contractor does not work in an online system where you can see all work artifacts at any time as they happen...

Fire them.

If your contractor is not transparent, showing you the good and bad that happens along the way of the project...

Fire them.

If your contractor does not engage you, the client, every day...

Fire them.

If your contractor decides on business logic without your input...

Fire them.

If your contractor does not produce demo-able work on a weekly basis...

Fire them.

If your contractor works without user stories, use cases, or some form of description for the work to be performed that both parties can understand...

Fire them.

If your contractor does not prove their architecture, scalability and performance to you early in the project...

Fire them.

If your contractor saves all the risky work to the end of the project...

Fire them.

If your contractor does not let you prioritize the work by business value...

Fire them.

If you do not trust or have confidence in your contractor after working together for 3 or more months...

Fire them.

If your contractor does not seem to care if you are happy with their work...

Fire them, unless you are happy with their work.

Now if you are in doubt, call me and I'll fire them for you.



Jayson Minard used to work here. At DevZone that is, but has been away and now snuck back to write this article while Cal was hung-over from ZendCon Happiness.

When he is not sneaking into DevZone, he strengthens his background in e-commerce, highly scalable applications, search systems, software development processes and commercial software development. He has developed far too many software systems ranging from desktop applications through extremely high volume distributed systems.

Jayson currently operates MindHeap Technology, providing technology strategy, architecture, product management and development consulting at high levels in client organizations; from architect through CIO/CTO. He works with clients such as Endeca, Boeing, ProQuest, Zend, AbeBooks, Alibris, JobMagnet and is also the CTO of TinyMassive. Previously, as CIO and CTO of AbeBooks, he rebuilt the IT organization and technology platform and brought AbeBooks to a level playing field with the likes of Amazon, Barnes and Noble, and Half.com. That success has led to a recent acquisition by Amazon.

Jayson works across PHP, Java, Ruby and .NET platforms balancing his time and experiences to stay strong in each. In fact in the PHP world he created the Zend DevZone community site and was the founding Editor-in-Chief, created the strategy for ZendCon, and led the Zend Framework open-source project. He contributed to the Java platform as the Chief Architect for the Java Business Unit at Borland creating JBuilder and shaping early Java specifications. Jayson also has experience with most major database platforms, enterprise technology and grid computing.

He has been in software development for over 20 years but still thinks he will some day be a movie producer or own a recording studio. Instead he owns WorkSpace Cafe in Vancouver which is a hang-out for people seeking a better place to work.