Ok, the more accurate title would be "How to communicate with business people about their projects if you're a freelance developer", but I couldn't resist. :-)
When you start a freelance developer career, the first big project is a game changer. Big projects bring more money and, inevitably, more problems. How not to frack up by having a miscommunication?
It takes years to see things for what they are. Until then you'll have troubles with understanding clients' needs, underestimate tasks, and miss deadlines, trust, and money. It's part of the process, but you can accelerate learning by communicating your understanding of incoming projects better.
I compiled a checklist backed with my experience of evaluating more than a hundred web and mobile projects (from a week-long to five years in development).
Step 1, preparation.
Should you even consider taking the project? Will the client agree on your terms? For that, you should answer these questions:
- Can I do it?
- How much time do I need?
- How much must I charge to be able to complete the project if something goes wrong (it always does)?
At this step, you probably can't spend much time gathering info, but you definitely can have a call with a potential client. What should you do?
Before a call, prepare: read all docs (if they exist), learn about a few similar projects.
Then, follow the algorithm:
- Ask about the project's goal.
- Ask about edge cases, question why the client sees thing this way, what are the reasons.
- Ask any questions you have left from reading original docs.
- Tell the client your vision of a project, carefully listen to their response.
- Try to find underlying potential problems with tech/design/business.
- Update your project vision, agree on it with the client. That will be the project you will evaluate.
- Discuss which major parts of website/app/service you should thoroughly estimate first, leaving everything else behind for a while. (Always start with a key part of the project).
After you finished a call, immediately write everything down. Then, if you can wait till the next day — just wait, let things settle down. You'll have a more unobstructed view, and a client might send you some additional info.
Still, want to land this deal?
Step 2, evaluation.
Write a response with your estimates following this template:
- Write the project description.
- Write the project goals.
- Write about why you like it.
- Write about project features. Mention underlying potential problems.
- Create a mind map with the project's structure that an average person can understand.
- If you have enough time, work on basic user stories (see this cheatsheet).
- Write how you think you will build it, what are the major milestones, what’s your release strategy.
- Write about resources you will need to accomplish a task.
- Write time/budget estimate, based on tasks and/or resources. Don’t oversimplify things, but don't go pessimistic either.
A density of this response depends on how much you like/need the project.
If it's possible, always present your response on a video call or in person.
A few iterations later, you landed yourself a big project that you and your client are confident in and which can become a big step for your professional skills and career.