Blogs

Behind-the-scenes of software development

by John Jones | Jun 10, 2021

Having worked with restaurants since 2010, we’ve been behind the scenes of many and seen some wonderful examples of innovation. We're always impressed by the way restaurant owners, managers, chefs and staff continually refresh their service models and menus to deliver a fantastic dining experience. 

In this short blog, we’re going to give an insight into our own world: software development. Come with us on a behind-the-scenes journey through what goes into creating new functionality for the favouritetable restaurant booking software.

Demand

Readers may assume that software companies just create whatever they feel like, with geeky developers fuelling their creativity in a corporate HQ of bean bags, duvet days and office table tennis. Certainly that is true of some companies and there is a place for such blue sky thinking, but at favouritetable we balance our creativity against customer demand. After all, there really is little point launching new novel features if they are functionally pointless. 

Feedback from our restaurant customers is collated constantly and evaluated at our regular software development meetings. We look for recurring themes, great ideas, complaints and their veracity. 

It goes without saying, of course, that when it comes to software the wants and needs of restaurateurs is usually driven by feedback from their own consumers. The way customers use technology to interact with their favourite restaurant, pub or café bar is constantly evolving, resulting in pressure on those business to provide the expected solutions.

As with feedback from consumers on food and beverage products, people have a diverse range of views on what is a priority when it comes to software. Sometimes these can be contradictory, so we always look for consensus when agreeing what will feature in our development road map. Other factors are also vitally important in informing what we will prioritise, including current trends, legislative changes and of course competitor behaviour.

Road map

Software can be seen as just a tool for doing stuff, but in most cases its use can be tactile and generate emotive responses. Feedback from customers is the number one weapon in our armoury to inform our development direction, but with such a breadth of incoming opinion it is important we structure things properly. For that reason, we have a development road map which plans what we will create and when, usually reaching up to 12 months ahead and focusing on monthly, quarterly and annual outcomes.

The road map is not only critical for the achievement of our own goals, but allows us to give favouritetable customers a clear view ahead of what we will be delivering and when, in response to their feedback. As with most areas of business, however, we have to balance this structure against the need to be responsive when thrown a curve ball. That’s why we have at our heart an agile mind-set, meaning that ultimately we own the structure, not the other way around, so we can deliver changes to our product quickly should we need to. One thing we never do, however, is knee-jerk – all development decisions are based on an evaluation of need, demand, and of course commercial value.

Scope

Having agreed what will feature in our development road map, we produce a scope for the project. Essentially we have to create a range of criteria to frame the work, based on what will be its key measure of success. A typical scope will answer:

  • What does the new functionality need to do, in pure technical terms?
  • How will it be designed such that it adds value to the user’s experience?
  • How must it look?
  • When does it need to be delivered by?

The back end

Few users of software such as favouritetable will be too concerned with how their product works. But in reality it is this hidden area which drives the quality of the user experience. In simple terms, there is little point in creating something which looks very attractive yet crashes in day to day use. 

At the heart of favouritetable is a database which can be considered the engine of the product, constantly whizzing away unseen, keeping all that data safe and usable. Databases is a subject which could easily fill a blog (although we think most would find that a little boring!) but in order for us to deliver a contemporary product, we invest in the best database environment to ensure speed and scalability (if you are evaluating any software product, it is always worth considering this aspect – it is a sad fact that many established software companies still rely on obsolete databases which can be slow, insecure and time-bound).

The database needs to be programmed in order to tell it what to do and again our choice of technology here is critical for a great user experience. A fit-for-purpose database will require its instructions to be written in a modern programming language. We won’t go into that area either, but suffice to say a software product written in the programming equivalent of ancient Greek or Latin isn’t going to be long for this world; that’s why we invest in the best people with cutting edge knowledge and skills.

Having decided what we want to do with our invisible back end, we also have to make sure what we want to do is achievable without creating any issues for the system as a whole. With other software, there is nothing more frustrating than your system being updated, only to find something else within the product then doesn’t work as it should, post-launch. 

