Softwarekwaliteit in een ontwikkelstraat

41
SOFTWARE KWALITEIT IN EEN ONTWIKKELSTRAAT ONZ E ER VARINGEN NA 8 JAAR DDOA 11/01 /2022 1 RODY MIDDELKOOP, [email protected], @RODMIDDE

description

Presentatie voor NIOC 2013. Mijn ervaringen met een eigen opgezette ontwikkelstraat voor gedistribueerde Java projecten voor externe opdrachtgevers vanuit het semester DDOA.

Transcript of Softwarekwaliteit in een ontwikkelstraat

Page 1: Softwarekwaliteit in een ontwikkelstraat

SOFTW

ARE KW

ALITEIT

IN

EEN ONTW

IKKELS

TRAAT

ON

ZE

ER

VA

RI N

GE

N N

A 8

JA

AR

DD

OA

04/10/2023

1R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 2: Softwarekwaliteit in een ontwikkelstraat

UM

L

J av

a

EJ B

3

Re

qu

i re

me

nt s

Us e

Ca

s es

De

s i gn

P at t e

r ns

Cl a

s s D

i ag

r am

R

ef a

c t or i n

g

Ag

i le

J U

ni t

I n

t el l

i J

Ar c h

i te

c t uu

r

Sc r u

m

Se

qu

en

c e

Di a

gr a

m

St a

nd

up

Co

nt i n

uo

us I n

t eg

r at i o

n P o

we

r De

s i gn

er G

r i d C

om

pu

t i ng

Ec l i

ps e

Do

me

i n

Mo

de

l

Ex

t er n

e

op

dr a

c ht g

ev

er s

F r am

ew

or k s

NI O

C2

01

3

DDOA

04/10/2023

2

Page 3: Softwarekwaliteit in een ontwikkelstraat

04/10/2023

3

SemesterKeuze uit 15

Student kiest er 3 die samen met stage het

2e/3e jaar vormen

Combinatie bepaalt

opleiding

Page 4: Softwarekwaliteit in een ontwikkelstraat

INGEZOOMD: DDOA

04/10/2023

4

Project

7.5 ECTS

7.5 ECTS

15 ECTS

R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 5: Softwarekwaliteit in een ontwikkelstraat

BEROEPSTAAK

“Ontwikkel een gedistribueerde OO applicatie”

Richt zich op veel aspecten van een software engineeringsproject: analyseren, ontwerpen, bouwen, testen, implementeren

Voorbeelden:Android GameAtlassian ProvisionerProfielGenerator

04/10/2023

5R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 6: Softwarekwaliteit in een ontwikkelstraat

COURSE EOA

• Engineer an OO Application • OO, UML (class- en seqencediagrams), Requirements, Design Patterns, Use Cases, Architectuur

• Applying UML and Patterns (Craig Larman)• Powerdesigner, Astah, Enterprise Architect

04/10/2023

6R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 7: Softwarekwaliteit in een ontwikkelstraat

COURSE DDA

• Develop a Distributed Application• Parallel computing, Clean Code, Java, Threading, RMI, JavaEE, Big-O, Ant, JUnit / TDD, Frameworks

• Java Enterprise in a Nutshell (Jim Farley)• Eclipse, IntelliJ, NetBeans, SpringSource ToolSuite, Maven, Ant, SoapUI, GlassFish, Tomcat, Spring Roo, MySQL

04/10/2023

7R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 8: Softwarekwaliteit in een ontwikkelstraat

PROJECT

10 weken

5 studenten

Agile aanpak: Scrum

Gastcolleges en workshops van IT-bedrijven

InfoSupport, Luminis, VXCompany

Externe projecten voor IT-bedrijven Avisi, First8, InfoSupport, CGI/Logica, Luminis, Sogyo, TASS, Twijnstra&Gudde, VXCompany

04/10/2023

8R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 9: Softwarekwaliteit in een ontwikkelstraat

VAN Z

AADJE T

OT

KARBONAADJE

Eers

t ove

rleggen

met

de

klan

t ove

r de

eise

n en d

eze

eise

n vas

tleggen

, va

ak v

isuee

l.

04/10/2023

9

Page 10: Softwarekwaliteit in een ontwikkelstraat

VAN Z

AADJE T

OT

KARBONAADJE

Vervo

lgen

s nad

enke

n ove

r de

stru

ctuur v

an je

softw

are.

04/10/2023

10

Page 11: Softwarekwaliteit in een ontwikkelstraat

VAN Z

AADJE T

OT

KARBONAADJE

Na het

ontw

erpen

ga

je p

rogra

mm

eren

.

04/10/2023

11

Page 12: Softwarekwaliteit in een ontwikkelstraat

