© OPITZ CONSULTING 2016
 überraschend mehr Möglichkeiten!
© OPITZ CONSULTING 2016
An overview about the craftsmanship of a
nowadays software engineer
Tommy Ziegler, Entwickler
A modern Developer
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 2
Knowing your tools
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 3
Knowing and using tools like ...
 Development environment which improves your workflow (IntelliJ, Eclipse,
emacs ..)
 Learn the shortcuts, find some cheat sheet
 Continuous Integration and Delivery pipeline
 Use Command Line Tools to understand the workflow
 Code Quality
 Static Code Analysis ( e.g.
Sonarcube, Sonargraph, ... )
 Code reviews, coding guidelines
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 4
Software Craftsmanship
 Test Driven Development
 Pair Programming
 Code Reviews
 DevOps Culture
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 5
Clean Code mit Hilfe der Pfadfinder-Regel
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 6
Building the right product in a happy team
 Agile project management Scrum / Kanban
 Feature development with Minimum Viable Product
 Data-driven development
 UI / UX Expertise
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 7
Participate and get your hands dirty
 Open Source participation
 Writing blog articles about some experience
 Share your knowledge around the team / company
 Learn or have some look at new programming languages
 Try to improve your code by migrating to new paradigms (e.g. J8 Streams)
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 8
Get more knowledge
 Read on Stackoverflow, Dzone, Voxxed, Subscribe Weeklies and
Changelog Nightly, important blogs from companies and developers and
many other
 Listen podcasts (e.g. heise Developer, innoQ Podcast, Java Council, SE-
Radio, ThoughtWorks, Java Possee [discontinued])
 Watch webcasts, conference talks, YouTube and e-learning platforms
 Devoxx, Spring Developer Channel
 Visit Conferences ...
 Devoxx, BED-Con,
Xconf HH, CodeTalks,
Jax, Javaland, JavaOne,
Riga Dev Days ...
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 9
Java Posse @ Devoxx
https://vimeo.com/113170080
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 10
Follow the trends in the IT field
 Follow the reliable people on Twitter
 Technology Twitter Channels and their Lead Developers
 f.e. Java Champions, Spring / Google Developer etc.
 People you meet on conferences, meetups etc.
 Going to conferences
 Participating at local Meetup Groups
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 11
Technical
 Dependency Injection Frameworks
 Microservices / Self-Contained Systems
 RESTful Services with HAL + JSON (Hypertext-driven)
 Dependency Managament and Build Tools (Maven, Gradle, Gulp, Npm, ...)
 Web-Frontend
 MVC Patterns, Component based (GWT, Vaadin, ...), Template based (JSP, Thymeleaf, ...),
Standalone Web-Frontend
 Databases (RDBMS, Key-Value Store, Document based, Search Engines
Graph, ...)
 Relational (f.e. Oracle, MySQL / MariaDB, MSSQL, Access ...)
 NoSQL (f.e. Mongo, Reddis, Elasticsearch, Neo4J ...)
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 12
Technical
 Imperative programming paradigm
 e.g. Java, C/C++, ...
 Functional programming paradigm
 e.g. Lambdas, Haskell, ...
 Reactive programming paradigm
 MVC -> MVP -> MVVM -> MV* (MVW)
Functional:
- Programming by invoking
1 var arr = [2,3,1,8,5];
2 arr.forEach(element, index) {
3 console.log(elemet);
4 }
Imperative:
- Describe the algorithm by code construct
1 var arr = [2,3,1,8,5];
2 for(var i in arr) {
3 console.log(arr[i]);
4 }
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 13
Dependency Injection
http://dwiardiirawan.com/index.php/2016/05/18/wha
t-is-dependency-injection-and-what-are-the-
advantage/
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 14
Monolithic/Layered vs. Microservices
http://www.martinfowler.com/articles/microservices.html
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 15
Twelve Factor Apps
 The twelfe Factor Apps (Heroku)
 Deklarative Format
 Saubere Verträge
 Deployment auf Cloud Plattformen
 Abweichung minimieren
 Continuos Deployment
 Skalierbarkeit
 Webseite: https://12factor.net
 Die ZWÖLF-FAKTOREN
