What does the project do?
A parenting app created as a spin-out of Warwick Medical School with various tools such as time out, consequences, distractions and lots of other modules.
How is it made?
Both Android and iOS apps are made natively. The Android app uses Kotlin with Jetpack Compose (a similar paradigm to React).
Which bits did I do?
I was based entirely in the android app. For the first summer, I was the only android developer. After this, however, we were based in a small team of developers.
How is the company organised?
The engineers tend to interact primarily with the team lead / project manager, who decide on the tasks to do and create tickets for. There is very little customer interaction. This keeps things organised and grants lots of control to project management who may need to deliver certain features by a deadline for a contract, but it gives less agency to the developers and can make the work feel disconnected from the customers.
There was also no process for reviewing others' code, although there was a process to do manual testing on features before release. Branching was used, although the processes were not very mature as it is a small company.
What have I learnt?
- The pros and cons of agile development.
- Communicating openly about ways of working and how to improve processes as a team.
- Learning and adapting to the strengths and weaknesses of other members of the team.
- Unlike a personal project, production code rarely gets refactored in big ways as not everyone has the full picture, and refactors can lead to lots of merge conflicts.
- Effective manual testing of new features.