VAN Z

AADJE T

OT

KARBONAADJE

Einddoe

l is

een w

erke

nde ap

plicat

ie, v

aak

voor

een

echte

kla

nt uit

het b

edrij

fsle

ven.

04/10/2023

12

Page 13: Softwarekwaliteit in een ontwikkelstraat

Ontwikkel een Android implementatie van het IQ Cabin spelTechnologie:Android

Bedrijf:

PROJECTVOORBEELDEN: IQ CABIN

04/10/2023

13R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 14: Softwarekwaliteit in een ontwikkelstraat

Ontwikkel product waarmee de ontwikkelstraat beschikbaar is voor nieuwe groepen.Technologie: JavaWebservices (REST/SOAP)

Bedrijf:

PROJECTVOORBEELDEN: ATLASSIAN PROVISIONER

04/10/2023

14R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 15: Softwarekwaliteit in een ontwikkelstraat

Ontwikkel een applicatie waarmee CVs kunnen worden gegenereeerd.Technologie: JavaScript Spring Roo Atlassian Crowd

Bedrijf:

PROJECTVOORBEELDEN: PROFIELGENERATOR

04/10/2023

15R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 16: Softwarekwaliteit in een ontwikkelstraat

ONTWIKKELSTRAAT

a.k.a. “Software factory”

StandaardenTemplates

ProcesScrum

ToolsAtlassian Suite (Confluence, JIRA, Stash, Crowd), Jenkins en Sonar

04/10/2023

16R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 17: Softwarekwaliteit in een ontwikkelstraat

TOOLOVERZICHT / DEPLOYMENT

04/10/2023R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L ,

@ R O D M I D D E 17

Proxy server

Crowd: SSO en usermanagem

ent Confluence: Wiki

JIRA: Planning en schatting

Stash: versiebehee

r (git)

Jenkins: CI

Sonar: Code Quality

Crucible/Fisheye:

Codereviewing

Page 18: Softwarekwaliteit in een ontwikkelstraat

STANDAARDEN

Documentatiestandaarden Geleend van Unified Process (RUP op maat)

Plan van aanpak (Software Development Plan + Vision)

Software Requirements Specification Software Architecture Document

Codingstandaarden Vaste set voor DDOA, afwijkingen zijn bespreekbaar

mits gemotiveerd Worden automatisch gecheckt door Sonar

04/10/2023

18R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 19: Softwarekwaliteit in een ontwikkelstraat

Alle technische documentatie wordt geschreven en bewaard in Confluence:

wiki versiebeheer usertracking geintegreerde UML en

UIMock

Je hebt schrijfrechten op je eigen wiki en leesrechten in alle andere spaces.

CONFLUENCE – DOCUMENTATIE

04/10/2023

19R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 20: Softwarekwaliteit in een ontwikkelstraat

AGILE DEVELOPMENTTesting early and automated Unittesten

Incremental design Geen groot ontwerp vooraf

Daily deployment Elke dag bouwen en opleveren

Customer involvement Veel contact met je klant

Continuous integration Op de achtergrond wordt de kwaliteit van je werk

gecontroleerd

Incremental planning Planning poker

2004/10/2023

R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 21: Softwarekwaliteit in een ontwikkelstraat

PROCES

Scrum-planning1 week pre-game (“warming up”)4 sprints van 2 weken

Planningsdag met planningpokerVerwerking van resultaten in JIRAUitvoeringSprint ReviewRetrospective

1 week afsluiting (“cooling down”)

04/10/2023

21R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 22: Softwarekwaliteit in een ontwikkelstraat

04/10/2023

22R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 23: Softwarekwaliteit in een ontwikkelstraat

PRE-GAME

Plan van aanpak

(definitief)

Software Requirement

s Specification

(concept)

Software Architecture Document (concept)

Tools, frameworks en libraries verkennen

04/10/2023

23R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 24: Softwarekwaliteit in een ontwikkelstraat

SPRINT

Planningsdag

• Planningpoker• JIRA

Uitvoering

• Gericht op de sprint goal• Daily stand-up

Sprint

Review

• Goedkeuring door opdrachtgever en docent op basis van sprint goal en definition of done

Retrospective

• Teamreflectie: wat ging goed, wat niet, teamafspraken.

• Gekoppeld aan IPV

04/10/2023

24R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 25: Softwarekwaliteit in een ontwikkelstraat

04/10/2023R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L ,

@ R O D M I D D E 25

Page 26: Softwarekwaliteit in een ontwikkelstraat

JIRA – PROJECTS

Project Lead =

Scrummaster

Je kunt bij elkaar kijken, zelfs beperkt schrijven dus

houd het professioneel.

