About a month ago I was contacted by a company who had a big job (from my perspective as a freelancer), a WordPress conversion project, and a very short deadline. I chatted with the project director, the developer and a few others and was hired to do a small proof-of-concept task to both determine if WordPress was really going to be a good platform for what they needed, and to try out my company to see if we would be a good fit.

The POC went very well. It served as a good intro for me to their site’s structure and content styles, and the client was quite happy with the results. They asked me to write a full proposal that would include:

  • Creating a custom WordPress theme based on their current site’s design. It needed to be a pixel-perfect copy.
  • Migrating about 60 pages of content to the new platform.
  • Creating a set of 6 custom templates that would be used as the basis for another 30 or so pages.
  • A good deal of custom Javascript and PHP programming to integrate with their CRM and cart.
  • Helping with the WordPress migration and installation on their Amazon host.
  • Training for the client’s Marketing and Development teams.

Taking the Proposal to the Next Level

I’ve gotten quite good at writing estimates in the last few years, but this one needed more care.

I have a spreadsheet that I use for estimating hours that I used to feed all the info I had about this project into and came up with a preliminary number, but I knew that was just the beginning; I was very afraid of putting in something that was too low and terrified of comitting to something so big and fast without some input from someone else who had been there before. I needed to find out what team members I needed to pull in and get some estimating help from a friend who runs a web development studio and has more experience with quotes for this size project.

I met with my friend and things really started to flow from that meeting. Ron had two employees that had some time available in the following two weeks, which coincided with the short deadline, and between them they could provide the custom programming and some plugin support for about 25 hours of time. This was great! He helped me tweak my estimate and get in an appropriate amount of time for project management and unforeseen contingencies, and in the end I felt comfortable with the range of fees we provided to the client in the final version of the estimate.

Filling Out the Team

Writing the proposal helped me get a better handle on who I needed for the team. I had my programing covered, but I called on another colleague familiar with WordPress to do some tasks for me like managing widget placement and SEO tags on all pages, and then put out a call on the Women Designers’ Group mailing list, where I’m a member, for a few others who were experienced with custom theming for WordPress.

I was very lucky to find two women who had the time available to commit. One had a lot of custom theming experience similar to mine, and the other wound up contributing as quality control.

Jumping In With Both Feet

The client was happy with our quote and so they hired us and we were off and running. We had roughly 10 days to get the project to a point it was ready for extensive review and testing by the client’s Development and Marketing teams, and then three more days until it went live. The quick timing was due to some advertising that was coming out right after the launch date.

I’d never managed a project so big nor had I ever had so many subcontractors working on a single project. In order to help me keep everything together and moving forward steadily I used two tools:

  • activeCollab, my project management site, where I set up milestones and tasks for everything in the project development sequence, and where we posted files and held discussions between team members and the client’s contact people.
  • A Google Apps spreadsheet that served as the master guide for everything. This spreadsheet took about half a day to put together. It showed every page on the site, it’s statuses for content migration, custom templating and programming if needed, notes, review/QA status and other elements. One of my subcontractors serving as QA/QC checked off pages in review as they were completed, and the other subs had access to mark their progress on various tasks for each page.

The client was pleased with our implied level of understanding of the minutiae of the project based on the spreadsheet and basically let us go, checking in every day and asking/answering questions as needed. They kept a very close eye on our work, and during the entire course of the project we ran into very few snags. Things went pleasantly smoothly.

The Team!

Could not have done this without the subs, in particular the custom themer that made it possible for us to offer additional features in the templates that we originally told the client would not be possible given the short timeframe, and the programmer that took the initiative to move things forward based on ongoing conversations with the client’s lead developer.  The choice of subs turned out to be very nearly perfect and it was fortuitous that everyone on the team had the time to throw at this project during the work period.

Launch and Beyond

We had a few hours of hiccups when the site was migrated from my production server to the client’s Amazon Web Services hosting, but the project launched on time  and the client was very pleased. I provided training sessions and extensive documentation for them, and we’ve established a strong working relationship that is moving into Phase 2 at this time.

