Creating a new product: Fixing bugs!
Simon Pittman
Available for freelance web work! | WordPress support | Helping sole traders with their existing websites | Author of 7 books | Books & Networking
You've created a new product. Its working perfectly - its been thoroughly tested for every possible system, situation and scenario. And then one of your customers reports a bug.
It happens to everyone!
Bugs can creep in, and its nobody's fault. You shouldn't feel embarassed. Although if appropriate do apologise to your customer and let them know that you will look into the issue, and contact them again when you do.
(Customers and people using your software reporting a bug is much better then those that don't really care and don't bother reporting it.)
Sometimes bugs can be really easy to fix, other times it can be frustrating trying to find whats causing the problem (often spending hours, days or even weeks trying to identify the cause) or a bit more work to fix.
When do you fix the bug? Does it need fixing immediately and then a patch/new version released? Or can it wait until the next version? That can depend on the nature of the issue, more urgent ones will require an immediate fix and release (which will also keep your customers happy) whereas others can wait until the next version (where fixing the bug should be on top of the list of priorities - and if more then one bug which ones will get fixed need to be prioritised too).
And how exactly do you fix a bug? Especially the more frustrating ones?
- When users report issues, get as much information as possible - including any files they may have used, steps carried out, etc. Try to recreate the problem.
- Actually encourage users to contact you when there is a problem - for example adding options within the software for reporting when things crash. This also shows users you care when things like this happen!
- Sit down with a pen and paper, sketch out what the section of code is doing, line by line. On paper, sketch out what each line is doing - any variables where values change, memory allocated, etc. - as if you and the paper are computer.
- Commenting out code (temporarily removing it) to see if a line of code is causing the issue, or adding extra displays of particular values to see if the correct data is being used. Just remember to put things back once you've done this - you don't want your users seeing lots of test messages or have things not work due to code temporarily being removed and not reinstated!
- Try to seperate the component or section of code or application that isn't working, and test it in a seperate test application. This will make identifying and fixing the cause of the issue much easier.
- If you can't identify or fix the issue, look at if you can temporarily remove that part of the application from the released product. This may seem like a drastic step and a last resort - however its better to have a stable application then things causing major issues!
- When adding new features to your products, make sure it doesn't introduce bugs into existing parts of your application.
- Is a bug really a bug? I'm not saying give excuses - however is the system being used in an unexpected way that is causing the issue? For example if a product is designed to run on Windows, and then someone tries it on Linux using WINE (which allows Linux to run some Windows applications) and problems reported as a result.
Are there any methods, tips or ideas you can add to the above list?
Important thing is to be patient, sensible and don't panic when a bug shows up!
Creating new digital or software products? My book can help you - what is REALLY involved, from planning to release - with plenty of hints and tips to help you - available on Amazon at: https://www.amazon.co.uk/dp/B08C8R9R9W