Team Brilliant

Inception

The activities that get product and engineering to the same understanding of scope, assumptions and constraints before anyone commits.

01 layer

knowledge

what it reads before it writes anything

03 playbooks

stands on its own

The goal of an inception is to create a common understanding of the product and define a high-level execution plan of how we can deliver it. Align product and engineering on what you are building and how. Communicate basic scope of the product.

Skip it and the scope, the assumptions and the constraints stay in individual heads, where they will disagree with each other quietly until something forces the comparison.

Which activities you run depends on the context. A greenfield project and a brownfield one need very different conversations.

Understanding starting point

Where we are at now and where do we want to go from here?

Investigating feasibility

The goal of this activity is to understand whether the project is possible taking into account technical (questions below) and financial (can this type of project be achieved within the budget and on schedule?) sides of the story.

Investigating feasibility requires information from multiple sources: tech audit, code review, interviews, analysis of the situation.

Here are some of the questions we ask when we investigate feasibility:

  • Do we implement a new feature in existing application or a new application
    • If the app already exists. Would the technology be the right choice to solve a problem?
    • Are there are any architectural trade-offs we need to think about?
  • Do we build a product from scratch?
  • Do we build a product that requires integration with the legacy system?
  • Are we migrating a product from the legacy?
  • What are the boundaries of the new system and existing system?

It is important to communicate all these findings, as they can be tedious and complex to discover.

Techniques

Below are few techniques we found useful when preparing to run an Inception.

Schematic design

Designs that schematically illustrate the ideas in response to the issues raised during feasibility and code assessment stages may lack details, but describe the high-level situation.

Feasibility gives the initial constraints while initial schematic design will explore what’s possible within those constraints.