Getting Clients and Managing Expectations

Monday, August 17 2009 -

I haven't been a full-time freelance developer for very long, but it turns out that external clients are not really that different than internal clients (coworkers).  Hopefully, the client that you work with actually understands what it takes to build an application.  However, sometimes you get something like this:

What I need or require:
A complete custom built CMS with the below Features :

- Add/Edit/Delete articles including publish, unpublish, and archive articles, simplified backend
process, with buttons customization capabilities
- Simple image gallery functionality and archive image gallery by folder/event - must include caption
and thumbnails functions
- Main theme – able to change masthead easily, colours, background, module positions/layout
- Ad module - To Accept OpenX embed code
- Migrate old articles from Joomla to new CMS platform - database
- User login and password for multiple admin user
- Optimized to handle big number of requests and multiple admin users
- Generic Mobile Version of the site
- Comments (and an online easy way to approve them)- rating function; preserving current method of
moderating comments via Gmail
- Polls with results shown in dropdown list, ease of changing background
- Search articles function – accuracy & keep for longer life span, like Google Search; longer space
- Archive articles by day, week, month, year
- RSS feeds, able to pull other feeds into the website (currently, using widgets but slow)
- Print, Email, PDF, Bookmark functions for individual article, with multiple emails
- Page navigation
- Font size controller
- Newsticker for breaking news, using scroll function
- Multiple tabs function for articles - Most Commented, Most Emailed; Latest by Hour (24Hr), Days,
Week
- Newsletter component using AWeber or ActiveCampaign 1-2-All
- Login/Registration function/form generator, to cater for e-commerce, newsletter, and comment
components, with email validation
- Tagging for Related Articles / Videos according to content.-Technocratic
- Twitter module

- Mobile Version for IPhone and Android,blackberry,
- Full Media Gallery, added support to articles "YouTube, flash, anything can be added to an article"
- Full Mobile admin control for everything and comments for "fast publishing"
- Further Theme customization, adding themes to the full site or to a specific article or a
specific category, multiple templates (at least 3) for weekdays, weekends, festivities, special need
- Big Images articles - where an article has mostly high res pictures with minimal text
- Change the main layout of the site with ease, meaning you will have full control on what modules or
components are being displayed and changing their positions on the page
- Another round of optimization
- Smart Cache with high load capabilities and reflecting changes immediately,zero wait time
- Download manager
- Full Lite site
- Allow php, javacript, css to be embedded
- User generated content (UGC) - user submit content
- Tag clouds based on categories
- Clock, calendar
- N avigation in long article
- Navigation in every section - main, lite and mobile sites
- Search function in mobile
- Dropdown menu
- Content glider, using slideshow bar with pix to highlight stories/articles, for Blurbs
- Bookmark funtion
- Tool tips function



What I already have versus what the provider will build:
This is a redesign of an existing website, and the design will be given and it will just have to be converted to CSS.

Other context/requirements that providers will need to know:

The CMS has to written in PHP and preferably using the Zend framework

The website must be able to do caching as it is a high load website.

Specific expertise that I am seeking:

- PHP
- MySQL
- Linux
- Zend Framework
- Optimization

Timeframe for delivery:
I need to have this up and running within 3 weeks.

That's quite the list of requirements.  I found this request on a freelancing job board over the weekend, and I was absolutely shocked for a few reasons.  First, they actually have requirements listed so the potential providers can actually try to give an accurate estimate.  On these job boards, that almost never happens.  That was the good shocking thing.  The rest, not so good.  Check out the very last line: "I need to have this up and running within 3 weeks."  I could get a very simple CMS built in three weeks time, but that would only encompass the first three or four items in the requirements list.  If you look at some of these requirements, it's pretty crazy to assume that this could get done in three months, let alone three weeks.  Just a few examples:

  • Generic Mobile Version of the site
  • Print, Email, PDF, Bookmark functions for individual article, with multiple emails
  • Mobile Version for IPhone and Android,blackberry
  • Full Media Gallery, Added support to articles "YouTube, flash, anything can be added to an article"
  • Full Mobile admin control for everything and comments for "fast publishing"
  • Smart Cache with high load capabilities and reflecting changes immediately zero wait time
  • Full Lite site
  • Allow php, javascript css to be embedded

