Scrum im Einsatz

Wir leben heute in einer schnellebigen Zeit. Einer Zeit in der morgen schon etwas, was heute noch für richtig und wichtig befunden wurde, nicht mehr gilt. Vor noch wenigen Dekaden war auch die Softwareentwicklung starren Strukturen unterworfen. Der Kunde/Stakeholder trat mit einem Softwarewunsch an eine Firma heran. Diese setzte sich mit Lasten- und Pflichtenheften auseinander, plante das komplette Projekt durch, nur um am Ende festzustellen, dass es nicht den Erwartungen des Stakeholders entspricht.

Um den stetigen Änderungen entgegenzutreten wurden agile Vorgehensmodelle entwickelt, die sich eben diesen Änderungen anpassen können. Eines dieser möglichen Vorgehensmodelle ist SCRUM. Im Gegensatz zu zB Kanban, wurde SCRUM speziell für die Softwaretechnik entworfen und betrifft das Projekt- ud Produktmanagement im besonderen.

Was ist Scrum?

Was ist SCRUM genau? Es ist ein Vorgehensmodell, also eine Methode, keine Software. Auch wenn es spezielle Software für den Einsatz gibt (Projekt- oder Ticketsysteme), so ist nicht zwingend ein solches Programm einzusetzen.

SCRUM hat 4 Leizsätze:

  • Individuen und Interaktionen sind wichtiger als Prozesse und Werkzeuge
  • Funktionierende Software ist wichtiger als umfassende Dokumentation
  • Zusammenarbeit mit dem Auftraggeber ist wichtiger als die Vertragsverhandlung
  • Reagieren auf Veränderung ist wichtiger als das Befolgen eines Plans.

Auch ergänzende 12 Grundprinzipien wurden dazu erstellt:

  • Unsere höchste Priorität ist es, den Kunden durch frühe und kontinuierliche Auslieferung wertvoller Software zufrieden zu stellen
  • Heiße Anforderungsänderungen selbst spät in der Entwicklung willkommen. Agile Prozesse nutzen Veränderungen zum Wettbewerbsvorteil des Kunden
  • Liefere funktionierende Software regelmäßig innerhalb weniger Wochen oder Monate und bevorzuge dabei die kürzere Zeitspanne
  • Fachexperten und Entwickler müssen während des Projektes täglich zusammenarbeiten
  • Errichte Projekte rund um motivierte Individuen. Gib ihnen das Umfeld und die Unterstützung, die sie benötigen und vertraue darauf, dass sie die Aufgabe erledigen
  • Die effizienteste und effektivste Methode, Informationen an und innerhalb eines Entwicklungsteam zu übermitteln, ist im Gespräch von Angesicht zu Angesicht
  • Funktionierende Software ist das wichtigste Fortschrittsmaß
  • Agile Prozesse fördern nachhaltige Entwicklung. Die Auftraggeber, Entwickler und Benutzer sollten ein gleichmäßiges Tempo auf unbegrenzte Zeit halten können
  • Ständiges Augenmerk auf technische Exzellenz und gutes Design fördert Agilität
  • Einfachheit — die Kunst, die Menge nicht getaner Arbeit zu maximieren — ist essenziell
  • Die besten Architekturen, Anforderungen und Entwürfe entstehen durch selbstorganisierte Teams
  • In regelmäßigen Abständen reflektiert das Team, wie es effektiver werden kann und passt sein Verhalten entsprechend an

All das zusammen ist dem Agilen Manifest entnommen (siehe [MASD]).

