diff --git a/content/posts/2021-02-12-pse.md b/content/posts/2021-02-12-pse.md new file mode 100644 index 0000000..c9e05bb --- /dev/null +++ b/content/posts/2021-02-12-pse.md @@ -0,0 +1,53 @@ +--- +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