Upload
vananh
View
213
Download
0
Embed Size (px)
Citation preview
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 1 of 58
Software-Entwicklung in der PraxisGastvortrag Vorlesung P2, Universität BernStefan Reichhart - [email protected]
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 2 of 58
Roadmap
• About Me
• Overview - Zühlke
• My current Project: «TiMo»
• Real Life Experience
• Questions & Discussion
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 3 of 58
About Me
L o p p i sNetstyle.ch
T i M o
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 5 of 58
Empowering Ideas
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 6 of 58
Zühlke - Daily
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 7 of 58
Zühlke - Intern
TechnologyDays
Academy
Focus Groups
Conferences, Bootcamps, …
Workshops,Hackathons, …
Courses, Seminars
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 8 of 58
About Zühlke
• Founded 1968
• Teams in Germany, United Kingdom, Austria, Serbia, Bulgaria, Singapore, Hong Kong and Switzerland
• 10’000+ innovation initiatives
• 1’000+ EmployeesBern: approx. 80
• Sales: 150 Mio. CHF
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 9 of 58
Switzerland: Schlieren + Bern
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 10 of 58
Project: « T i M o »Ticketing and Mobility Services
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 11 of 58
TiMoTicketing and Mobility Services
• Sales and Refunds of Tickets
• After-Sales Services (SAV)
• All kinds of services around travelling
Webshop
Mobile-App
Vending Machines
Counters, Agencies, VVs, Retailers, Luggage, L+F, …
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 12 of 58
TiMoServices for Partners, Retailers, Agencies, …
S B BServices
Disclaimer: The list of shown companies providing mobility services is not complete and the selection was arbitrarily made by the author of this document. The author is not related to any such company.
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 13 of 58
Simple Example
Ticket Sale
Journey from A to B
Calculation• Shortest, fastest, cheapest• Vias,• Combined means of transports• International Connections• Saving Options• …
Planning• from/to/vias• Class• …
Payment• Cards• LSV• Twint• Coupons• Promotions• …
Ticketing• Ticket• Receipt• Pdf• Swisspass• International Tickets• …
Additional Services• Luggage• Seat-Reservations• Bicycle• Ski• External Offers• …
Backoffice• Verification• Accounting• Taxation• …
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 14 of 58
Architecture – Overview
Micro-Services / Cloud
VendingMachines
Webshop
Mobile
…
Counter
B2BB2C
B2P
Orc
hest
ratio
nCloud / Micro-Services
channels
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 15 of 58
Architecture – Overview
Micro-Services / Cloud
Zahlung
BuchhaltungPlatzreserv
ationSAP
Reise
IT, DE, FR, ..
Datatrans
Postfinance
Twint
Gutschein
Promotion
Dossier
Gepäck
Angebote
…Quittung
…
Kunde
Foto
Identifikation
Freizeit
ArchivJournal
Anbieter
Nova
Druck
Partner
Verträge
QR-Code
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 16 of 58
«Technologies»Overview
Java 8/11Maven SpringBoot Apache Tomcat
ActiveMQDB/2
Oracle ExadataH2
HTMLGitCSS
Javascript
Jenkins
Confluence
Jira
JunitMockito Scrum
Splunk
Jrebel
EmmaSonarIntelliJ
Sparx EA
Json
Papier & Whiteboards
Coffee
Pizza
Large-Space OfficeChocolate
AngularTypeScript
Moqups UML
Skype
Selenium
JMC JProfiler
Introscope Kafka
XPHysterix
Teams
SAFe
Agile
SpringOpenShift
JFrog
RE
New Relic
VictorOps
Kanban
Host
XML
Soap
Swagger
Excel
Browserstack
JSF
kibana
Jasmine
Jest
Docker
JMeter
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 17 of 58
TiMo «Factory»
Organisation
• Approx. 100 people
• Developers
• Project managers
• Usability engineers
• DB Experts
• …
• Multiple interdiciplinary teams
• Each team covers a «core comain»
Finances
Journey Webshop
VendingMachines
Mobile
Sales After Sales
Contracts
«core domains»
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 18 of 58
Team «Helios»
Organisation
• Core Domain «Finances»
• Distributed Team
• Worblaufen
• Belgrade (Serbia)
• 8 Developers
• 1 Scrum Master
• 1 Triage Manager
• 1 Business Expert
JournalAccounting
Payments
Finances
M o n e y
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 19 of 58
Real Life Experiences
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 20 of 58
Agile, XP, Scrum, …
My daily work as a developer
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 21 of 58
My daily work as a developer
Right now …
▪ Java Developer
▪ Frontend Expert
▪ (alternating) BugSpoc
▪ (alternating) DevOps
No additional roles or responsibilities
Programming Requirements Solutions
Testing Administration Improvements
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 22 of 58
My daily work as a developer
Programming Requirements Solutions Testing/Quality Administration Improvements
Start-Up«New Products»
Loppis«Replace Legacy»
TiMo«Continue & Improve»
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 23 of 58
The daily (and never ending) challenges
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 24 of 58
The daily (and never ending) challenges
• Specifications
• Requirements
• Solutions
• Wishes
• Workflows
• …
• Know-How
• Courage
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 25 of 58
Communication
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 26 of 58
CommunicationBasic rules: "Agile Mindset"
• Direct + honest
• Flexible + simple
• Open + transparent
• Address problems & conficts («Error Culture»)
Also very important …
• No heroes & looser
• No Blaming, "Finger-Pointing", …
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 27 of 58
Workspace: Social Conflict Zone, Comfort Zone, …
Address problems
→Workplace & -environment is extraordinary important
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 28 of 58
Nearshore Projects
«Distributed» Teams
Problem:
• Most things are «implicit», «natural», «self-evident»
Examples:
• Language (gesture, eye-contact, …)
• Knowledge
• Information
• …
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 29 of 58
Conflicts
Fact:
• Workplace with «no conflicts» does not exist
Learn to respectfully and correctly …
• … give feedback
• … accept feedback
• … criticize
• … solve conflicts
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 30 of 58
CommunicationTechnical, business
Short-term - communicate thoughts:
• Whiteboards
• Post-it / Stickies
• Paper
• Team, Slack, …
• …
→ Fast, simple, direct, efficient
Long-term - preserve knowledge
• Confluence KB
• Sparx EA (Umls, DB-Schemas)
• Jira Stories & Tasks
• Git / Reviewing
• File-System
→ Knowledge Database
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 31 of 58
CommunicationTechnical, business, …
Short-term - communicate thoughts:
• Whiteboards
• Post-it / Stickies
• Paper
• Team, Slack, …
• …
→ Fast, simple, direct, efficient
Long-term - preserve knowledge
• Confluence KB
• Sparx EA (Umls, DB-Schemas)
• Jira Stories & Tasks
• Git / Reviewing
• File-System
→ Knowledge Database
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 32 of 58
Software-Quality(OO) Patterns
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 33 of 58
(Very) large projects
Software-Quality
Problem:
• OO Patterns are very «low level»
• They cannot solve everything
There is more …
• Architectural Patterns ( Enterprise Application Architecture )
TCC
Web Presentation
Transactional Concurrency
LayeringMVVM
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 34 of 58
Code-Style, Code-Checks, …
Software-Quality
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 35 of 58
Junit, Mockito, Emma, …
Testing
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 36 of 58
Testing Pyramid
Testing
Varying and defined by …
• project
• team
• and/or company
Unit
Component
System / Integration
E2E
Automatic UI Tests
Acceptance
Manual UI Tests
tech
nica
lbu
sine
ss
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 37 of 58
Software Quality
Test Quality ?
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 38 of 58
Software Quality
Test Quality ?
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 39 of 58
Code Reviews
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 40 of 58
Story is realized, functional, working, …
"Definition of Done"
• Code Conventions
• Tests
• Code Coverage
• Manual + automatic UI Tests
• Documentation
• Code-Review
• …
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 41 of 58
"Definition of Done"
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 42 of 58
Jenkins, JFrog, OpenShift, …
CI – Continous Integration
G I T
buildbranch / commit
integratedevelop
OpenShift
deploy & runsnapshot
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 43 of 58
Jenkins, JFrog, OpenShift, …
CD – Continous Deployment
• (live) Production Release every 9 weeks
IR
IC
EC
integration productiontestsnapshot
weeklyafter commit
IR
IC
EClive
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 44 of 58
Software Growth & Evolution
• New Features
• Requirements change
• Over-Engineering
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 45 of 58
Software Growth & Evolution
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 46 of 58
Software Evolution
Architecural Vision• Have a common goal + solution
• Everyone should understand it
• Work together !
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 47 of 58
Software Evolution
• Apply OO Patterns consequently
• Review and challenge code and architecture
• Adapt architecture regularly
• Code Reviews
• Refactorings / Refactoring Patterns
• Throw away code
• …
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 48 of 58
Software Evolution
• Apply OO Patterns consequently
• Review and challenge code and architecture
• Adapt architecture regularly
• Code Reviews
• Refactorings / Refactoring Patterns
• Throw away code
• … Good Tests !!!
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 49 of 58
One more thing …
© Zühlke 2018Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 50 of 58
Questions …Stefan Reichhart - [email protected]
Feedback ☺https://de.surveymonkey.com/r/MPJY5NT