Die Basis der Arbeit bilden grob definierte Ziele, die User Stories genannt werden. Gibt es mehrere zu einem ähnlichen Thema, so fasst man sie zu „Epics“ zusammen. Eine User Story ist ähnlich aufgebaut, wie: „Als Mitarbeiter in der Logistik möchte ich meine Waren digital erfassen können.“ Ob hierzu ein User Interface eingebaut werden muss, oder eine Kamerasoftware, die einen Barcode einliest, ist hier noch nicht wichtig. Basierend auf [Coh04] schreibt A. Krallmann in [OS], über die Userstories:

  • User-Stories sind dazu da, um Kommunikationen zwischen dem Fachbereich und Entwickler zu erzwingen; sie können für Iterationsplanungen verwendet werden und verschieben eine detailliertere Ausarbeitung auf später.
  • Akzeptanztests sind dazu da, um Details zu einer User-Story zu dokumentieren.
  • User-Stories sind transient und überleben nicht die Iteration, in der sie implementiert werden.
  • Die Nachteile von User-Stories sind insbesondere bei größeren Projekten deren Verwaltung, die Traceability zwischen ihnen und sie ersetzen keine Dokumentation des zu entwickelnden Systems.

Trotzdem haben diese Userstories Vorteile. Gerade durch die Tatsache, das das Team darüber diskutiert, werden mehrere Sichtweisen berücksichtigt, die die Userstory bereichern.

Nach der gemeinsamen Formulierung werden diese dann im „Product Backlog“ abgelegt. Dazu später mehr.

Völlig von der Rolle

Auch wenn gerade darüber diskutiert wird, weitere Rollen in das Konstrukt aufzunehmen, so gibt SCRUM aktuell drei Rollen vor:

  • Product Owner
  • Entwicklungsteam
  • Scrum Master

Auf Kundenseite gibt es:

  • Stakeholders (Entscheidungsträger)
  • Users (Nutzen)

Product Owner

Luis Reyes, CC-BY-NC-SA, blog.luis-reyes-plasencia.info

Der Product Owner ist für den wirtschaftlichen Erfolg verantwortlich und pflegt das „Product Backlog“ zuständig. Dies ist ein Ort, an dem die Eigenschaften des Produktes (die künftigen) definiert werden. Mit dem Entwicklungsteam und den Stakeholdern werden hier neue Anforderungen eigepflegt. Der Product Owner ist derjenige, der regelmäßig mit den Stakeholdern spricht und versucht, Ihre Bedürfnisse zu verstehen. Auch ist er derjenige, der die Prioritäten der User Stories festlegen kann. Die ständige Priorisierung erfolgt meist aus einer Kosten-Nutzen-Relation. Das bedeutet, dass mit Scrum schnell vorzeigbare und nutzbare Ergebnisse vorliegen.

Team

Das Entwicklungsteam besteht aus drei bis neun Mitgliedern. Idealerweise hat jedes Mitglied andere Kenntnisse und Fähigkeiten, so das auch komplexere Projekte umgesetzt werden können. Das Team organisiert sich selbst, und lässt sich weder vom Scrum Master, noch vom Product Owner vorschreiben, wie Backlogeinträge umgesetzt werden. Die Schätzung des Umfangs einzelner Einträge obliegt ebenfalls dem Team. Vor einem neuen Sprint entnimmt das Team aus dem Product Backlog einige User Stories, und bricht sie auf einzelne Aufgaben (Tasks) herunter. Letztere sollten in spätestens einem Tag erledigt sein. All dies fließt in den Sprint Backlog ein.

Der Sprint Backlog ist derjenige, welches sich das Team selbst gibt. Es schätzt den Aufwand pro User Story, und übernimmt so viele Aufgaben, wie möglich in den Sprint.
Der Sprint selbst ist eine ständige Iteration. Nach dem Sprint ist vor dem Sprint. Er kann jeweils eine Woche oder auch einen Monat dauern. In jedem Fall ist es wichtig, am Ende ein funktionales Produkt auszuliefern.

Scrum Master

