54 lines
2.9 KiB
Markdown
54 lines
2.9 KiB
Markdown
|
---
|
||
|
title: "What I've learned: Software Engineering in Practice"
|
||
|
date: 2021-02-12
|
||
|
cover:
|
||
|
image: /images/writing-the-new-chip-e1522281795259-750x410.jpg
|
||
|
categories:
|
||
|
- studium
|
||
|
- software
|
||
|
tags:
|
||
|
- english
|
||
|
- studium
|
||
|
- software engineering
|
||
|
summary: some sentence about that yo
|
||
|
draft: true
|
||
|
---
|
||
|
|
||
|
Part of my computer science bachelors programme is a module called "Software Engineering in Practice".
|
||
|
Students are assigned to teams of 5 by chance and their ratings on the possible topics.
|
||
|
The goal is to go through planning, implementing and testing a small software engineering project in a timeframe just around 4 months.
|
||
|
In the early planning phase a supervisor makes sure, that the teams don't overburden themselves or overestimate the size of their plans.
|
||
|
The result after those 4 months should be a mostly working software project of around 10 thousand lines of code.
|
||
|
At first this sounds like a lot of time, but the timeframe for implementing the project is three to four weeks, shortly before the exams of the semester are due.
|
||
|
|
||
|
## The project
|
||
|
We rated a project called "Scalable Git-Client" as a good match. The idea behind that was that it's nothing too crazy, and also shall be written in java, with which everyone should be familiar in this programme.
|
||
|
The flaw with that approach, in hindsight, was that *everyone* should be able to do Java, so we were a rather mixed team regarding our prior experience.
|
||
|
|
||
|
The project was developed as part of the OSL² project. Meaning that the Git-Client we wrote is intended to be used as a teaching aid in the upper classes of high-school.
|
||
|
Scalable is not meant as efficient, but as can be expanded with features.
|
||
|
With that in mind we grouped common git operations into knowledge levels, so students start with a very limitted set of possible git operations, and have more options later on.
|
||
|
|
||
|
### The Tech
|
||
|
For this project we decided to stay with an old familiar: swing, instead of its cool and new brother Java FX. Knowing the mixed nature of our team this was the right choice in hindsight.
|
||
|
To be able to save settings and other data git doesnt handle for us, we decided to Persist some objects using Jackson.
|
||
|
Finally for our integration with Git we settled on JGit, which we hid behind an layer of abstraction. Let's hope there is a more intuitive library for that in the future.
|
||
|
|
||
|
Draft-List:
|
||
|
- GitWorkflows
|
||
|
- CLT2015 Valentin Haenel (:
|
||
|
- Alles auf Master ist selbst wenns nur für 2 Tage ist keine option
|
||
|
- -> CODE REVIEW IST NICHT OPTIONAL
|
||
|
- Jackson als JSON Serialisierer/Deserialisierer
|
||
|
- Custom Serialisierung
|
||
|
- Gitlab runners
|
||
|
- Basics JGIT
|
||
|
- merge being hell.
|
||
|
- Teamwork. Wie delegiert man.
|
||
|
- Was macht man mit schwachen Teammitgliedern mit denen man auskommen muss?
|
||
|
- Zeitmanagement: Sehr enge deadline
|
||
|
- Technisches Schreiben (again)
|
||
|
- Open Source Licenses
|
||
|
- Gitlab stuff
|
||
|
- Presenting work which is only partly finished due to time constraints
|