Skip to main content
Internship report Lenny Kossyk

My internship in software development at ASTRUM IT

Software development has been a term that has held a great fascination for me over the past two years. But I was not aware of what software development entailed. Although I was already developing my own programs at that time, I often had problems because I lacked experience. This bothered me a lot, so I decided to start an internship in this field. I report about my experiences that I took from the internship at ASTRUM IT in the following blog post.

https://c4model.com/

How I came to ASTRUM IT
My name is Lenny, I am 19 years old. In Lockdown 2020, I started learning programming in the form of app development with no prior experience. Initially, I worked with Java and wrote my first native Android app. After it was finished, however, I switched directly to Flutter because that's where I see the future for app development. However, while I was developing with Flutter, the feeling of lack of experience increased, so I signed up for the IT event Pitch Club. There I got in touch with ASTRUM IT, told about my programming story and started my internship at Wolfsmantel 2 on 01.02.2022. Already on the first day I was assigned my project.


The project
The project, which is supported and co-developed by two colleagues, is a table booking app called "Desked" written with the Flutter framework in Dart. This offers the user*s the possibility to reserve a workstation, which has appropriate equipment ready if needed. You can also see when your colleagues are in the office. In addition, a map of the company is available, making it possible to make a reservation in the same way as walking through the buildings. The app is part of the "New Work" project.


Start of internship
In the first four weeks of the project, the focus was on planning and learning important basics. This included acquiring knowledge of AsciiDoc, PlantUml, C4-Model and GitLab. 

AsciiDoc is a markup language. With an extension for VS Code AsciiDoc allows me to code a text document. This is used for documentation and is part of the Documentation as Code approach.

PlantUml offers the possibility to create diagrams in text form and therefore also belongs to the Documentation as Code approach.

C4-Model is a way to describe systems. The model is used to represent the project in architecture diagrams in a more detailed way step by step. In total, a C4 model always consists of four levels. It starts with a high perspective, the context level, i.e. with which users as well as systems our app interacts and then goes deeper and deeper into the architecture of the application. The 4th level is for code. PlantUml helps me create the diagrams.

GitLab is the foundation for our efficient and asynchronous development and, as the name suggests, is based on Git. A core element is version management so that changes can be tracked.

In the first step of planning, we created an understanding in the team of what the application should actually be able to do. The method used here was User Story Mapping by Jeff Patton. We then set up the domain model to clarify in more detail which elements should appear in the initial MVP (minimum viable product). An MVP, in this case, is a product with a minimal product scope, so that a benefit can still be gained from the product. In the following, this also serves to support real needs of the user with steps within the application. To do this, we talked to stakeholders to flesh out what they wanted from the app. With all this information, we began to develop technical diagrams and drafts of user interfaces, so-called wire charts. PlantUml and the C4 model were used for the diagrams. By thinking about the WHAT, more and more questions about the HOW could be answered. So towards the end of the planning I could decide to use Riverpod as a state management system [WS3], so that states can be maintained across different screens within the application.  For the development process it is important to create user stories that can be worked on one after the other. For example, a user story describes a completed interaction within the application. These user stories also allow us to create an estimate of development effort. This let me see what was achievable in my internship time. Already, the agile development of the app using the Scrum method began.

 

https://www.linkedin.com/pulse/devops-gitlab-google-cloud-platform-part…-

 

The development process
We started with our user stories or higher-level epic stories and entered them as issues in GitLab. Subsequently, we prioritized in which order we wanted to work on them and added the most important steps for the first sprint to our SCRUM board. The first feature I worked on was the booking dialog, where my colleague supported me. In the process, we established best practices that gave our code better readability. After that, I mainly worked on my features alone. Before each merge, a review was done by my colleague.  Every two weeks there was also a new sprint, a project review and a retrospective, as usual for Scrum.

Conclusion
I really enjoyed my internship at ASTRUM IT. I learned a lot because I was able to experience the entire development process. My code has become better, my way of working more structured and my know-how greater. Of course, there were also things that bothered me a bit like the necessary safety instructions and trainings or the lack of admin rights on the laptop, but on the one hand these are important in a company and on the other hand they seem vanishingly insignificant compared to everything I learned and the pleasant working atmosphere. I would do the internship again at any time.

News-Kategorie: blog entry