5 key steps to delivering a successful web app – Step 5 Testing and LaunchPosted by Jason Hawkins / May 16, 2012
The testing and launch of your application is the most exciting, frustrating and often exhausting process for all entrepreneurs. It’s a roller coaster ride of feedback, disappointment and successes; often all in the same day and it can go on for weeks and often months. Users you thought would be raving fans don’t even use the application, whilst champion users who are keen to participate in the testing and extending functionality appear from where you least expect.
Let’s take a step back for a moment and congratulate yourself. You and your team have built a software product – a product that can be sold and resold many times over. Great job! Crack the champagne! Throw a launch party and reward yourself! But, it’s not over yet because the hard work of beta testing and launch has just begun.
It is a nervous time …
- Some people like it, some people love it and some people just don’t get it.
- What bugs will the users find?
- How can you get your app generating income so you can market it further?
- Are the servers and the application going to handle the load of live traffic… if there is any?
- How can you sell more licences and build a buzz around the application?
In the world of web and mobile applications there are a huge number of things that can go wrong with the release of your software. This stage is about managing issues and responding as quickly as possible to resolve problems that occur.
No matter how thoroughly you test your app internally there are always going to bugs. The key to discovering and dealing with these bugs is building a community of beta testers, members of the public or client community who are willing to take the time to use your app and give you feedback.
This community will use your app in their own unique way, using functions and data input in ways that you never imagined. They will torture your app on obscure web browsers and mobile platforms and get opinions from friends and family who will be very quick to offer improvement ideas. DON’T FREAK OUT – this is a GOOD THING! The more this happens early in the process the more stable and robust your application will be in the medium to long term.
The reason why open source software is so successful is because there are thousands of testers all participating in the product’s community, which results in a robust, stable application. Whether your application is open or closed source, having your application used by a large number of people needs to be a priority in this early release stage. You need to FIND the bugs and your community can help you do this.
The key to success is speed of response and the level of engagement with your users during this phase. The process is simple:
- Log and acknowledge the bug quickly
- Assure the user that the team are investigating and resolving the problem
- Gather as much information as you can so you can replicate the problem
- Continue to give the user feedback during the investigation phase – ETA of the fix and what the problem is etc.
- Immediately let the user know (and testing community via a forum, blog or wiki) when the problem is solved
- Seek more feedback and ideas from the user
Engaging with your users is the key here. The more you engage, the more buy-in you will get. Your user will see you are human and invest emotional equity into your application. You could turn a complainant into a raving fan if you deliver a positive outcome.
Bugs can be very frustrating for entrepreneurs, especially when you are about to walk into a sales meeting only to discover that a critical feature doesn’t work on the prospect’s boardroom computer! However, pushing through this stressful phase with a positive approach is very important for the development team. Blaming the developers is going to get you nowhere. If anything, the developers are sweating more than anyone during this time.
Remove the emotion, tackle each bug on its merits, reduce the feedback loop and try to ensure the bug is exterminated first time.
The various types of bugs that appear during beta and stable release phases can be categorised in the push toward stabilisation. Usually severe bugs appear early, such as system crashes and logic errors. As these are resolved, more specific, device and browser bugs become more isolated and user specific.
The more users, the faster the bug detection across multiple devices and browsers, which means you need to act quickly. This is why it is extremely important to have a support forum for your users, because a user’s idea of a bug may just be a lack of understanding of how the application should work and the community can solve these issues for you.
How to reduce bugs
The one way to get your bug list under control is to STOP ADDING NEW FEATURES. Entrepreneurs often get carried away with the exciting release of their application and immediately start to change and add new features. The application will never reach a point of stability if you keep changing it and the developers never feel a sense of completion and achievement. The application will always feel fragile.
It is extremely important that the application reaches a point of stabilisation. So follow these steps:
- Develop to a clearly defined feature set
- Internally test the feature set
- Beta release to a small community
- Bug fix and stabilise, stabilise and stabilise
- Release a stable version to public
- Address minor bugs and stabilise again
- Stop and celebrate!
- Assess new feature requests rigorously and return to Step 1
During the peak phase of bug reports it may be difficult to look past the stressful period to see happy satisfied customers – this is where staying positive is extremely important. The bugs will be resolved and the application will stabilise.
Accepting that one bug fix may result in many more bugs appearing requires patience and understanding that can drive the entrepreneur (and developer) to distraction, but this is just part of the process. Software is often a collection of interconnected complexity that even the team that wrote it may struggle to understand. Patience is a virtue!
Additional steps to reducing the pain of releasing a web or mobile application:
1. Test and test again
If budget permits, it is very important to separate the developers from the testers. Developers often are ‘too close’ to the code and overlook very simple bugs. They use the same data to test forms, when basic boundary testing can quickly reveal flaws.
2. Use development frameworks
If every line of code has to be written from scratch for an application, the more likely there will be bugs. Frameworks lay the foundations of a solid codebase that is already stable. They cut development and testing time and force better coding practices. Start using a code framework.
3. Use a system to track and respond to bug reports
We use a number of systems depending on the testing and release phase. In the early stages, we recommend a whiteboard so you can quickly add and subtract bugs. It keeps the developers focused on critical issues on an hour-by-hour basis. The next phase is better tracked with a software package.
4. Engage your beta testers
Reward and encourage your beta testers to stay involved. Building this community is critical to your application’s success.
5. Resolve bugs quickly
Close the communication loops and get the job done. Give the developers the time they need to resolve issues. In the words of Apple co-founder Steve Wozniak,
“Recognise that doing something for the very first time is difficult. Once it’s been done once, it can look easy. But you have to remember that the first time breaking through that barrier is extremely difficult and should not be underestimated.”
As with every other part of the development process, open and honest communication keeps everyone on track.
About the author
Jason Hawkins is a senior application strategist, information architect and director at KND. His knowledge is based on years of industry experience in taking online application ideas to reality across a broad range of industries.
KND are web and digital professionals with over 10 years in the business. We specialise in web, cloud and mobile apps, eMarketing and SEO strategy, servers, hosting and design. We work closely with our clients to achieve successful outcomes. Call us today (+61 7 3832 4077) or email (email@example.com) to discuss your next project.