1. Codebase
2. Abhängigkeiten
3. Konfiguration
4. Unterstütste Dienste
5. Build, release, run
6. Prozesse
7. Bindung an Ports
8. Nebenläufigkeit
9. Einweggebrauch
10. Dev-Prod-Vergleichbarkeit
11. Logs
12. Admin-Prozesse
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 16
RESTful Services
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 17
Databases
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 18
Technical [Advanced]
 Cloud
 AWS, Microsoft,
 Big Data
 MapReduce, Hadoop, Spring XD
 Machine Learning
 Supervised, unsupervised Learning
 IoT
 Virtualisierung / Containerization (xaaS)
 Configuration Managament (Infrastructure as a Code)
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 19
Web UI / Technologies [Top 2016]
Reactive JS Frameworks:
Mobservable
Omniscient
Reactive.js
Mercury
WebRX
Deku
Riot.js
Mithril
Vue.js
MVC JS
Frameworks:
Angular.js
jQuery
React
Socket
Polymer
Node.js
Meteor
D3.js
Ember
Aurelia
Knockout
Keystone
Backbone.js
Stapes.js
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 20
Continuos
Delivery
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 21
Dashboards
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 22
Theoretical
 Bücher
 Design Patterns (Buch von Erich Gamma, John Vlissides, Ralph Johnson und Richard Helm
aka. GoF)
 Refactoring (Buch von Martin Fowler)
 Clean Code (Buch von Robert C. Martin)
 Domain Driven Design (Buch von Eric J. Evans)
 The Phoenix Project (Buch von Gene Kim, Kevin Behr, George Spafford)
 Continious Delivery (Buch von Jez Humble)
 Lean Startup (Buch von Eric Ries)
 uvm.
 KIS (Keep it Simple)
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 23
Some other tools and technical stuff
 CI Software (Jenkins, CircleCI, TravisCI, Shippable, GitLab, ...)
 Automation Tools (Jenkins, Rundeck, Spring Batch / Boot, ...)
© OPITZ CONSULTING 2016 Wieso Senior Entwickler jung bleiben müssen. Seite 24
© OPITZ CONSULTING 2016
 überraschend mehr Möglichkeiten!
@OC_WIRE
OPITZCONSULTING
opitzconsulting
opitz-consulting-bcb8-1009116
WWW.OPITZ-CONSULTING.COM
Seite 25
Cloud, TDD, RESTful, BI/BigData, Agile and Spring
enthusiast - Love to be in Riga
Tommy Ziegler
Consultant, Developer and Agile Coach
Landwehr 2
22087 Hamburg
tommy.ziegler@opitz-consulting.com
Twitter: @tommyziegler_de
Blog: http://www.tommyziegler.com
Wieso Senior Entwickler jung bleiben müssen.