The front end

At this stage of our development journey, we have created some lovely functionality which meets the original brief, is fast, secure and dovetails with other areas of the system. However, right now it probably won’t look very nice to the average user so we have to design the areas seen on screen. That area is known as the user interface, or “UI”.

First and foremost, the UI has to be a nice place. It must be intuitive, easy on the eye, familiar and very usable. It has to add value to the user experience, so during this design phase we look at all sorts of things you may not have considered: the number of clicks to reach the end goal (the fewer the better); the inclusion of contemporary trends such as icons, menus, colours together with its usability on a range of devices. We need to build-in a number of elements expected by customers, including drag, drop, swipe, scroll, tap and so on.

Sandbox

So, we have our new functionality running seamlessly on the database, nothing breaks and the user interface is beautifully designed. Time to launch it and move along to the next item on the development road map, right? Not quite.

At this stage our project needs a mini environment in which to bed in, so it is put in a special area called a sandbox where it can be accessed and tested by our own people. They will adopt the users’ mind-sets; try every function while constantly referring back to the original brief to make sure it does what it was designed to do and in a great way. They’ll try everything possible to “break” it, then re-work the problem area and test it again. Only when he’s completely confident that the product is robust will our Development Director sign off this phase as complete.

User Testing

Can we launch it yet? Sadly, no, but for good reason. Although we have worked with restaurateurs since favouritetable began all those years ago (and therefore learned a thing or two about what they expect from us), we are humble enough to know that the customers will be the final judge of whether we have it right, or wrong. Thankfully we’re pretty good at getting it right first time and that is very much down to user testing.

At this stage we open up the sandbox to a select band of customers, so they get a hands-on and behind-the-scenes view of the software, prior to release. During this phase the functionality will be perfectly formed and look just like the real thing, despite being a hidden-away prototype. We love watching the testers use the system, what they look for, what they’re thinking and saying and of course hearing their feedback. We note it all down, discuss it and make improvements.

Once we are completely happy with what we’ve built and more importantly confirmed that customers are happy too, it is time to launch the functionality for all customers.

Are we there yet?

Nearly! Our database is robust, the UI works wonderfully and the product has been tested to destruction. One last task is to run a series of dummy “switch ons” to make sure there will be no problems when we finally press the launch button. The database resides in an online cloud environment (a server) so we run a series of rehearsals beforehand, ensuring everything will work as it should when the various super computers start chattering away with each other on launch day. 

To be absolutely sure, our team build-in special measures for rolling back the installation and include automatic fail-overs for any unforeseen issues. Thankfully we’ve never needed them, but it is great to know they’re there.

The big switch-on

We’re finally ready to launch our new functionality to our customers and the big day is here!

Having communicated the news to our customers, we make the hidden changes live. With a SWAT-like team in place to cover all eventualities, usually working in the dead of night to minimise any disruption to customers’ systems, with smiles on our faces we press the big green button.

The result? Busy restaurateurs open their favouritetable system and discover the functionality they have asked for and been promised, delivered seamlessly and ready to play a big part in driving profitability, sales and efficiencies in their business. 

Wrapping up

From receiving ideas and feedback through to scoping and delivering the project, we always have satisfaction in mind; if all goes well the customer will continue to evangelise favouritetable and leave us glowing reviews on sites like Capterra.

Thrilled customers mean everything to us and they are why we do what we do.

We hope you enjoyed this little insight to our world of software development. If you have feedback on the system or would like to join one of our testing groups, please do get in touch.


Favouritetable provides reservation softwarepre-booking modulestake-away backed by a full manager portal and a host of restaurant-centric features

We're passionate about restaurants, which is why we have developed the best value full-function restaurant software on the market. 

Call us today on 033 0124 4785 or email us at info@favouritetable.com and we will be delighted to demonstrate what you will achieve with the right technology.