Carbon Five was recently brought in to build a new product with a planned budget of 6 months. As the first step, we conducted a few rounds of customer development to try and validate the concept. After a month of experiments by a product manager and designer, we ultimately recommended that the company not pursue the idea. Our client spent a few weeks of consulting fees but saved more than 90% of their budget by not building anything.
The client for this project provides software to a niche set of businesses. As more and more competition started popping up, they believed they saw an opportunity to create a digital marketplace in their niche. Before Carbon Five started building software, the client wanted us to confirm demand for the marketplace.
Continue reading …
The tech scene (especially in the Bay Area) has reached a point where it’s expanded way past techies. It seems successful people from all different industries are drawn to the promise, reach, and money in tech. Doctors, bankers, artists, and even educators are launching startups and talking about MVPs. It’s definitely exciting and inspires me everyday. But, building a great product is sometimes more of an art than a science, and first time founders make common mistakes. From a company that has worked with more startups than it can count, and has seen its fair share of first time product mistakes, here are some of the most common ones to avoid.
Continue reading …
As a full-stack software consultancy, we at Carbon Five get lots of questions from clients past, present, and future. We’re passionate about sharing our industry knowledge, so we sat down with our leadership team and got some advice for aspiring founders and product leaders as part of an ongoing 6-part series. You can see all the interviews here.
How healthy is my codebase? Can I rewrite it, or can it be nursed back to health?
A hundred percent of the time, your codebase can be nursed back to health. In my experience, ninety-five percent of the time, that’s the path you should take. This is making one assumption, that there’s a product already built and in use. The bigger the codebase, and the longer it’s lived, the more likely that it has features or bugs or whatever, pieces of code that are in use, that people are relying on, but nobody knows about at the company. So whenever you talk about rewriting a codebase to be the same as an existing codebase, you are opening yourself up for a world of pain because it’s very likely that there’s nobody in the world that exists who knows all of the requirements. If you ever decide to rewrite a codebase, you have to start from first principles and say, “We have to start from the very beginning and define what this new product does, and as a basis, we’re going to use this old product, and we’re going to say this is our starting point.” The same way if a client came to us with wire frames and said, “This is what I want,” we’d say, “Well, we’re going to use this as a starting point, but we’re still going to go through our personas exercise, and our experience map, and our story mapping, and our story writing, because we need to understand all that in order to build this product.” If you can do it that way, then rewriting is actually completely doable. I’ve discovered that even though it can be a lot of work to nurse a codebase back to health, if the functionality is there and fulfilling the needs of the users, then to continue to fulfill the need of the users without any interruption, you gotta nurse it back to health.
A hundred percent of the time, your codebase can be nursed back to health. In my experience, ninety-five percent of the time, that’s the path you should take. This is making one assumption, that there’s a product already built and in use.
Continue reading …
Have you ever worked on a team that went off the rails? Product teams need lots of support to run efficiently. You need to move fast, but you also need to be aligned in order to build successful products. Here are a few activities we use to keep our teams moving. We often facilitate them in Stickies.io, a product we built for collaboration, but any of these activities could also be done using analog sticky notes.
When you need to generate ideas
We like to structure brainstorming sessions to help get the entire team working together towards a unified goal. We set a timer for 3-5 minutes to challenge ourselves to think fast and broad. Then, we review the ideas and do another rapid round, with 2-4 minutes this time. Finally, we give all team members 3 votes and prioritize our ideas based on votes. The sequence looks like this:
- Introduce the goal of the brainstorming session
- Run rapid rounds.You can run as many as needed. We typically reduce the time set as we go and build off of each other’s ideas.
- Set the timer for 3-5 minutes
- Individually ideate on post-its until the timer goes off
- Let everyone describe their top 3 ideas
- Give everyone 3 dots and ask them to vote on three ideas to explore further
- Arrange ideas by votes
In person, we use post-its, sharpies and sticker dots:
Continue reading …
As a full-service software consultancy, we at Carbon Five get lots of questions from clients past, present, and future. We’re passionate about sharing our industry knowledge, so we sat down with our leadership team and got some advice for aspiring founders and product leaders as part of an ongoing 6-part series. You can see all the interviews here.
First up are some practical answers from Partner and COO Don Thompson on lessons learned from 15+ years of collaboration on client-driven technical projects and insights into how Carbon Five’s process enables companies of all sizes.
When do I build my internal team?
Beginning day one is our preference. The happiest clients are the ones that have a team in place to take over before we’re done. It doesn’t have to be a CTO–that can simply be a junior developer. It can be a struggle for clients to make a junior hire if they have more confidence putting a senior person in place. They feel a Director or VP will have more confidence in some of the decisions they’re making early on, and can build out their own team. From our standpoint, either approach can be successful.
Where do I find my talent, and how do I attract them?
That is really tough. The early hires will often establish and shape a corporate culture so it is important to get it right. In addition to the roles to hire for, we encourage our clients to consider making diversity a hiring goal. Creating a balanced, inclusive team takes more time and effort than most company founders expect. When our clients do begin to ramp up hiring, we’re happy to help with writing a job rec and shaping a job description. We’re happy to help review resumes. We’re happy to interview people and really be that advocate for our client as far as where people can fit into the organization. We’re happy to give them desk space once they’re hired. We have a recruiter, and we’re happy to make introductions to on the behalf of our client. While we still encourage people to reach out to their own networks, remember to reach out well beyond it.
In addition to the roles to hire for, we encourage our clients to consider making diversity a hiring goal. Creating a balanced, inclusive team takes more time and effort than most company founders expect…while we still encourage people to reach out to their own networks, remember to reach out well beyond it.
Continue reading …
Some projects go so well you want to bottle them. Others, not so much. A few months ago, I started surveying our projects from the last three years. I was looking for patterns of success and … less success. I had heard people say that there wasn’t much of a correlation between projects that were successful for Carbon Five and products that were successful in the marketplace. That felt simultaneously plausible (lots of products fail, but that doesn’t mean it was a horrible project) and unlikely (it doesn’t make us happy to work on things that don’t succeed). I asked C5ers to grade projects based on how well the project went. Then I recorded whether the product had been a success (as defined by the client). It turned out that there was actually a pretty strong correlation between projects we graded higher (A or B) and products that had succeeded. And projects where the C5 team was dissatisfied often resulted in unsuccessful products.
Once I saw this, I wondered: how might we increase the likelihood of success? Is there some way we could predict successful outcomes and try to make all our projects look more like the great ones? We’d have more fun and our clients would enjoy more success, in theory. But was it possible? Continue reading …
It’s rarely too early to instrument a web or mobile app with user and event tracking services. Sure, it’s ideal to only track the metrics needed to answer specific questions, yet it’s not often the case that those questions are known during the early stages of product development. It’s been our experience that we can manage problems associated with having too much data (analysis paralysis), but we can never go back and magically collect data that wasn’t tracked.
Over the course of a few projects, we’ve come to rely on a core suite of four analytics apps for their flexibility, ease of use, low startup costs and ability to adapt and mature with the product or business. It might seem like four tools is a lot, but the tendency in the analytics business has been for specialization, with countless vendors offering extremely niche products to cater to very specific needs.
Because of the proliferation of offerings, it can be difficult to make a final choice on analytics platforms when you are starting up a product, as you may find your needs changing over time. This brings us to the first product:
Segment’s main purpose is to be the single layer of code implemented in the product which allows data to be pulled out and then handed off. Segment enables hand-offs to an incredible number of other analytics-type products without having to write or insert any additional code, typically allowing non-technical business users to add or remove analytics products without the need for dev and test support.
Heap is the next product we’ve implemented. Heap is a great general purpose analytics platform; tracking both users and events. It allows a user to visually tag parts of the site for analysis and setup funnels to measure these tags. Beyond the ease of use, Heap’s other big selling point is that it can do this analysis retroactively. For example, if Heap has been implemented in a product for three months and one day you decide you want to look at the click through on an untagged CTA you can tag it in Heap and see the data from the previous 90 days. This is very powerful tool as product development ramps up, as the business may not know 100% of everything they want to measure up front.
Intercom is a user-centric analytics and messaging platform. They present a lot of the same data as a general purpose analytics platform, but they do so by showing activity clustered around individual users. Moreover, they provide an unobtrusive messaging tool which enables the business to communicate with users for customer development and support. Intercom is great for understanding the behavior of users across their lifetime, tracking engagement, retention and strategically communicating with users.
Optimizely is a great product for quickly and easily setting up A/B/Y tests to test all kinds things, and is especially well suited for testing UI and content. For products with a small number of users, Optimizely can be used for rapidly iterating on user interfaces to gain qualitative feedback. It really shines when the product has enough users to run tests at scale. Like Heap, Optimizely tests can generally be set up without the involvement of a developer which reduces the barrier and cost of running tests.
We’ve found this suite to be a great starting point for a new analytics implementation as it reduces time to set up and enables the business to easily slice and dice their application usage data in ways that produce insights – which is the true goal.
In the next chapter we’ll take a look at how we’ve used three of these tools on our product Stickies to quickly scale tracking users and events.
At Carbon Five, we build software. We build it using Agile methods. This has worked out well for us and our clients for a long time. We recently added product management as a discipline to our team. There are some common challenges we see at C5 and we’ve been deliberately experimenting with different activities and practices around product development, some of which we will be sharing in this series of blog posts.
Our team is working in a startup environment. Our product owner–let’s call him Alex–while business savvy, has no product management experience. He has a very clear and detailed vision of the product in its finished state. Complete with comps. Those designs, while beautiful, were not created in response to specific user problems; they’re a product of Alex’s brain alone. When our team begins work, questions arise. User stories are written against the comps, instead of against problem statements generated by research with real users. The comps are referenced, but a picture doesn’t necessarily speak the same 1000 words to everybody.
Continue reading …