I just picked out the things here that would definitely take at least three weeks to develop each.  Also, with that last item, I'm not a PHP person, but I don't have any idea how you can embed server side code (PHP) into content and somehow have it function.  Embedded content gets retrieved by the server side code, which means that it's too late to run additional code.  It's highly unlikely that a very large team of developers could complete this project in three weeks time, unless it was the team that already does a CMS with 90% of these features already in place.  But, of course, this site is currently using Joomla, which already does have 90% of these features, but apparently the client wants something completely custom, otherwise there'd be no need for a new solution.

The last shock to my system was the budget, which I didn't include above.  The budget is between $1000 and $5000.  Even if you use the incredibly low rates of those really low-quality offshore Indian development firms, this maxes out at about 250 developer hours.  I'm absolutely sure that none of those firms would be able to complete this project in that amount of time, since even if they threw a host of developers at the project, the total hours doesn't change.  Of course, the client has gotten bids on the project, almost all from Indian development houses.  The bids themselves are sealed, but I'm guessing that they are all in that desired price range, probably even on the lower end of the range.

This is why I have just about given up on these freelance job boards, including all of the "higher-end" boards.  They have all been taken over by offshore development houses that pay their developers less than a fast food employee gets paid here.  In software development, though, you do get what you pay for.  The reason that these developers are so cheap is that they have almost no training or experience.  And what little training the do have usually is given to them by people equally unqualified for the job.  This is by no means an offense to Indian developers everywhere, I have worked with several that are absolutely spectacular developers.  But they are not the ones that work for these firms.  They come to the US or Europe, or otherwise go off on their own, because they are smart enough to know that they can make a lot more money with their skills.  For example, a friend of mine has been in the US for five or six years now.  He saves most of his money, but still has a good life here.  His plan is to work in the US for ten to fifteen years, and then move back home to India, where he (and his family) can probably live off of what he's made here for the rest of his life.  He won't do that, of course, but it does give him a great security blanket.  Why don't the rest of the developers in India do this?  Because they clearly are not good enough to compete for jobs in the US software development market.

So then the question becomes, how do these companies continue to get jobs if they provide such low quality work?  First, there's the price factor.  There can definitely be sticker shock when a potential client sees the price of a full-time or freelance software developer.  These offshore firms offer hourly rates often one third to one eighth of what a US developer would cost.  Even if a project takes ten times as long to accomplish, they still only see that finite number.  It amazes me how so many business people seem to completely forget about opportunity cost when it comes to software development, especially in this day and age, where applications and websites are such a huge part of a business.  Not only is there lost business because it takes you longer to come to market, but there is also the lost enhancements that could have been done in that same time period. 

The second way that they continue to get clients is that they massively over-promise and under-deliver.  Like I said above, the sample client has received bids on their project, and I have no doubts that the bids are all within the requested budget and timeframe.  I also have complete confidence that the project will not be completed on time or at budget.  I have worked with several of these types of firms, and I know others that have done the same.  Every project involving an offshore firm that I've ever heard about almost always follows this exact script:

  • Firm gets requirements
  • Firm gives price and time estimate
  • After time estimate passes, firm has almost nothing complete, asking for more time
  • Original go-live deadline passes, and firm is still nowhere near completed
  • Client finally has to bring in local resources (internal developers or freelancers) to finish (or sometimes completely redo) project
  • Firm starts playing the blame game, typically that the requirements kept changing when in reality they didn't really understand the requirements to begin with
  • Client has to pay the firm AND their local resources for the project - costing significantly more than what was originally estimated

