Building an Execution Engine, Part 3: Tools

  1. Tools to plan development: idea management tools, idea dissemination tools, sprint planning tools
  2. Tools to help development go faster: automated testing tools, test servers, change deployment tools, application monitoring tools
  3. Tools to determine what to build: quantitative and qualitative data capture tools, product experimentation tools

Tools to plan development

These are the tools your team will use before a project is ready to start execution. Tools to plan development typically include the following types:

Idea Management Tools

These are typically idea organization and scheduling tools, for ideas that are not ready to put into execution. I’ve worked on teams that used Trello, Asana and JIRA Portfolio for idea tracking. The key features of these tools are the ability to quickly enter in new ideas at various levels of refinement, flesh out ideas within the tool, and group ideas into larger projects or themes that can be pushed into execution as single unit.

Idea Dissemination Tools

Wikis are useful as document repositories, or for providing detailed overviews for complete or in-flight projects. Many teams I’ve worked on have used wikis to list all documents related to a project in one place (for example, all feature design or technical design documents), or to provide a readable high level overview of a project (why it is a good idea, mockups of the final work product, and tickets in your ticket tracking system — see below — related to that project).

Sprint Planning Tools

Ticket tracking tools (also called “bug trackers”) are often used for sprint planning. The key features that you likely want from your ticket tracking tool are the ability to enter input in multiple ways (by easily attaching media files in addition to text, for example); specify that tasks depend on each other; and to unambiguously indicate what state a task is in.

Tools to make development go faster

Tools that speed up development typically fall into the following areas:

Automated Testing Tools

Tests are a key component of high velocity, high quality software development. Encourage your team to build tests into your codebase from an early stage.

Test Servers

Test servers allow for faster iteration by not requiring product owners (product managers or visual designers) to be physically around engineers in order to collaborate with them. Engineers can push up work in progress to a test server, which can then be reviewed in isolation by a product owner. Making it easy to deploy to a test server, and having a large enough fleet of test servers, is key in speeding up turnaround time.

Change Deployment Tools

There should be as little friction as possible between an engineer getting a code change approved, and having that change appear in the production version of your product. Examples of friction include app store approvals, manual QA, and complex deployment processes. While some of these sources of friction (most prominently app store approval) are outside your control, you should do whatever you can to eliminate every friction point you can. The simplest deployment process is one where deployment happens automatically once the engineer merges their approved code change into your source control system.

Application Monitoring Tools

Once new code is deployed, you should have tools that allow you to monitor that your application is still behaving as expected, and alert the right people if it is not.

Tools to determine what to build

This is arguably the most important tool category: without the tools to tell you whether your team is building the right thing, you are flying blind.

Quantitative Data Capture Tools

These are typically clickstream tracking tools that help you gather fine-grained data about how users are using your product. Google Analytics is an example of this type of tool, and very powerful if used well; other tools that teams I’ve worked on have used include Segment and Adobe Omniture. The key capabilities you’re looking for here are the ability to quickly instrument any part of your application, across web and mobile, and pipe the resulting data into a database that can be queried (preferably using generic SQL queries).

Qualitative Data Capture Tools

In the early days, your startup may not have enough users to get meaningful information from quantitative data gathering tools, such as those listed in the previous section. In that case, you may find it useful to integrate tools into your product to capture user behavior in a more qualitative way. For example, FullStory provides useful videos of actual users using your product, classified by time, location and other attributes. This can be very useful to see which parts of your user interface might confuse or frustrate users, or view reproduction steps for bugs that only happen “in the wild”.

Product Experimentation Tools

When you have a sufficient number of users, you can iterate quickly on your product by running A/B tests: showing different versions of your product to different groups of users. I’ve used Optimizely as a useful and robust way to run experiments.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Abhijeet Vijayakar

Abhijeet Vijayakar

39 Followers

Current: Hippo Insurance. Previous: Google Assistant, Trulia/Zillow, EA, startups. Engineering leadership and navigating ambiguity. Create, learn, repeat.