04/10/2023

26R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 27: Softwarekwaliteit in een ontwikkelstraat

JIRA – PLANNING BOARD

Openstaande werkzaamhed

en Sprints

04/10/2023

28R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 28: Softwarekwaliteit in een ontwikkelstraat

JIRA – GREENHOPPER

04/10/2023

29R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 29: Softwarekwaliteit in een ontwikkelstraat

JIRA – REAL WORLD EXAMPLE

04/10/2023R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L ,

@ R O D M I D D E 30

Page 30: Softwarekwaliteit in een ontwikkelstraat

DAILY STAND-UP

Vaste plek

Vast tijdstip

Maximaal 15 minuten, mag dus korter

Scrummaster in controlWat heb je gisteren gedaan?Wanneer is je werk klaar?Wat ga je vandaag doen?Wat blokkeert (“impediment”) het succesvol doen van je taak?

04/10/2023

31R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 31: Softwarekwaliteit in een ontwikkelstraat

SPRINT REVIEW

Checkt de sprint-goal met de opdrachtgever/productowner

Demonstratie van de featuresMaak een dwarsdoorsnede van je architectuur

Checkt de definition-of-doneStudenten reviewen elkaars werkStudenten vragen ook reviews aan bij de docent

Initiatief bij de student!

04/10/2023

32R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 32: Softwarekwaliteit in een ontwikkelstraat

DEFINITION OF DONE

04/10/2023

33R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 33: Softwarekwaliteit in een ontwikkelstraat

QUALITY REVIEW

Handmatig door team

Handmatig door docent en/of opdrachtgever, gevraagd en ongevraagd

Automatisch door Jenkins + Sonar

04/10/2023

34R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 34: Softwarekwaliteit in een ontwikkelstraat

JENKINS

Groene ballen zijn goed, op een rode

bal staat (een ludieke) straf.

Hoe beter het weer, hoe

langer de build achter elkaar goed gaat.

Je kunt de build ook

handmatig starten.

04/10/2023

35R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 35: Softwarekwaliteit in een ontwikkelstraat

SONAR

Mate van documentatie

Mate van codeduplicatie

Mate van koppeling/coh

esie.

Test coverage.Geslaagde

tests.

Codestandaarden

Totaalcijfer

04/10/2023

36R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 36: Softwarekwaliteit in een ontwikkelstraat

RETROSPECTIVE = FEEDBACK

Team Scrum-master

Product-owner-by-proxy

Teamlid1

Teamlid2

Teamlid3

Docent

Product-owner

+

+

+ +

+

+

+

+-

-

--

-

-

-

-

-

-

04/10/2023R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L ,

@ R O D M I D D E 37

Page 37: Softwarekwaliteit in een ontwikkelstraat

TOETSING

C O M P E T E N T I E S

• Analyseren

• Ontwerpen

• Realiseren/Testen

• Samenwerken

• Communiceren

• Planmatig werken

P R O D U C T E N

• Requirements

• Functioneel Ontwerp

• Technisch Ontwerp

• Software

• Retrospectives

• Requirements/Ontwerpen

• Plan van Aanpak

04/10/2023

38

Individueel door 3

docenten op basis van

portfolio en assessment

R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 38: Softwarekwaliteit in een ontwikkelstraat

TEAMROLLEN

04/10/2023

39

Per rol moet de student aan andere eisen voldoen binnen dezelfde competentie:

Rol/Competentie

Samenwerken

Communiceren

Planmatig werken

Scrum Master x x

Product Owner x

Team Member x x x

R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 39: Softwarekwaliteit in een ontwikkelstraat

MENING STUDENTEN

• Lastig om docent en opdrachtgever beiden tevreden te houden (wanneer is het klaar?)

• Motiverend om voor echte opdrachtgevers te werken en een product op te leveren dat bruikbaar is

• Goede begeleiding door docenten en bedrijven

• Agile werken bevalt goed en wordt toegepast in andere onderwijseenheden, stage en afstuderen.

• Structuur geeft focus en maakt niet “lui”

• Tools zijn nuttig maar hebben hoge leercurve

04/10/2023

40R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 40: Softwarekwaliteit in een ontwikkelstraat

HTTP://WIKI.ICAPROJECTEN.NL

04/10/2023

41R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L , @ R O D M I D D E

Page 41: Softwarekwaliteit in een ontwikkelstraat

DANK VOOR UW AANDACHT

[email protected]

@rodmidde

http://nl.linkedin.com/in/rodym/

http://www.slideshare.net/rodym

04/10/2023R O D Y M I D D E L K O O P, R O D Y. M I D D E L K O O P @ H A N . N L ,

@ R O D M I D D E 42