Obviously, this is not the case of every project that gets sent offshore, but I personally have not heard of many cases where an offshore team has met their price or time estimates, even on fairly simple projects.  And with the cases where they did meet their estimates, it was only when the firm had a guaranteed working relationship already with the client, and their estimates were incredibly bloated to account for the slowness in development time.  While I was at Reader's Digest as a contractor, I was asked to review the estimate for a small project that their Indian offshore team provided.  They had estimated over three months to complete this project.  My estimate was less than three days.  When questioned about the discrepancy, the lead from the Indian team said that he knew it would take less than three months, but they wanted to be safe.  It's one thing to make sure your estimate accounts for contingencies and can actually be completed on time (my estimate even accounted for that - it was really only about 5-6 hours of work), but this was ridiculous. 

So now, the final question is, how can we, as freelancers, both manage client expectations AND compete with these firms that promise the world?  This is a very tough thing to accomplish.  First, in order to get your foot in the door, you need to sell yourself.  For an online job board posting like above, this is incredibly difficult to do.  An e-mail or message from a website can almost never accomplish this, no matter how hard you may try.  I can explain how my estimates provide higher quality work and are guaranteed to be met, as well as explain how I believe that the low-ball estimates are pretty much a joke as well as anyone in an e-mail, but a client, especially a new potential client is not going to take that for anything more than blowing smoke, just like what they are receiving from others.  In person (or at least by phone), however, a client can tell by the inflection of your voice the conviction that you have in what you are saying.  By taking the time to actually talk to them, they can see that you are serious about wanting to help them meet their needs.  Testimonials, references and a good portfolio can all help sell you to a client, but I think it is much more valuable to be able to have a strong interview and be able to converse with your client openly and honestly.  Even more important is to both be sincere and perhaps more importantly appear sincere about said openness and honesty.  I worked with a guy that probably was always telling you exactly what he felt was accurate, but his tone was so completely insincere sounding with everything that he said, no one believed him anyways.  Because of that, he never really got any of the good projects, and didn't end up lasting very long at that job.  You aren't going to get every job this way, but you will probably get the better, more enjoyable jobs, which is, at least for me, the desired outcome anyways.  I would rather work with clients that understand quality than those that are just looking to throw something out there, no matter how bad it may be.  Those clients are typically the ones that are more successful anyways, and will more often have repeat work for you in the future.

Once you've got that first client, you need to focus on keeping them and also using them to get other clients.  The best way to do this is to just do your job and do it well.  To this date, my greatest achievement in my career is that in over ten years, both as a freelance developer and a full-time employee, I have never missed an agreed-upon deadline for any project, and said projects have always been of the desired quality.  Part of the reason for this is that I am always communicating with my client and making sure that they know what is coming.  If they want to make a change in the requirements, I let them know immediately how it will affect their deadline and budget.  The client needs to understand that I am a finite resource and when additions are made, something has to be adjusted to account for that.  Typically, a good client will understand that and will work with me to either adjust a deadline to account for the new requirement, change the new requirement into something for the next version, or will choose to drop something else that hasn't been completed that is less important than the new requirement.

All that said, I have still missed deadlines, but those are deadlines that were given to me without asking for my input.  In those situations, I have always said in advance that I will likely not be able to complete it in the timeframe desired.  This is something that happens in the full-time world more than in the freelance world, however, because you have less say in what you work on when you are a full-time employee.  As a freelancer, you have the ability, and in my opinion the duty, to not take a project with a deadline that you cannot meet.  It's your duty both because your client has put their trust in you, and also because your own livelihood depends on it.  If you do your job well, and get things done on time, you will get more work from that client.  In addition, that client can become a reference for you for future clients, which is what helps you sell yourself to those clients, and with that, the cycle is completed.

What all this comes down to is a few simple things: sell yourself, be honest, communicate regularly and do good work.  You do these things, and your clients will come running back to you whenever they need something done.

Similar Posts

blog comments powered by Disqus