The Most Important Things I Learned

  • Allow plenty of time for project management and be sure to put in an equal amount of time for contingencies because you just never know what’s going to happen.
  • Get the right people to help.
  • Stay organized, used tools accessible by all team members to stay on top of every task taking place across the board.
  • Find some time away whenever you can. I wound up with a nasty bacterial infection during the launch phase that began as a simple cold, I’m pretty sure it was due to the 12-14 hour days I put in near the end.

And, having a good client is also a huge contributing factor for the success of this project. The Marketing and Development staff and the project manager for the client were all passionate about their company, knowledgeable (or enthusiastic and willing to learn) about how our contributions would be affecting their daily work after launch, and easy to work with, and that was refreshing; it helped us keep moving forward at a rapid pace with few interruptions. The project was complex but the experience was great for me. I’m looking forward to working with this client in the future.

I started my web design studio, Red Kite Creative, in 2005, but only in the past few months have I begun delegating occasional work to subcontractors. It’s very important to me that I retain close control over anything design-related, so mostly I’m subcontracting for programming, with a little templating thrown in.

I’ve learned a few things by being both a sub and a PC about how to make sure you get more than one opportunity to work with any given PC.  Here are 15 tips that will help you become a sub that gets asked back.

1. Don’t jump at every opportunity. All projects are not a good fit for you – be selective and don’t overcommit.

2. Take the time to understand the specs or project requirements before you agree to do the work. If you get started then realize you can’t do it, your PC is going to pay for your mistake.

3. Have a contract or agreement ready to sign. Make it easy for the PC to work with you on a professional level.

4. Don’t commit unless you have the time to do the work. If you’re overwhelmed with projects of your own, don’t offer to give 15 hours to someone else’s when you really can’t manage it.

5. The PC is your client. Treat them the same way you would a direct client.

6. Research on your own time unless you’re specifically paid to do it.

7. Be honest about your experience and capabilities. If you claim to be able to do something and have never done it, be prepared to spend your own time getting up to speed. Don’t stretch the extent of your capabilities too far (but a little bit of stretching can help you expand your skillset).

8.  If a problem arises with the schedule or the task, tell the primary contractor ASAP. If you know in advance that you’re going to be unavailable for a week right before a deadline, tell the PC as far in advance as possible. If you have an emergency appendectomy, let the PC know. He or she has made commitments to the client that depend on you.

9. Time really is money. Work efficiently but carefully, don’t go so fast you make mistakes. Check your work.

10. If you don’t know, ask. Don’t assume you know what the client wants if it’s not explicitly stated; ask the PC for clarification.

11. Don’t change the PC’s design without asking.

12. If you underestimated your time or effort, it’s not the PC’s problem. Everyone underestimates, especially when first starting out. The only way to get better is to do more estimating.

13. Be easy to contact during working hours – by email or IM, whichever method you agree upon.

14. Do more. No need to go overboard, but a little extra effort, like writing up a quick guide to using ____ plugin or ____ mod, will help the PC help the client. Those kinds of efforts are remembered by PC, believe me.

15. Do a good job, be professional and you’ll likely get invited back for more projects. Act like (or even worse, prove) you don’t take a job seriously, and you probably won’t be hired again.

Good subs are hard to find. Be a great sub and I promise you’ll really stand out from the crowd.

I guess you just don’t know until you try.

I’ve worked with several subs this year. From some, I’ve gotten great work – clean code, a job done in quick order and correctly. From others, I’ve gotten junk – messy code (which makes me cringe), a job abandoned in the middle or some problem that created more work than if I’d done it myself in the first place.

It just makes me really wary about depending on someone else to do my clients’ work for me. Very wary indeed.

Well, my outsourcing experiment is over – here’s how it went down.

I chose one of the programmers (I got five bids of $12-20) because he/she had four good reviews, but they never responded. So I chose the second respondent and he got back to me in about a half hour.

We talked twice via email – he was fast, his code is clean and it works. That’s all I needed, and it was well worth the negligible amount of cash I had to spend. I’ll definitely consider doing this again the next time I get stuck with a programming task I can’t figure out quickly.

…that might sound silly for a small company like mine, but yesterday I spent two hours trying to figure out why external Javascripts aren’t working in IE6 but are working fine in FF and Opera.  I even went to Barnes & Noble and bought ‘Learn Javascript in 24 Hours,’ which I think will be a smart move in any event, but I just don’t have 24 hours to read it today, oddly enough…
Continue reading