Jetzt fehlt zuletzt noch die dritte Rolle: der „Scrum Master“.  Er kann Bestandteil des Teams sein, muss er aber nicht. So wirkt er als Coach und verantwortlich für das Gelingen des Teams. Zudem räumt alle Hindernisse aus dem Weg, wie möglicherweise mangelnde Kommunikation, persönlichen Spannungen im Team oder Störungen in der Zusammenarbeit mit dem Product Owner. Diese Rolle erfordert Fähigkeiten im situativen Führen (siehe zB Ken Blanchard).

Der Sprint

Wie ist der Ablauf eines Sprints?
Zu Beginn steht die Planungsphase. Es wird festgelegt, was entwickelt wird, und ebenfalls wie es entwickelt wird. Was entwickelt werden soll, wird vom Product Owner festgelegt.

Definition of Done

Das Team erarbeitet gemeinsame Akzeptanzkriterien (Definition of Done). Somit wird auch die Frage danach beantwortet, wann eine Arbeit als fertig zu gelten hat. Anfangs benötigt dieser Schritt vielleicht etwas mehr Zeit. Aber durch weitere Iterationen und wachsender Erfahrung werden auch hier Grundlagen gelegt, die für weitere Iterationen gelten können. Grundsätzlich gilt es auch in einer Scrum-Umgebung reguläre Tests, sowie eine Entwicklerdokumentation anzufertigen. Auch diese Positionen kosten Zeit und müssen implementiert werden. Schlußendlich jedoch spart es Zeit, da diese Schritte zur Gewohnheit werden, und der Qualitätsstandard gehalten, oft noch weiter übertroffen werden kann.

Wie bereits erwähnt, kann (und sollte) der Product Owner die Priorisierung festlegen. Dennoch obliegt es dem Team zu entscheiden, was im folgenden Sprint umgesetzt wird. Gemeinsam formuliert das Team ein Ziel des Sprints, einen Forecast (wahrscheinliches Sprintende).
Im zweiten Teil des Sprints wird vom Team das Wie besprochen. Dies alles fließt nun in den Sprint-Backlog ein.

Das Scrum Manifest macht zur Umsetzung des Backlogs keine Festlegungen, was sowohl ein einfaches unterteiltes Whiteboard sein kann, sowie ein professionelles Computerprogramm.

Author: Wikimedia Commons contributors, Publisher: Wikimedia Commons, the free media repository, Permanent URL: https://commons.wikimedia.org/w/index.php?title=File:ScrumBoard_(png).png&oldid=219089599

In meinem letzten Unternehmen im Fintech Bereich hatten wir ein großes Board, unterteilt in: ToDo, In Progress, To Verify und Done. Anhand der Begriffe lässt sich die deutsche Bedeutung ableiten. Sinn dieser sehr offenen Art und Weise ist es, Transparenz zu leben. Jeder kann einsehen, wie weit das Team gekommen ist und ob und wo es hakt. Hier kann dann frühzeitig dagegen angegangen werden.

Der Daily Scrum ist ein tägliches, etwa 15 Minütiges Treffen des Teams, in dem besprochen Wird, wie der aktuelle Status ist. Falls dabei festgestellt wird, dass eine Aufgabe länger als geschätzt dauert, wird sie aufgeteilt. Größere Probleme, die die Meetingzeit überschreiten, werden dem Scrum Master übermittelt.

Ist der Sprint beendet, beginnt der Sprint Review. Hier findet die Präsentation bei Kunden statt. Eingehendes Feedback wird vom Product Owner aufgenommen und für die weitere Gestaltung des Product Backlogs (möglicherweise auch zur Priorisierung) verwendet. Der Sprint Review dauert ca. 1 Stunde pro Sprint. Durch ständige Iterationen wird sowohl das eigentliche „Fertigwerden“, als auch die Produktqualität zur Routine.

Mit der wichtigste Punkt für das Team ist die Retrospektive. Hier wird ehrlich die Arbeitsweise überprüft, und Möglichkeiten gefunden, sich besser, effizienter und effektiver zu organisieren. Um die Offenheit zu fördern, findet dieses Meeting nur mit dem Team und dem Scrum Master statt. Insgesamt ist die Retrospektive aber ein Teil, der dem Team beim wachsen hilft. Jedes Individuum lernt für sich, und auch die Gruppe lernt besser zusammenzuarbeiten.

