Looking back on the project I think I can be happy with the result. I managed to step into a foreign work environment and hold my own while making a useful app, including all the research and documentation. I learned about the Brickx software and how to operate the warehouse management systems inside it. I also learned about the API. I went to see a couple of Brickx’s customers in person and learned more about their way of work as well. All of this was very interesting to me personally. I have already worked for a retail company before, even worked in their headquarters and their store. It was fascinating to see how the Brickx software works compared to more popular solutions like Microsoft Dynamics or POS manager. Especially since these were tools I had been using before.
Overall I think the management of the project could have been handled more professionally. I was able to do whatever I wanted, whenever I wanted which really is a double-edged sword. On one side I was able to freely use new techniques and explore possibilities. On the other side, there really wasn’t anyone to stop me from making a mistake either. I am the most experienced Android developer within Brickx so if I ever do mess up I have no one to correct me. Furthermore I think the developers within Brickx don’t pay too much mind to project management like continuous integration, tests and planning tools. When I asked about them they told me they barely have any tests for the current version of Brickx and that they let their end-users do the testing for them. While this approach does work, in the end I do feel like making at least some tests would go a long way in ensuring a quality product.
In light of this I am still very satisfied with my way of managing the project. Without any help from my mentor I managed to set up a very clear Trello task board, used a proper branching strategy for Git and set up a basis for continuous integration. The only thing I didn’t end up doing was making unit tests. Seeing how big the project is and how hard it is to test does convince me that not testing it wasn’t the worst idea I’ve ever had. Though I do want to invest more time into testing after the graduation period is over and I get to finish what I started here at Brickx.
Looking at the planning I made at the start of the project I really started losing pace right around when COVID-19 broke out. I think this is very regrettable, I wish I could have implemented more features but by the time the last sprint started, I realized that I only had 4 weeks left to finish my portfolio and other documents. If I could change anything about the planning I would have added the need to update the documentation and the portfolio at least once every sprint. Preferably at the end of the one so that I didn’t have to do all of that at the end of the project even though not all the features are implemented yet. This would have also made it possible for me to ask my mentors for feedback much earlier than I ended up doing.
Communication is another subject I’d like to touch on. I think that in the early stages of the project the communication was very good. We’d often go to visit the stakeholders and every change I make would immediately be relayed to Ruud for approval. As the corona virus broke out, all of that faded away and I should have acted earlier to set up better comms with Ruud. I ended up spending about a month in my room coding away at something that could have been useless. I was lucky to find out that what I made was actually really good but that doesn’t mean I shouldn’t have shown my progress earlier. After that month though I started regularly messaging Ruud about question I had or progress reports. We even agreed to see each other once a week for a more detailed update on how the project was doing.
The last time I did an internship I really wanted to learn how to function in a bigger company. I also wanted to improve my communication skills. This time I wanted to see what working in a smaller scale company is like. I learned that managing a big project like this one all by yourself is quite a challenge. I learned that there should always be a good balance between project management and development. If you don’t have a clear plan for how to tackle a project, going in blind and hoping you find the finish line is simply too risky and can cost people a lot of time and money. Even if your boss is super excited about getting features out and showing them to customer you shouldn’t feel pressured into dropping your documentation and planning just to start coding. Communication is still one of the biggest things I think I can improve on. I learned a lot since my last internship and so I was much less reluctant to ask questions to my colleagues this time around. I also learned to keep in contact no matter what, even during a massive pandemic like COVID-19. It’s key to staying motivated and focused.