This week I am working through the Growth Strategy portion of Reforge. Feature Strategy focused on looking at parts of the product to improve the whole. Growth Strategy focuses on enabling loops over funnels. You might be asking what is the difference between a loop and a funnel. The Reforge point of view is that funnels miss the point of re-engaging with users and retaining them. It also influences an organization that is not aligned toward improving the product as a whole. Each segment of a funnel optimizes for its goal and hands a user to that next band. There are growth loops related to user acquisition, retention, and monetization. I am applying an internal tooling lens on the Reforge content and may not dive deep into monetization. The key question that growth strategy starts with is, “How does an intitial set of users lead to the next group without additional funding?"
User Acquisition Loops
There are three kinds of acquisition loops that you can employ for your product. Viral, content, and paid loops. I will not discuss paid loops since I’m not planning to employ them as part of my product. Reforge does warn that paid loops can be risky because you might pursue users that are not invested much in the product. For my internal product (DevLab) I am leveraging viral and content loops to engage users. Viral includes: word of mouth, organic, casual contact, and incentivized. We offer a hands-on experience via Slack and Sococo. If users need assistance we jump on those issues in Slack threads or ask the user to join us in an office in Sococo. So far the platform has good scores for responsiveness and desire to continue to create new projects on the platform. We recently gained a couple of new prospective users that are working through early versions of their applications. If they value the experience I hope they continue to recommend the product to their colleagues and recommend it. We are also looking at sending gift cards to users that are providing feedback on the platform.
The content strategy so far has been generated by the DevLab team and myself. I write blogs, release notes, videos, present at internal conferences, and anything else I can think of trying. The latest experiment is DevLab Media. An internal static generated site built on Hugo that will maintain DevLab content and advertises as open for collaboration via pull requests. We use Confluence internally so you might be asking, “Why another location for documents?" It’s a great point. Confluence is fairly easy to contribute to and the search is adequate. We’re banking on making it an easy place to find what you need and contribute to it because you are in your editor all day and not Confluence. You don’t need to think about Confluence and the many nested hierarchies it creates. We hope that user-generated content can take off and compounding value can be created by the users of the platform.
Optimizing Loops, Increasing Throughput, and Non-Scalable Spikes
The section on optimizing loops applies to DevLab as a product. The goal of the product is to remove bad friction from the enterprise software development process. It also adds friction in areas such as API-First Design so that our users make better decisions about impactful products. Ultimately we want to leverage the open-source model of pull request development to expand the platform’s throughput. This is still aspirational as there are parts of the experience that we can add/remove friction.
The friction that could be removed
- GitLab does not leverage Single-Sign-On creating a barrier.
- Perception of the product as not completely stable or relevant to their use case prevents adoption.
- Giving users access to SwaggerHub/Vault requires manual work that gets lost in the shuffle of the day-to-day work.
- Users need to wait for their database to be Kerberos enabled via ticket.
The friction that could be added
- Better linting/warnings of OpenAPI specifications.
- Specific guidance on how to use Cloud Events that complies with Data Strategy’s mission.
- Self-service training modules so that the technology trainer has time to work on other higher-value work.
- Self-service entry of information related to owners of projects, databases, APIs, etc.
Increasing throughput involves three roles: generators, distributors, and platforms. The explanation goes over my head and thankfully they associate it to a real business case like GitHub that I can understand. A GitHub user that signed up returns to see updates on other organizations/projects (Generator). The user creates a new repository or contributes to an existing repository (Distributor). The update of that change is broadcast via notifications to other users to return to the product (Platform).
DevLab seeks a similar cycle of user acquisition. New users adopt and leverage the framework to accomplish their work faster with less fuss compared to the legacy platform. The users obtain value and enjoyment from using the product because the cruft and waste are removed from their development. As they make and release successful products they are encouraged to create new products on the platform. Provided they give feedback and create their content related to improving the platform over time we leverage network effects of developers feeling empowered they can send a pull request for a feature that might be a niche or lower priority on the platform roadmap but add value for their team.
These are events that are generally rare but you can capitalize on them as marketing efforts. I’ve considered faking efforts but so far it hasn’t made a lot of sense. The example Reforge gives in the material is the creation of fake business listings to drive the perception of adoption. It’s a valid strategy and I wouldn’t discount it if I were in a corner. The paid acquisition doesn’t make too much sense for an internal product. I have leveraged artificial scarcity only because I do not want to tarnish the reputation of the platform by opening it up too widely. I am not sure how I could spin limited-access features but worth considering in the future.
- Paying users in gift cards to try and use the platform. Reward their behavior
- Press releases
- Holding events, meetups, conferences about the product
- Faking → migrate people’s applications for them
- Paid Acquisition
- Artificial Scarcity
If you can add multiple loops then you can create a powerful effect for your product. Reforge does advise that finding a good combination of loops might be challenging.
Retention is core to a great product because it drives the acquisition of new users. The best products on the market have network effects that sustain their platforms. Human habits are hard to change.
Use Case Map
|Problem||I want to experiment on a solution to a problem without completing monotonous work or waiting on third parties.|
|Persona||Web Application Developer/Contractor Working Internally/ Product Owner|
|Why||I can iterate and stay in a flow state longer than alternatives. Reliable feature delivery.|
|Alternative||Windows VMs, ServiceNow tickets, Azure DevOps Builds/Releases creation|
|Frequency||Depends on project type, bi-weekly|
DevLab Retention Metric
- Frequency - Bi-Weekly to start, daily overtime.
- Core Behavior - Promoting Applications to production. A possible alternative, validating product ideas that won’t work.
- Who - Web Application Developer / Product Owner.
A retention metric is composed of activation + engagement + resurrection.
Activation includes the entire experience of signing up and the user experiencing the creation of a new habit related to your core value proposition.
Habits we are attempting to embed in the experience
- Using conventional commits as part of your software development flow. Enables automated release logs and container versioning.
- Automating the creation and update of your API endpoints based on an OpenAPI specification. (API-First Design).
- Seamless application log viewing/search experience via a SaaS log vendor.
- Smooth/Consistent projects that look and act similar except for the business code.
- Low friction experience to add secrets to your project.
- Standard models to send data via a standard contract.
- Automated set up of your message queue.
- Pull requests and short-lived feature branches that run in isolated namespaces.
- Remote debugging experience via Okteto.
Reforge suggests four use cases to help encourage establishing your product’s habits.
- Environment Loops
- Placing a cue in the user’s path to consider the product.
- Manufactured Loops
- Could be a notification, email, or generated event that reminds the user to reengage.
- Warm Start
- Give users a better chance to establish a habit.
- Use Case Transition
- Find more use cases that keep the product top of mind.
Typing this out helps me realize that Warm Starts are the lowest barrier for my users to be successful. I can review my communication and guides on the product to see if I am setting up users for success in establishing the above habits.
Satisfaction and Levers of Engagement by User
|Name||Impression||Frequency of Use||Use Cases||Feature Spread|
Satisfaction and Levers of Engagement by Team
|Name||Impression||Frequency of Use||Use Cases||Count in Production|
The Reforge content on growth strategy helped me re-evaluate what I thought of my own product. There was excellent content on monetization that I am not able to apply and if that is something that interests you, you might seek out others that might have written about it. For me acquisition and retention are core concepts I will continue to think through. The power of this platform is the capability of increasing throughput of users by adding value directly to the product. I will try out using warm starts to drive habit establishment of the platform. In addition, I will think through how to create a retention metric using data to define user cohorts and habit engagement metrics.
- Think about loops that encourage users to return and grow the value of the product
- Reduce the friction of the bad stuff, add friction to increase quality, and increase throughput of generated value
- Encourage users to establish habits and keep them engaged in the product.