Setting Project Expectations Before Kickoff
Last updated on September 25, 2018

After the initial call to determine that both us and the client are a good fit for each other, the next step is to understand the details of the project. We call this the discovery stage and this is where we create a plan and propose it to our potential client. We divide our development work into two categories: building from scratch and helping with an existing product. The discovery stage will change depending on the category and other factors like consulting needs or remote augmentation. Regardless, we have to understand three main things during discovery: the requirements, the current situation, the execution plan.

Determining Project Requirements

To understand a new project, we must see some kind of specifications or designs, and discuss the final vision for the product. For existing projects, we must dive into code and see the existing development standards, practices and tasks firsthand. For (consulting projects)[/consulting], it is most important to understand the business difficulties and the knowledge level of the team that we will be working with.

Here are some example questions we would ask regarding the requirements:

  • What platforms and browsers should be supported?
  • What are the performance requirements?
  • What is the testing strategy?
  • How does deployment process look like?
  • Who is the point of contact when we have questions about API or design?

We rarely rely only on written specifications as requirements change more frequently than the written word. The product owners’ vision isn’t always described completely in words. For that reason we cannot work without at least some minimal visual guidance and without discussing the details face-to-face with the person in charge.

Determining the Current Situation

Once the requirements are understood, we must learn about the current situation. These questions are related mostly to people and a company’s existing practices. We ask them to understand how our partnership would look like and function day to day. If there is existing code, we’ll take an extensive look at it with the engineers on your team. Here are some example questions we would ask, depending on the type of our engagement:

  • Who are the people on the team?
  • How do they communicate?
  • Who will be maintaining and do further development after we leave? Will they need training?
  • What are the expectations from our cooperation?
  • When will all the necessary materials be ready?
  • How do you manage developers internally?
  • What is the end goal of the project?
  • What would define a project success?

Some agencies enforce their own development methodology or best practices. While we have our own preferred way of working, we are not a strategy or methodology consultancy. We tend to adopt a client’s established practices, but will be happy to give our opinion and suggestions along the way.

Determining a Plan to Execute

After we have learned everything we need about specifications and current situation, it’s time for us to do our homework. We’ll gauge which members of our team are most qualified and have the bandwidth to contribute, and what would be the best solution for the client. In consulting and remote augmentation cases, our discovery stage ends here and it’s just a matter of scheduling the right people for the right period of time.

In case of a new project, we take some additional time to come up with a detailed estimation based on the requirements and current situation. While we don’t work with fixed bids and charge by time and material, this step is crucial to understanding of the budget boundaries and proper planning of the development. Our price quote never states the exact budget for the project.

Once we have the estimation, we invite the potential client to our office to present our understanding, vision, and estimation. We explain our reasoning, get answers for additional questions, and correct the path by altering the scope if necessary.

We see the discovery stage not just as a necessary stage for us to understand the client, but also as a great opportunity for the client to learn more about our company, our people, and our process. The most important thing is to ensure that you can trust that your partner will meet your expectations. The right partner will reduce your risk of failure by foreseeing potential pitfalls where you wouldn’t see them, and limit your time spent micromanaging their team by taking initiative and constantly communicating.

Back to all articles

© 500Tech. Building high-quality software since 2012.