Posts Tagged ‘hiring’

How To Speak Geek, Part 2 – Planning & Project Management

May 17th, 2010 - Steve Zehngut

This is the second of my four part series on how to communicate with your developer. Part 1 covered Interviewing Your Potential Developer. Part 3 will cover Version Control and Part 4 will cover Bug Reporting.

Planning

As the old adage goes, “Bad planning on your part doesn’t make it an emergency on mine.” This is exactly what your developer is thinking when you make last minute feature requests that were not in the original work scope.

Planning is about setting expectations. If expectations are spelled out up front, there should be no surprises. This is an ongoing process and expectations will need to be revised as you move forward. Your developer may lack the skills to proactively set expectations, but you can take on this responsibility. The developer will probably thank you for doing so.

The Statement Of Work

The most critical document you need for any size project is a Statement of Work (SOW). The SOW needs to contain a detailed description of the project, the milestones, a timeline and payment terms. Depending on the complexity of the project, your SOW may need to contain specific details about each feature and how that feature is supposed to operate. Include as many specifics as it takes so that little is left to interpretation later.

This is the time to address code ownership. Who owns the code that is generated as a result of the project? Different developers have different points of view on this subject so it is important establish this early. In my work for hire contracts, our clients own the iteration of the code that we develop for their site. This means that we are able to re-use our routines on other projects, but we cannot re-use an entire project elsewhere. If you want to own the code, then you will need to negotiate this in advance and the SOW is a perfect place to do this.

Take your time creating the SOW. Your developer should not write one line of code until this is finalized and agreed upon. When I create an SOW, it typically goes through several drafts. I will submit a draft to my client for their review and then they will make edits and submit it back and so on until we both agree that it is final. You can use Word, Pages or Google Docs for this process. Whatever software you use, make sure you use the “Track Changes” tool so that you can see the progression.

Once the SOW is complete, both parties need to sign a copy of it to signify that they agree. For larger projects, my SOWs get attached as an exhibit to the work for hire contract.

A couple of important notes:

  • You can never over-plan! Good planning and documentation reduces the guesswork as your project gets developed. Anything you can do to cut down the margin for error will save you money in the long run.
  • Always try to avoid doing anything as a rush. You are always asking for mistakes when rushing.

Project Management Site

Your developer should use a project management tool like Basecamp. This will allow you to track your deliverables and project schedule. The site needs to have a good commenting system so that your conversations around a particular task are centralized in one place.

DO NOT use email or instant messenger to track tasks! These conversations tend to get lost in the shuffle. I have found that important parts of the conversation get lost when someone accidentally forgets to cc the group. :)

The SOW should become a road map for your project management site. All of the deliverables from the SOW need to be converted to tasks on the site. This can be done by you or the developer. In addition to task tracking, your project management site should be used as a central place to post feature discussions, technical notes and design comps. Your project schedule and major milestones should also be tracked on the site.

At Zeek, we use a site called GoPlan. GoPlan is similar to BaseCamp, but we switched because it has a good bug tracking ticket system built in.

Take an active part in the project management, but be careful not to micro-manage your developer. And when possible, ask your developer to use a screen sharing site like GoToMeeting.com to explain when you don’t understand something their saying. So many communication issues can be solved if a little extra time is taken at those critical moments in the project.

Up next: Part 3 – Version Control

How To Speak Geek, Part 1 – Interviewing Your Potential Developer

May 10th, 2010 - Steve Zehngut

I spoke recently at Real Estate Wordcamp in Denver. Kudos to Todd Carpenter for putting together such a great event. All of the sessions were informative and the response from the crowd was extremely positive.

My session was appropriately scheduled as the last session of the day. The title was “How to Speak Geek – Communicating with a Developer.” The sessions leading up to mine were about WordPress techniques, creating meaningful content, and some primers on how to dive into code. My goal for the session was to give the audience a bit of a reality check on how to go about working with a developer to get a custom WordPress site (or any digital project) built. It was also well received, so I’m turning the content into a series of posts, broken into these parts:

Interviewing Your Potential Developer
Planning & Project Managment
Version Control
Bug Reporting

Much of what I am about to write refers to boutique developers. These are typically smaller shops or freelancers where you will be dealing with the same people that are working directly on your project. Larger firms will typically have a project manager that acts as your point of contact. The project manager is responsible for overseeing the schedule to make sure deliverables are met on time and on budget. However, even some larger firms are guilty of the problems I am about to describe.

I asked the audience to share some of the problems they may have encountered working with a developer in the past. The answers were thrown at me fast and furious. Here are some of the common threads that I jotted down:

  • “My developer delivered something that was not exactly what I had in mind. I then had to pay them to change it to match my expectations.”
  • “My developer missed the deadline.”
  • “My developer has gone AWOL. They refuse to return my phone calls and emails.”
  • “My developer does not communicate effectively.”
  • “The costs are spiraling out of control with no end in site.”
  • “My developer takes suggestions personally.”
  • “I found out my developer was outsourcing my project to another resource. They felt dishonest.”
  • “My developer does not understand my industry.”
  • “My developer does not have the core competencies to complete every aspect of my project.”

While the audience had a good laugh at some of these responses, none of them surprised me. I have heard them all before. The good news is that many of these problems can be avoided up front with proper planning and a bit of leg work on your part (as the client).

Interviewing Your Potential Developer

Developers are a rare breed. At the risk of stereotyping, I have found that hardcore technical people are lousy business people. The best firms that I have worked with in the past have on board technical people as well as business people. Knowing this ahead of time should help you to communicate better with a developer. Be prepared to listen with a different ear. The developer may not offer up details about your future working relationship so ask a lot of questions. Here are some important questions that you should ask when interviewing a developer:

  • What is your hourly rate?
  • Will my project be billed as hourly or as a flat rate?
  • Once my project launches, is there a maintenance fee?
  • Where does my project rank with the other projects on your production schedule?
  • Do you have the bandwidth to give my project the attention it deserves?
  • What is your procedure when something goes wrong?
  • What is your process for bug reporting and bug fixes?
  • Are you using a project management system, like BaseCamp or GoPlan?
  • Who will be my day-to-day point of contact within your firm?
  • What kind of turn around time should I expect?
  • What version control system are you using?

These questions are best handled in a face-to-face meeting if possible. If a face-to-face is not possible, conduct the interview on a conference call. Avoid handling the interview over email. When you are asking these questions, it is important not just to hear the developer’s answers. Listen to their tone of voice. Study their body language. Are they uncomfortable giving their answers or do they sound confident? Do they speak in “double talk” or do they seem like a straight shooter? This should give you an indication as to how they will handle themselves in a working relationship.

Make no mistake – if you hire a developer, you are entering into a relationship with this person. Take the time to find someone you can trust. If you need to interview a dozen developers until you find the right fit, do it! Finding the right person will save you a lot of headache and money in the long run.

Reality check moment. I am sorry to have to break the news to you, but no one will ever be as passionate about your project as you are. Most developers get off on creating cool technology. It’s a bonus if that can be married with cool content.

Feel free to post any additional questions you might have about interviewing a potential developer in the comments below. Part two in this four part series will cover planning and project management.