Der letzte Punkt des Sprints ist zugleich der Beginn des neuen: Product Backlog Refinement. Hier werden Einträge geordnet, Einträge gelöscht, neue Einträge hinzugefügt, Einträge werden Detailiert oder zusammengefasst, Userstories werden geschätzt und Releases werden geplant.

Somit wurde ein kompletter Schaffenszyklus eingeführt, verbessert, abgenommen und abgeschlossen.

Auf manche Punkte wie zB das „Planning Poker“ zur Aufwandschätzung und ein paar andere bin ich an dieser Stelle nicht weiter eingegangen, das dieser Post nur einen Einstieg in die Welt von Scrum geben sollte.

Quellen:
* [WP] Seite „Scrum“. In: Wikipedia, Die freie Enzyklopädie. Bearbeitungsstand: 30. Juni 2018, 09:54 UTC. URL: https://de.wikipedia.org/w/index.php?title=Scrum&oldid=178749076 (Abgerufen: 5. Juli 2018, 19:02 UTC)
* [MASD] Manifesto for Agile Software Development, URL: http://agilemanifesto.org/ (Abgerufen: 5. Juli 2018, 19:03 UTC)
* [Coh04] M. Cohn, User Stories Applied, Addison-Wesley, 2004
* [OS] A. Krallmann, Modellbasiertes Requirements Engineering, Objekt Spektrum 04/2018, S. 51

Create a screen sketch in Windows 10

From time to time, you might want to create screen clippings in Windows 10. There are many so-called „Snipping tools“ on the market, all of which bring different advantages and disadvantages. Most of these tools only offer rectangular choices. Some tools offer post-processing. For example, add notes, highlight something and so on.

The screen sketch tool shipped with the Windows 10 build 1803 17677.1000. How do you do this? What possibilities does it offer?

Create a screen sketch with Windows 10

This is done as follows:

  1. We press the key combination: Windows Key + SHIFT + S
  2. Now the screen darkens and a small toolbar opens at the top of the screen
  3. The first button offers the possibility to select a rectangular area. The second offers the interesting possibility of free choice.
  4. After the selection, the area is saved to the Clipboard. A popup pops up that starts the app screen sketch after clicking on it.

Instead of the key combination mentioned in point 1, you can also click on the info area in the lower right corner. Then click on „Expand“ and finally on „screen clipping“. The points 2-4 meet here analogously.

Here I have created a free selection.

Windows 10 free screen capture

Windows 10 free screen capture

The screen sketch app appears, which allows various manipulations.

Windows 10 edit screen capture

Windows 10 edit screen capture

However, the built-in functions are more likely to be directed at surface users. I can imagine very well that the operation with surface and input pen is good. For desktop users, a quiet mouse-hand is important. I would also like a way to enter text using the keyboard.
My submitted test report to Microsoft is available here: https://aka.ms/AA1hswc (opens Feedback hub).

Previous Tests: Copy multiple elements to the clipboard with Windows 10Windows 10 Insider Preview 17672.1000

Eine Bildschirmskizze in Windows 10 erzeugen

Von Zeit zu Zeit möchte man Bildschirmausschnitte in Windows 10 erzeugen. Auf dem Markt sind viele so genannte „Snipping-Tools“ zu finden, die alle unterschiedliche Vor- und Nachteile mitbringen. Die meisten dieser Tools bieten lediglich rechteckige Auswahlmöglichkeiten an. Manche Tools bieten eine Nachbearbeitung an. Zum Beispiel Anmerkungen hinzufügen, etwas markieren und so weiter.

Mit dem im Windows 10 Build 1803 17677.1000 ausgelieferten Tool „Bildschirmskizze“. Wie geht man dabei vor? Welche Möglichkeiten bietet es?

