The Spike Solution

From idea to prototype in days

"A spike solution is a very simple program to explore potential solutions. Build the spike to only addresses the problem under examination and ignore all other concerns. Most spikes are not good enough to keep, so expect to throw it away."
ExtremeProgramming.org

Rapid prototyping

When you're still finalizing ideas and you need input from others, or when you're trying to get others aboard, very often you need to show them something. When people see something, they grasp it and see the possibilities it might offer. Without that visual clue, they often struggle to "get it".

That's why you need a prototype. Not quite a demo yet: the demo is supposed to show what the final product is like. A prototype is more like a proof of concept - it shows whether an idea is feasible - and ideally, whether it's a good idea or not.

By now, just about everybody agrees that a prototype is a good thingTM. But the trick is to do it fast. In the early phase of the development of an idea, things are fluid - plans change, people change their minds. So waiting a few months or even weeks for that first prototype is just too long. You need rapid prototyping - a very useful agile concept.

A spike solution

But how rapid is rapid? Time and time again in the last dozens of years we found: as fast as you can, period. Speed is of the essence, so you need to think lean and mean - you need a spike solution. Something that will cover the whole idea end-to-end, crossing all technical boundaries you might expect to pose a problem - and steadfastly ignoring the others. That way, if you pull it off, you'll have proven that the idea is technically possible. And on the way, you will have gained valuable insights in the technical complexities involved, but you will also have taken a myriad of decisions you often didn't even know needed taking.

Why is it called a spike solution?, you may ask. Because the solution penetrates all technical layers, backend to frontend. And it's "thin". There's no logging, just the minimum of error handling, etc. When the prototype has served its purpose, you either throw it away, or make it "thicker". That's up to you.

That focus on speed means making radical choices. Avoid solving problems you know in advance are solvable - and solve the others as simply as you can.

... on steroids

That's where we come in. We specialize in carefully choosing the exact minimum of features and technologies you need to implement in the prototype to accomplish its goals - no more, no less. And then we build it - fast, in a matter of days rather than weeks. It won't look flashy, but it'll look good enough. It won't use a dedicated database, because you can always add that later. It won't export to Excel either - that can be done, we know that, we don't need to prove that now. (Unless the complexity of the Excel-sheet is a technical challenge we're not sure how to tackle - then we'll definitely have a go at it). In other words: we focus exclusively on delivering something that works, only solving the problems that need solving.

Preparation

In order to do that, we'll need to minimize confusion - about terminology, audience, or anything else. That means you'll have to explain your idea to us - several times if need be - until we "get it". Then we'll probably have lots of questions about all kinds of details - we're programmers after all. Once we have our answers, we should be able to build the prototype on our own. We'll call you if we have questions, but the more of those we anticipated, the less we'll be delayed by back and forth.

Technologies

React is a Javascript framework that allows extremely fast prototyping, but is also super lightweight. It runs in the browser, or (with some other tools) on your Windows, Mac, or Linux desktop. More likely than not, we'll use React to implement your spike solution. And because React is one of the most popular - and most-used - frameworks out there, finding someone to either build out the prototype or re-use parts of it shouldn't be hard to find.

If it can't be built with React, we'll implement your spike solution in .NET - which also runs on Windows, Mac, and Linux. Or even an combination of a React frontend with a .NET backend.