Vanuit onze business case ervaringen te delen als producteigenaar en ontwikkelaar m.b.t. de inzet van TYPO3 Flow, scrum en continuous integration (Ci) bij het ontwikkelen van een robuuste / flexibele HRM applicatie.
Op basis van onze business case inzichten in:
• Ervaring gebruik van TYPO3 Flow als producteigenaar
• Hoe werken aan kwaliteitsbewaking en onderhoudbare flexibele programmeercode
• Hoe je project tot een teameffort te maken ;)
• Waarom samenwerking met community loont!
• keuzes voor TYPO3 Flow, CI, Scrum, Code Reviews en Test Driven Development
• Praktische achtergrond achter keuzes
Bram Verhaegh
Bram Verhaegh
Sinds 2008 "Power"user TYPO3, en hart voor open Source. 10 jaar als projectleider van arbeidsmarktprojecten gewerkt binnen een HR advies organisatie van LTO Nederland, FNV Bondgenoten en CNV Bedrijvenbond. Steeds meer betrokken als projectleider om technische oplossingen te realiseren zoals Websites, applicaties, koppelingen etc.
In 2011 het plan opgepakt om een HR applicatie te gaan bouwen die MKB-ers werkelijk ondersteuning bied. 2012 als mede-ondernemer gestart binnen Beech.it om met TYPO3 CMS en TYPO3 Flow o.a. deze en andere mooie oplossingen te bouwen voor klanten.
2. Bram Verhaegh
10 jaar HRM en IT Projecten met LTO Nederland,
werknemersorganisaties en UWV.
Ontwikkeling van veilige, flexibele en robuuste websites en applicaties
met TYPO3 CMS - Neos and Flow met plezier.
5. Mister Maks
● Een oplossing voor ondernemers met personeel
– MKB (1 tot 100 med)
– Zonder voorkennis
– Volledig procesbased
– Met diverse webservices voor gevensuitwisseling
– Minder administratie
6. ● Mensen
● Ambitie
● Best practice
● Kwaliteit
● Veiligheid
● Werkmethodes
7. Kiezen voor een Framework
● Minder (onderhoudbare) code
● Sneller ontwikkelen
● Best practises en standaard implementaties
● Gestructureerde code
● Moderne design patterns (MVC, AOP, DDD, ORM etc.)
● Flow(3) 1.0 was net 3 maanden oud ???
8. Kiezen voor een gestructureerde agile
werkmethode
● Scrum
– Ontwikkel cycli van 2 weken
– Hierna opleverbaar tussen product
– Specs groeien met het product mee
– Duidelijke rollen Development team / Scrummaster /
Productowner.
9. – Scrum is een werkmethode waarbij je aan het begin
van je reis plant om naar Berlijn te gaan en uiteindelijk
in Rome uitkomt!
11. Scrum
● Ervaringen
● Scrum wordt snel scrummisch..
● Scrum vergt discipline
● Overzicht van taken → planboard.
● Tijdsgebonden werken maakt werk beter planbaar.
● Verantwoordelijkheden zijn duidelijk.
12. Kiezen voor kwaliteit
Als een producteigenaar wil ik een schone,
gedocumenteerde, uitbreidbare, testbare codebase.
Als een producteigenaar wil ik een veilige en robuste
schaalbare applicatie.
Codebase moet een aantal jaren mee.
Eerste release bevat nog lang niet alle features.
Hoe? En kwaliteit moet meetbaar zijn.
13. Community
● Zoeken naar een gestructureerde werkwijze om
kwaliteit te borgen.
● Hoe doet de TYPO3 Community aan
kwaliteitsborging?
15. Invulling
● Coding Guidelines The do's and don'ts
● Codereviews Gerrit code Review
● CI and auto tests Jenkins en testsuites
● Testdriven Mindset Developer
● Security Reviews and tests
● Statistieken Sonar / Clover
● Taken en issues Redmine
16. Codereviews
Implementatie van Gerrit Codereview
● Een extra laag in het versiebeheersysteem voordat
code in het project komt.
● Code word door minimaal 2 developers bekeken en
een score gegeven.
● Gerrit is ook een zeef.
18. Automatische tests
● CI met Jenkins (continuous integration)
Elke commit geeft een volledige bouw en test van de
software en directe feedback naar developer.
– UnitTests
– Functionele tests
– Javascript tests.
– Gedocumenteerde code.
– CGL
19. Testdriven
Testdriven is een mindset van de developer
Van test naar code ipv code naar test.
Niet testbare code niet accepteren in project.
20. Statistieken
Meetbaar maken en stuurgetallen afspreken en sturen.
% geteste code.
% documentatie.
% dubbele code.
% violations.
% complexe code
Geeft ook voor producteigenaars en andere niet
programmeurs een indicatie van kwaliteit en complexiteit
van de code.
21. Ervaringen
● Instap in FLOW niet zo groot.
● FLOW dringt tot gestructeerde schone code.
● FLOW verhoogt ontwikkelsnelheid.
● Instap, Git maar vooral Gerrit kost tijd door
complexere workflow.
● Door reviews hogere leercurve van developers
● Verantwoordelijkheid voor kwaliteit ligt door reviews
bij elk teamlid.
● Reviews kunnen ook ontwikkelsnelheid vertragen...
23. Resultaat
– Een krachtiger framework,
– Minder onderhoudbare code,
– Extra ogen over je implementatie,
– Voelt goed!!
24. Vervolgstappen kwaliteit:
Pilot bedrijf binnen EquA
EQuA staat voor Early Quality Assurance in software production. Project van
hogescholen en universiteiten.
Implementatie en borging handrijking.
ICT-Beveiligingsrichtlijnen voor webapplicaties
ISO 27001 Behalen in 2013.
ISO 27001 is een ISO standaard voor informatiebeveiliging.
25. Developers die Mister Maks mogelijk maken
● Rens Admiraal
● Karol Kaminski
● Ruud Alberts
● Pieter Geurts
● Jeroen Beulen
● Henjo Hoeksma
● …......
● TYPO3 FLOW Team!!
● TYPO3 community!!
26. ●
Eerste release van Mister Maks
3 december als GSPersoneel via een
belangrijke reseller binnen de glastuinbouw.