Build Street: Fonk’s development workflow

The power of the Build Street lies in Continuous Integration.

Lydia Kooistra
Fonk Amsterdam

--

This term refers specifically to development, but also reflects the core of all projects at Fonk: quality control by continuous iteration based on feedback. This ultimately leads to the making of higher quality products.

Build Street

In December Fonk took the leap and upgraded the development workflow to a more efficient system that better supports collaboration and results in high quality products. After having integrated a few features from GitLab into the workflow it became clear that building the entire workflow around this system was very beneficial for successful collaboration. GitLab provided a great toolbox that the Fonk developers could pick and choose from to create the best workflow. This is called the Build Street. The Build Street integrates the Continuous Integration features of GitLab into the overarching project management methods used at Fonk like Lean development and Agile workflows (Scrum).

From Idea to Plan
This workflow starts with defining the idea, whether it’s the beginning of an entire project or just building a new feature of an existing app. An idea for an existing app can take form based on a number of factors: user feedback, new business opportunities or bugs that need fixing.

The defining of the idea is done with the complete team of developers, UXers and designers. This is key. They then break the idea down into chunks divided under every discipline that are then put into the backlog. The backlog is then divided into 2 week blocks (sprints). This gives a clear overview of the scope of the project and allows quick and efficient execution and delivery of blocks of work. What’s key in this step is that developers, UXers and designers are all involved.

Continuous Integration
The next three steps in the process are specific to the developers involved in the project. They use GitLab and it’s Continuous Integration feature which let’s developers know when new code has broken the build and allows continuous feedback and iteration.

Git
All code is written in the shared Git repository provided by GitLab. This automatically merges changes and allows developers to collaborate on the project without confusion.

Build Server
When changes in the code are committed in Git, the build server runs them and gives the developers immediate feedback about whether the code works. Using Git on it’s own without running it in the build server causes a lot of frustration since team members can forget to commit parts of the code. In this case, the problems in the code would need to be detected, located and fixed manually, which is very time-consuming. Running them through the build server spares the developer of all this time and energy. Also a new developer joining the team will immediately be able to work on the project, because there is no broken code.

Testing
In this stage the efficiency and stability of the code is tested. This stage acts as a quality checkpoint. It consists of both automated and quality assurance testing. The developers at Fonk are working on further integrating testing into the workflow so that it becomes a continuous part of the process. This means that quality checks are happening constantly throughout the Build Street. Using the build server and doing these tests at this point in the workflow allows developers to “check as they go” as opposed to checking code at the end of the project (if ever). This has proven to save an enormous amount of time and results in a much higher quality of code.

Distribution
In this stage the product is distributed. If it’s in the staging environment then it can automatically be distributed to the client and if it’s in the production environment it will be manually distributed to the production environment. The distribution will start after a simple press of the button in the GitLab Continuous Integration environment.

Continuous Integration means perpetual improvement
The process doesn’t end after distribution. In fact, the process is per definition continuous. When an app or feature of an app have gone live, the development team will gather feedback from users and translate this to new ideas that will once again be pushed through the entire workflow. This way the digital products built by the Fonky developers are also perpetually improving due to iteration.

The decision to integrate this workflow has to do with Fonk’s priority to deliver high quality and successfully functioning products. For the big apps that Fonk works on that are used by tens of thousands of users the stakes are too high not to have a reliable workflow that facilitates constant quality control.

Another aspect of the Continuous Integration that the Build Street utilises, is the ability to develop features on different branches. When the development of a feature is completed it can automatically be pushed through to the staging environment. This spares the developer the time-consuming task of manually pushing it through. When a demo of a feature is needed it can be sent or presented to the client without it taking any time at all to produce. When the client gives the go to take the staging to production, the developers essentially only need to push a button in the GitLab CI environment.

Visual Feedback
The developers at Fonk value visual stimulation that signals when something has gone wrong with the code so that action can be taken immediately to fix this. For this reason, they have set up a number of dashboards around the office that take metadata delivered by GitLab’s API and then extracts and displays the necessary information on a screen.

To really avoid missing any unsuccessful builds that have been committed to the Git repository, 4 lights have been set up that display different colours based on the status of the code. Each light represents a different platform: Android, Backend/Web, iOS, and Unity. A red light indicates that there is an unsuccessful build located in the master branch of the project. Green indicates that every thing is running fine. If the build server is running the CI then the lights turn blue. When the lights turn orange the server is busy and there is a queue.

Build Street, a perfect workflow?
The Build Street work flow has greatly improved the efficiency and the quality of collaboration among the developers at Fonk. However, just as the workflow per definition is never ending, perfecting the workflow itself is also an ongoing process. Fonk will continue to utilise newly emerging technology to make this development workflow even more efficient. Keep an eye on the blog for updates and more in depth articles about the individual stages of Build Street.

At Fonk studio we help start ups and companies with the development and realisation of their ideas. We like to build products that have a lasting impact on the world. Needing guidance on your own development process? Are you interested in working with us on your product or idea? Reach out to us here.

Are you interested in working with this workflow? Feel free to contact us on the details! Or if you are interested in joining the Fonk team, reach out to us here.

--

--