Being a junior developer in need of some money for new hardware, I have stumbled upon many of the freelancing websites, and really soon, I have gotten my first customer. Complete Project Management, CRM and simple accounting website for small business. As we have been discussing the terms, I have proposed GAE/Python/Bootstrap/NDB as that is something I am really familiar with, as I have been working on GAE projects for the past two years at my internship place. We discuss the pay, terms, non-disclosure and I offer my approach to the project (followed the path of what I learned closely).

I propose working on the backend first in three phases:

  • Company/User System + Project management
  • CRM
  • Analytic/Simple Accounting (intuit integration as he later added)

I followed up with a 2 week period of the UI developing and testing.

At first I have asked him, what are the functions you would like me to develop in all the three phases. His reply was that he doesn't have the time to prepare the document I asked him for, which I found ridiculous, and asked me to prepare one and he will edit it. Of course he never did edit. Okay, first sign of the client that doesn't have a clear picture of what he wants.

He bought a template and asked when do we start testing. So I deployed the app with just PM and Company/User login after two weeks, only to be told he cannot test on anything that is not that template. I made a replica of the theme, literally, as we cannot use the stuff that the actual theme does have (fancy inbox, calendar etc)

I told to myself whatever. The first approach I took was to create a base.html and base-nav.html and extend them in other templates, in order for the code and other stuff to be tested easily. I did made this via bootstrap. He repeated he cannot test on that.

Now I am struggling with an html page that is 4 thousand line long I have to trim to create a base.html I will extend in other templates, with all the ridiculous amounts of static files that are completely unorganized in the template files and with a boss that wants to test. He doesn't even know what he wants to test.

I have sent screenshots, deployed the app, chatted daily, but it just isn't enough to convince him we should be focusing on the backend instead of the frontend first.

It's like building a car - first he wants to built the outside parts and limit the engine, instead of first building the engine then adjusting the outside to it.

Do you have any tips on how to approach this and resolve it?

template - http://www.keenthemes.com/preview/index.php?theme=metronic_admin

  • 14
    If a client is too busy to give you specs for the project, don't be surprised if they are too busy to send you payment. Commented Jul 15, 2014 at 20:49

2 Answers 2


Consider Joel's advice in The Iceberg Secret, Revealed. Make the template look exactly as nice as how well the back-end is implemented, and provide all such screenshots and progress reports in this manner. Use wire-frames, plain-text placeholders, and similar ugliness in place of missing or broken functionality. Instead of telling your client, "it will take me X time to finish the backend," tell them, "I know this is ugly. Getting this feature working properly will take X time."

The ideal is for your client to still test the flow even when looking at the ugly proto-type. You might be able to work around this with mockups (that look right) and flow-charts, but if the client refuses to help you verify your flows, you might just be doomed.

Of course, it's somewhat too late to follow this advice.

In the future, consider using a contract to outline your client's and your own responsibilities in advance. This will lose you some customers (mostly the difficult ones), but protects you from reaching a point where everyone is angry, you've spent twice as much time as you expected, and your client refuses to pay you for failing to satisfy them.


This is normal. The customer wants something that does this and that but isn't exactly sure of the best way to accomplish this and that. You are the expert, they are relying on you to fill in the missing pieces of their vision. You need to give them enough to work with so they can say, yes that's what I wanted. Usually that's a canned functioning UI prototype. So most certainly the UI should be the absolute 1st thing to work on.

Also, it is very naïve to believe that customers have the time to be intimately involved in all the details of a project or that they know exactly what they want. That's why they hired you. You drive the project. If they are too busy to give feedback then you tell them what you are doing and if they later want changes, then point back to this: "I'm implementing the user interface screens as defined here. Please review and provide any comments by COB July 18th.". If they never got back to you then I take that as implicit approval and any changes later on will cost extra.

As for reviewing your UI. Usually it is best for you to give a demo rather than for you to expect the customer to play with your prototype and give feedback. If giving an in person demo is not possible then arrange a WebEx session or something similar.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.