Code Monkey home page Code Monkey logo

thebugfixmanifesto's Introduction

The Bug Fix Manifesto

http://krasimir.github.io/TheBugFixManifesto/

I could split my programming experience in two parts. The first one is a little bit more creative. That's the time where the application still does not exist. You invent and architect the program. The second part is extending and fixing the already created system. They, these two parts, have their own interesting and boring sides. However, I believe that they both are in the essence of delivering quality software. This article focuses on bug fixing. It aims to give you bunch of advices how to properly handle the problems in your applications.

The preparation

The bug, the problem, in your system should be documented. It should be described somewhere. No matter if you are the developer that will work on it or the tester that found it. Create a ticket, issue, card, or whatever you use for managing your projects. Don't rely on instant messengers for bug reporting. Emailing is a little bit better but still not the right way to go.

Here are few things that you have to include in your report:

  • What exactly (you think) is the problem. Please be as detailed as possible. Description containing only one sentence saying "The product's page is broken!" does not help.
  • Write down how (you think) the software should look/behave. It is possible that you don't know that and something reported as a bug may be a working feature.
  • Include steps to reproduce section. The ability of proper and quick bug reproducing is really important.
  • In the end, guide the developer (if possible) how to fix the bug. If you for example know which parts of the system are involved you better mention them.

Get the things done

Now you have a nice bug report and can't wait to start working. Check out the steps below to make sure that you are on the right track.

  • Never make code changes before understanding what exactly the issue is. That's just a waste of time. Invest as much time as needed for finding the real problem.
  • It will be nice if you reproduce the bug with an automated test. Especially in web development. You don't want spending half of your time in the browser filling forms and clicking links.
  • Think of the best solution possible. Plan the changes and discuss them with the team.
  • And finally do the job. Fix it!
  • Look back and refactor your code. For sure you missed something.

Finish line

When everything is done and you are proud of yourself take some time to document your work. It takes just a few minutes but it matters to the reviewers. While submitting your changes list the following:

  • A link to the ticket/issue/card in your project management system (if you use one).
  • Explain briefly the problem.
  • Explain your solution. What parts you changed and why.
  • Write down steps for reproducing the problem.

Summary

I hope that some of the advices above apply to your workflow. They work for me and really help solving bugs quickly.

thebugfixmanifesto's People

Contributors

qgustavor avatar

Stargazers

Stoyan Delev avatar  avatar Claudio Altamura avatar Arian avatar Krasimir Tsonev avatar

Watchers

Krasimir Tsonev avatar Tony Brown avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.