A modern Developer [2016]

  • 1.
    © OPITZ CONSULTING2016  überraschend mehr Möglichkeiten! © OPITZ CONSULTING 2016 An overview about the craftsmanship of a nowadays software engineer Tommy Ziegler, Entwickler A modern Developer
  • 2.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 2 Knowing your tools
  • 3.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 3 Knowing and using tools like ...  Development environment which improves your workflow (IntelliJ, Eclipse, emacs ..)  Learn the shortcuts, find some cheat sheet  Continuous Integration and Delivery pipeline  Use Command Line Tools to understand the workflow  Code Quality  Static Code Analysis ( e.g. Sonarcube, Sonargraph, ... )  Code reviews, coding guidelines
  • 4.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 4 Software Craftsmanship  Test Driven Development  Pair Programming  Code Reviews  DevOps Culture
  • 5.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 5 Clean Code mit Hilfe der Pfadfinder-Regel
  • 6.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 6 Building the right product in a happy team  Agile project management Scrum / Kanban  Feature development with Minimum Viable Product  Data-driven development  UI / UX Expertise
  • 7.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 7 Participate and get your hands dirty  Open Source participation  Writing blog articles about some experience  Share your knowledge around the team / company  Learn or have some look at new programming languages  Try to improve your code by migrating to new paradigms (e.g. J8 Streams)
  • 8.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 8 Get more knowledge  Read on Stackoverflow, Dzone, Voxxed, Subscribe Weeklies and Changelog Nightly, important blogs from companies and developers and many other  Listen podcasts (e.g. heise Developer, innoQ Podcast, Java Council, SE- Radio, ThoughtWorks, Java Possee [discontinued])  Watch webcasts, conference talks, YouTube and e-learning platforms  Devoxx, Spring Developer Channel  Visit Conferences ...  Devoxx, BED-Con, Xconf HH, CodeTalks, Jax, Javaland, JavaOne, Riga Dev Days ...
  • 9.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 9 Java Posse @ Devoxx https://vimeo.com/113170080
  • 10.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 10 Follow the trends in the IT field  Follow the reliable people on Twitter  Technology Twitter Channels and their Lead Developers  f.e. Java Champions, Spring / Google Developer etc.  People you meet on conferences, meetups etc.  Going to conferences  Participating at local Meetup Groups
  • 11.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 11 Technical  Dependency Injection Frameworks  Microservices / Self-Contained Systems  RESTful Services with HAL + JSON (Hypertext-driven)  Dependency Managament and Build Tools (Maven, Gradle, Gulp, Npm, ...)  Web-Frontend  MVC Patterns, Component based (GWT, Vaadin, ...), Template based (JSP, Thymeleaf, ...), Standalone Web-Frontend  Databases (RDBMS, Key-Value Store, Document based, Search Engines Graph, ...)  Relational (f.e. Oracle, MySQL / MariaDB, MSSQL, Access ...)  NoSQL (f.e. Mongo, Reddis, Elasticsearch, Neo4J ...)
  • 12.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 12 Technical  Imperative programming paradigm  e.g. Java, C/C++, ...  Functional programming paradigm  e.g. Lambdas, Haskell, ...  Reactive programming paradigm  MVC -> MVP -> MVVM -> MV* (MVW) Functional: - Programming by invoking 1 var arr = [2,3,1,8,5]; 2 arr.forEach(element, index) { 3 console.log(elemet); 4 } Imperative: - Describe the algorithm by code construct 1 var arr = [2,3,1,8,5]; 2 for(var i in arr) { 3 console.log(arr[i]); 4 }
  • 13.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 13 Dependency Injection http://dwiardiirawan.com/index.php/2016/05/18/wha t-is-dependency-injection-and-what-are-the- advantage/
  • 14.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 14 Monolithic/Layered vs. Microservices http://www.martinfowler.com/articles/microservices.html
  • 15.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 15 Twelve Factor Apps  The twelfe Factor Apps (Heroku)  Deklarative Format  Saubere Verträge  Deployment auf Cloud Plattformen  Abweichung minimieren  Continuos Deployment  Skalierbarkeit  Webseite: https://12factor.net  Die ZWÖLF-FAKTOREN 1. Codebase 2. Abhängigkeiten 3. Konfiguration 4. Unterstütste Dienste 5. Build, release, run 6. Prozesse 7. Bindung an Ports 8. Nebenläufigkeit 9. Einweggebrauch 10. Dev-Prod-Vergleichbarkeit 11. Logs 12. Admin-Prozesse
  • 16.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 16 RESTful Services
  • 17.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 17 Databases
  • 18.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 18 Technical [Advanced]  Cloud  AWS, Microsoft,  Big Data  MapReduce, Hadoop, Spring XD  Machine Learning  Supervised, unsupervised Learning  IoT  Virtualisierung / Containerization (xaaS)  Configuration Managament (Infrastructure as a Code)
  • 19.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 19 Web UI / Technologies [Top 2016] Reactive JS Frameworks: Mobservable Omniscient Reactive.js Mercury WebRX Deku Riot.js Mithril Vue.js MVC JS Frameworks: Angular.js jQuery React Socket Polymer Node.js Meteor D3.js Ember Aurelia Knockout Keystone Backbone.js Stapes.js
  • 20.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 20 Continuos Delivery
  • 21.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 21 Dashboards
  • 22.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 22 Theoretical  Bücher  Design Patterns (Buch von Erich Gamma, John Vlissides, Ralph Johnson und Richard Helm aka. GoF)  Refactoring (Buch von Martin Fowler)  Clean Code (Buch von Robert C. Martin)  Domain Driven Design (Buch von Eric J. Evans)  The Phoenix Project (Buch von Gene Kim, Kevin Behr, George Spafford)  Continious Delivery (Buch von Jez Humble)  Lean Startup (Buch von Eric Ries)  uvm.  KIS (Keep it Simple)
  • 23.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 23 Some other tools and technical stuff  CI Software (Jenkins, CircleCI, TravisCI, Shippable, GitLab, ...)  Automation Tools (Jenkins, Rundeck, Spring Batch / Boot, ...)
  • 24.
    © OPITZ CONSULTING2016 Wieso Senior Entwickler jung bleiben müssen. Seite 24
  • 25.
    © OPITZ CONSULTING2016  überraschend mehr Möglichkeiten! @OC_WIRE OPITZCONSULTING opitzconsulting opitz-consulting-bcb8-1009116 WWW.OPITZ-CONSULTING.COM Seite 25 Cloud, TDD, RESTful, BI/BigData, Agile and Spring enthusiast - Love to be in Riga Tommy Ziegler Consultant, Developer and Agile Coach Landwehr 2 22087 Hamburg tommy.ziegler@opitz-consulting.com Twitter: @tommyziegler_de Blog: http://www.tommyziegler.com Wieso Senior Entwickler jung bleiben müssen.