How we make our innovative software products

How we make our innovative software products

Every project is different, but our approach means we can be flexible to your needs and work in a way that best suits your business.

Every project is unique

There's no set process to follow when creating new products - each project presents individual unknown challenges and requires a bespoke approach. However, there are core values, tools and processes Add Jam use that we believe lead to the best outcome from our product development journey. We’ve collated our trusted ways of working into this handy reference guide to share our approach to tackling product development.

We’re great at making useful software products because we’re always learning. This page acts as a living guide to our process, which we'll continuously update as we hone our techniques and adopt new tools.

Kicking things off

All products start the same - with words. Initially, we sit down to discuss all of the ideas we have on the table and define what the product will be. It’s a delicate point in the process, as it’s all too easy for loud voices and blocked ears to shutter an idea before it reaches its full potential.

At this stage, we forget the rules - anything is possible. By doing this, you can come up with something truly innovative.

Then reality kicks in. We need to make the product viable, and to do this we need to find a customer. Add Jam excel here - we work with you to form a concept and sketch out an ideal product vision then scale that back. We believe the key to a successful product development process is to take the path of least risk - not of least speed or effort. Our aim is always to make sure the risk is as low as possible and we want to create a 'Minimum Viable Product'.

At this stage, we have a concept that consists of two things - facts and assumptions. Facts are immovable, but assumptions, on the other hand, are our best-educated guess - the customer needs x, or the customer is willing to spend y. These assumptions must be tested so we can turn them into facts and make better decisions along the product development journey.

With this in mind, we create the core of a product as efficiently as possible so we can test for product and market fit. There's no point building a product that nobody will buy, so this process helps us define the ideal customers - how much and how frequently they will pay for the product, how we should communicate with them - and assists in discovering their core needs.

Getting Visual

When it comes to taking a concept forward, visualising your design is crucial. The easiest way to do this is surprisingly low-tech, with good old pen and paper. This way, we can quickly sketch out ideas and iterate on your design. This process refines thinking, and is a productive exercise to undertake prior to creating high fidelity mockups.

We use drawing tools such as Sketch App and prototyping tools like Invision to rapidly prototype a representative user interface, gaining insight into the user experience through animations and static user flows. It's always exciting to see a product come together through tangible digital mockups, and it’s at this point that it all starts to feel real.

Our drawing tool of choice at Add Jam is the brilliant Sketch App. It's easy to use, has useful export maps, powerful symbols and shared styles alongside a great ecosystem of plugins and the Sketch Mirror iOS app which makes designing for mobile a breeze.

Static images are just one part of creating a visual mockup. Tools such as Invision and Marvel allow us to create detailed walkthroughs and give a representative example of how the product will behave for your users when it's finished.

Producing these tangible mockups is an extremely useful part of our product development process. It helps us converge on an agreed look and feel alongside a final feature set before commencing development. Here, we can quickly make changes and switch around elements to bring your vision to life from the beginning.

Build fast, ship faster

So, we have a concept and we have a target user interface. Let's build.

Here, our goal is to get a working version of the product into the hands of users and other stakeholders as quickly as we can - without compromising on quality. The timeframe depends entirely on the product at hand, but we usually measure this in weeks.

At this point, instead of spending time on market research, we focus on building out the minimum viable product to sell. Why? It’s simple. We’d rather collect real information from real customers, instead of building up a collection of false information from potential customers. What people say in focus groups, surveys and questionnaires tends to not accurately represent what they’ll actually do in real scenarios. Typically, we can build this minimum viable product in the same amount of time, or less, that it would take to carry out research into potential user engagement, and your product is on the market quicker as a result.

Our development takes place at a breakneck speed - but we do it in a responsible manner. We use tools like test-driven development, continuous integration and frequent backups to mitigate the risk of launching a broken product. Even if that were ever the case, we can roll back to a stable version very quickly through our infrastructure.

Real data from real results

By this stage, we have our minimum viable product, and we're getting paying customers to use your product. At this point, data collection is essential. The information we collect here through our analytics allows us to turn our earlier assumptions into cold hard facts.

We can easily identify problems customers have when using the product and use this information to streamline and improve the overall experience. Likewise, this data and real-world usage can highlight new opportunities and steer the product in ways we could never have imagined at the start of the product development journey.

Iterate and Adapt

After assessing our real-world usage data, and learning from our minimum valuable product, we iterate. Now, with fewer assumptions, we've deescalated the risks at this stage of product development.

Each iteration is unique and can focus on anything relating to the product - from tweaking the interface, to making performance improvements for scale.

Sometime's we don't iterate - and that's ok.

When a product isn't working or proves not to be viable, we need to either call it a day or we go back to the start over from the top. There’s no point in pouring more resource into a sinking ship, let’s patch up the holes and start again.

Growing Together

Product growth starts with the product itself. To achieve growth, we recommend following the Strategy for Pirates: AARRR. This breaks down into Acquisition, Activation, Retention, Referral and Revenue. Follow these steps and watch your growth skyrocket.

Our aim is to make a product used by millions, and this aim throws up some interesting (although nice to have) problems.

Everything we’ve produced up until now has been with the purpose of getting us to this point with as little risk as possible. That means not to prematurely optimise, so here we need to take time to ensure the product can operate at massive scale.

To do this we utilise cloud-based platforms such as Amazon Web Services, Google Cloud Platform and Microsoft Azure. The platform we choose to use is entirely up to the requirements outlined by the project and the product we're creating.

Let's get technical

It's time for a look at the nitty gritty - our development stack. The languages and frameworks we use to make products are wide-ranging. From native mobile development with Objective-C, Swift and Java, to back-ends with Ruby on Rails Framework, or a functional language like Elixir using the Phoenix framework. We pick and choose what to use based on what suits your project based, so you know you're getting the high standard your concept deserves.

Want to follow our process to project success? Get in touch.

We're hiring. Come join the team.