Programming is not all about writing code. Sometimes, a good iOS product development process is more about understanding project specifics than it is about novelty or efficiency. Having systematic steps during development helps optimizing the whole process and adapting code to each and every situation.
Our iOS developer, Alex Cristea, states that striving for a flawless technical process is really hard, but also gives the measure of how good a programmer one can be.
Clean code is easier to maintain and reuse.
The ideal towards which any programmer must aim is test-driven development. The steps of this process include
- writing a test for the future code
- writing the code
- cleaning the code (refactoring)
The purpose of test-driven development is not so much to validate, but to specify some of the functionalities of the end-result (design, for instance). This is where the process meets the requirements of a systematic agile approach. Some differentiate between a process of "test driven development" and one of "test first development", the main difference lying in the refactoring part, that only goes for the first and that realises the guidance. Others claim that they are one and the same.
Nevertheless, we found the schema below useful for depicting an organized, complex process of writing code.
Clean code is the result of several factors.
One of these main factors is "pair programming" or spooning, a process that involves identifying a coding partner and sharing a desk and computer. One person controls the keyboard and types in the code, while the other monitors the design and scans for bugs.
Automatic testing, with the aid of Cucumber, is another method deemed helpful for behaviour-driven development.
Last, but not least, Alex claims that the SCRUM methodology does wonders for clarifying the whole process of development. Hooking the entire team onto the same work standards renders the team more united and driven.
On top of that, following the typical learning process described in the previous articles also works: reading Uncle Bob's works on writing code and watching films regularly increases the capacity for identifying bad lines of code.
Perfecting coding techniques takes time (just as any other learning process) and is not always easy to practise, due to deadlines and even impatience. But testing remains the one clear path to becoming a truly professional developer. And that is worth all the time in the world.