We feel continuous communication and feedback loops are the most important factors of success. After all, how can you provide the best possible product without knowing what a client does and doesn’t like?
If you’ve read our blog post about Pair Programming, you’ll know that this is one of the first, most effective feedback loops in the process of software development. It happens while the code is being conceived, and therefore catches any potential problems or mistakes instantaneously!
But even before this, we use Test Driven Development (TDD), where we write a functionality unit test for the code even before we’ve written it. This is ultimately the very first form of feedback, and helps us measure progression as we move forward.
Whilst a feature or certain element of a piece of software is being developed, a specific developer will be continuously testing it using both manual and automated methods to ensure it works exactly as desired. If there is a bug, the tester will feed back to the developers using a tool called GitHub that tracks inconveniences such as this for monitoring.
Once this is complete and before we release the software, we make sure it goes through a ‘code review’. The element in question is sent to a Team Lead or senior developer for checking and reviewing – adding yet another layer to our quality-assured software.
After each development period (known as a ‘sprint’, consisting of two weeks with two developers and a test developer), we deliver working software releases to our clients so that they are able to see their product, and most importantly, try it out! This allows them to decide whether there is any changes required and feed back comments to us so we can start the next product iteration.
We also take part in ‘retrospectives’ at the end of each sprint (also at the end of a project), where the team will get together and evaluate how the project has developed; discussing what went well, what didn’t go quite so well and what to do next time to further improve the outcome. Continuous evaluation both throughout a project and also individually can really help the team and team members’ personal development – something we all endorse at Bluefruit!
We like to think of our process as a journey of discovery, and getting as much feedback as possible throughout a project allows our teams and clients to learn and adapt to changes as they arise. Upon project completion, our clients will receive a piece of software that has not only been thoroughly tested using various methods of feedback, but has benefited from client input throughout the entire process, meaning it has been designed and tailored to them exclusively.