50
© Zühlke 2018 Software-Entwicklung in der Praxis | Stefan Reichhart May 31, 2019 Slide 1 of 58 Software-Entwicklung in der Praxis Gastvortrag Vorlesung P2, Universität Bern Stefan Reichhart - [email protected]

Software-Entwicklung in der Praxis - scg.unibe.chscg.unibe.ch/download/lectures/p2/P2-13-Software-Entwicklung in der Praxis-2019.pdf · Software-Entwicklung in der Praxis | Stefan

  • Upload
    vananh

  • View
    212

  • 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 4 of 58

© 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