Eine Bildschirmskizze mit Windows 10 erstellen

Dabei geht man wie folgt vor:

  1. Wir drücken die Tastenkombination: Windows-Taste + Shift + S
  2. Jetzt verdunkelt sich der Bildschirm, und eine kleine Toolbar öffnet sich am oberen Bildschirmbereich
  3. Der erste Button bietet die Möglichkeit, einen rechteckigen Bereich auszuwählen. Der zweite bietet die interessante Möglichkeit der freien Auswahl.
  4. Nach der Auswahl wird der Bereich in die Zwischenablage gespeichert. Es erscheint ein Popup, das nach dem anklicken die App Bildschirmskizze startet.

Statt der im Punkt 1 erwähnten Tastenkombination kann man auch rechts unten auf den Info-Bereich klicken. Dann klicken Sie auf  „Erweitern“ und schlussendlich auf „Bildschirmausschnitt“. Die Punkte 2-4 treffen hier analog zu.

Hier habe ich mal eine freie Auswahl erstellt.

Windows 10 free screen capture

Windows 10 free screen capture

Es erscheint die Bildschirmskizze App, mit der verschiedene Manipulationen möglich sind.

Windows 10 edit screen capture

Windows 10 edit screen capture

Die eingebauten Funktionen richten sich allerdings wohl eher an Surface Nutzer. Ich kann mir sehr gut vorstellen, das die Bedienung mit Surface und Eingabestift gut ist. Für Desktop-Nutzer ist eine ruhige Maus-Hand wichtig. Wünschen würde ich mir auch eine Möglichkeit, Text mit der Tastatur einzugeben.

Mein eingereichter Testbericht an Microsoft ist hier verfügbar: https://aka.ms/AA1hswc (Öffnet Feedback-Hub).

Copy multiple elements to the clipboard with Windows 10

Saving Time in Windows 10

Many people knowing the problem. You’re working an one app, and you need some text fragments or pictures from another app. Before Windows 10 Build 1803 17677.1000 you have to copy and paste them many times. But now you can copy multiple fragments and pictures in one time. But how to do it?

First of all you have have to register yourself as Microsoft Insider as explained there. Then you can follow the next steps.

How to use the new Windows 10 Clipboard?

  1. First click inside your Windows 10 on Start > Settings > System > Clipboard and activate Save more Elements
  2. Then start the app, where you want to copy anything.
  3. Now mark a element and copy it with STRG+C or with the copy command.
  4. Do this with all needed Fragments.
  5. Now go to the app, where the stuff should be placed.
  6. Use the Windows-Logo-Key+V. Now you see all copied content in a small box. Just click on one element, and it’s pasted into your target app.

More on: https://aka.ms/AA1a313

Enjoy it…

Previous Build discussed there.

 

Windows 10 Insider Preview 17672.1000

Today i upgraded Windows 10 to Insider Preview 17672.1000 (rs_prerelease) from the fast Ring.

Currently i’m got some troubles with starting that apps:

  • xb.exe (eXtra Buttons)
  • GreenshotOCRCommand.exe
  • TuneupUI.exe (Avast Cleanup)
  • AvastUI.exe (Avast Antivirus)
  • jetbrains-toolbox.exe
  • OneDrive.exe / OneDriveSetup.exe
  • Facebook App
  • XING App

If you use one of them, and thinking about upgrading them, so better wait until the next build.

More on: https://aka.ms/AA1edf9

Edit: After a complete delete from all Avast Tools the Update works perfectly.

publican_creators version 1.2.0 available

A new release of publican_creators are now available.

Description

publican_creators are a small tool for daily DocBook writers who are using the Redhat publican tool.

What happened?

  • 3 minor enhancements
  • updated dependencies
  • code refactoring with rubocop and reek
  • use XDG Standard for config files

How to get it?

Just use “gem install publican_creators”.