Supercharged Product Development: Moving Faster Without Breaking Everything

Let me walk you through the last three months at UXPin:

October 2016: Spec Mode.

September 2016 : Custom font upload, 80% decrease in time to load the design preview.

August 2016 : Font Management, Google Fonts integration, Comments 2.1 (new UI, assignment of users to tasks) and Approval Process Management.

Small improvements and bug fixes deployed every day. P0 bugs are being resolved in less than 24 hours.

For anybody working in design and development, it probably sounds like an insane schedule. I remember how it feels to work on projects in past companies where even small and simple things took months to complete. Every form, every table, every feature was a struggle to push through the entire development process.

Do we have an army of designers and developers working day and night?

No. We have a well organized platoon of 22 developers and 7 designers.

When extreme talent meets the right process, things just start moving faster.

Speed matters

I guess you could question the value of fast development. Many do — poor implementation of Agile, after all, just leads to launching crap faster.

So, why all the hustle? Do we need to live under the constant pressure of deadlines and short sprints? Do we have to constantly rush? Can’t we just relax for once and plan a 6 month long release like in the old days?

In our experience at UXPin, fast product development, if correctly applied, becomes a competitive advantage in an ever changing market.

Thanks to fast, predictable and regular product development, your product mimics the nature of a constantly improving service. If your product has any shortcomings today, you can count that they will be fixed tomorrow. Though the price stays the same, the product grows and delivers better and better experience. Unlike your car, your application increases its value over time.

Fast product development and quick iterations allow for dynamic adjustment and a greater product market fit. Product market fit is not a status given forever. It requires constant re-adjustment to changes on the market. The gap between the desired state of your product and the current state is exactly where the speed plays the biggest role.

Battle scars and lessons learned

In the past few years, we’ve learned a few critical lessons on speeding up product development without sacrificing quality:

  1. Talented team = capability, energy and integrity
UXPin attracts exceptional professionals who like to work and have fun together.

Putting together an exceptionally talented team has been our obsession since we started the company.

When UXPin was just a tiny startup, we didn’t have enough structure in the product management and our design and development process were all over the place.

Our initial traction and stunning growth rate (700% year over year before our second round of financing) was all thanks to the talented team. We relied on each other’s energy and work ethic to work fast and achieve goals, even though the processes were not really in place yet.

Finding, hiring and retaining the right talent is a huge subject on its own, but my main advice is to pay attention to two aspects beyond mere qualifications:

  • Is a candidate energized by the work and development the industry? Is work a passion, or just a job? The latter might be generally OK, but it’s not good enough for a small company that needs to grow fast.
  • What is the main motivation to change a job? If it’s purely financial, it might be great for some other opportunities, but it’s definitely not good enough for a startup.

Startups must hire people who are not only passionate about the opportunity to work for the company, but are self-motivated.

2. Standardize your process before scaling

As UXPin grew, we realized we needed to build infrastructure around our talented team.

It wasn’t obvious at first. As our product development started to slow down, our first reaction was to grow the team even more. UXPin was started by designers, so creative freedom and independency of multidisciplinary teams was important to us.

We were afraid to suffocate our team’s power with process, so we started adding to the team instead.

That was a mistake. You need a stronger engine before you can just add more power.

As you might imagine, the result was the exact opposite of what we hoped. As team size increased, projects slowed down. While a small company can rely on natural interactions and adhoc team work, bigger teams fall into chaos without proper structure. Failure to recognize this simple fact, cost us a couple of months of fast development.

Several attempts to correct the course failed, but then three radical moves led us to the right place:

Reduction of technical and UX debt. We started taking our own advice. Instead of adding new features, we dedicated that time towards significant refactoring of the UXPin engine. Accruing technical debt didn’t just lead to UX debt — it also it more difficult for our product owners to accurately estimate time due to unexpected delays.. Refactoring cleaned up the core of the application, increased reliability of the app and predictability of development. Our whole team came together to build the new engine under the guidance of our most senior engineers.

Building a stronger project management team. Our product development process now follows a Kanban model. Measurement of teams velocity sounded scary at first, but now teams are happy with the help they’re getting from our project managers.

Hiring an experienced VP of Product. To introduce proper roadmap planning and improve coordination across teams, we brought on an experienced VP of Product. In just a month, she cleaned up our processes and introduced the order we needed to support scaling.

Our standardized process after consulting with the entire product team. Effort lead by our VP of Product.

3. Streamlined design and development collaboration

The final step in our path to fast and predictable product development was correcting the very substance of the process — design and development collaboration. We focused on two goals:

  • Build the right things for users
  • Equip designers and developers to build efficiently together

To achieve the first goal, we became very disciplined about building fast, mid-fidelity prototypes to test with customers. We banned over-investing in any concept without testing it with actual users. High-fidelity prototypes became an unacceptable risk that we’ve simply removed from our design process.

If you’re spending days crafting a precise high-fidelity prototype you’re wasting time you could spend learning from your customers. You’ll fall in love with your first concept and suffer from confirmation bias.

Mid-fidelity prototype of UXPin Dashboard for testing with ~20 users.

When the team, process and the roadmap of valuable projects are in place there’s the last, perhaps the most important ingredient that should be added to the mix. Designers and developers are the creators of the product and they have to find a way to build products together. Until recently these two equally important roles did not speak the same language and as a result a lot of time has been wasted to translate design assets into something that developers can use.

Redlining, manual specification, attempts to use prototypes as documentation — all of these tools were leading us astray. We’ve been constantly losing precious time and we couldn’t stand it.

With the recent update UXPin provides the most powerful toolset for automated documentation. We’ve been using it for a while and automatically generated CSS, code documentation (from elements shared in a team library!) and business logic, really supercharged our development process. Right now, our designers doesn’t spent any time documenting their projects, yet everything is fully documented and designers and developers started to understand each other better than ever before.

Automatically generated css properties saved our developers and designers a lot of time.

All the design patterns can have a set of fully customizable documentation including markup and usage description. Every project gets automatically documented.

Conclusion

Talented people, disciplined product management and streamlined design-development collaboration — at UXPin we believe these are ingredients of a fast and predictable product development. This is how we’re gaining advantage over our competitors and we’re increasing satisfaction of our customers.

In the past 3 months UXPin’s customer satisfaction score improved by 126%, and churn rate decreased.

While so much is left to be done, with the speed of our process we can get anywhere we want.