490 likes | 507 Views
Explore the journey of ColruytGroup's Java ecosystem with insights into design, development, and integration. Uncover the evolution of technology from 2001 to 2017, focusing on building, developing, and deploying Java applications efficiently. Discover the key actions, challenges, and future goals of the Java eco-system.
E N D
Our exciting journey to an open Java ecosystem @ By Evert Delanghe Roadmaps Design – Development - IntegrationAnd David Paumen Senior Software Engineer Java
The Activities of ColruytGroup are supported by multiple Corporate Services Supporting Services
BP&S Business Processes & Systems supports ColruytGroup in 3 different domains ProcessOptimalisation Infrastructure Application Development
Whathappened Earlydays of java … no clearleading Java Framework“Colruyt : differentiatebycustomisation” Simplicitybyencapsulatingandhidingtechnology 2001 Customjava Frame & Tools Technology starts to run behind on Industry Standards Craftsmanship in Industry Standards low
Whathappened Customjava Frame & Tools 2012 + Tools : PreferredVendor Policy+ Software Packages ↗ CustomDev↘ Technology runs behind on Industry Standards Craftsmanship in Industry Standards low
BUILD • Continuousintegration • Easy Multimodule build • Flexible, adaptablebuilds • Ant • Maven • Gradle • Java batch processes • Automation of enhancement of entities • Eliminate manual setup 2017Inventorizepainpoints DEV • Local code quality feedback duringdevelopment : Sonarlint (Sonar eclipseplugin) • Up to date IDE (IntelliJ, RAD, eclipse, free choice) • Automatic dependency management (currently manual in the IDE) • Transitivedependency management • Archetypes • Automatic generation of files forpackaging (manifest, application.xml) • Unit testing + DB testing • Up to date javaversion : Java EE 7 / Java 8 • Smooth procedure to accept new utillibraries (RAM libraries) • Easy access to new versions of alreadyacceptedlibraries • Up to date corenewstacklibraries (JSF 2.2 /JPA 2.1) • Recent market Javascript frameworks • Javadocresolving/access in localdevelopment IDE • Java sources resolving in IDE • Consistent project structurewhichfollowsIndustry Standards (Seperate test/persistence projects, resources in same folder as sources…) • RAM performance / license availability Conclusion : a lot of them… DEPLOY • Up toto date target server :WAS versionroadmap • SnappyandresponsiveSyst environment (lack of resources) • AbilitytoSwitchingapps on/off quickly in test envs • Docker-like thinking … where to start ? OTHER • Embrace open mindset • Step awayfromonlyone solution
2017Top 3 actions • Build/DependencyManagement • IDE • Continuous Integration Why would we succeed this time ? • Togetherwithdevelopers • Togetherwithexternal experts • On Strategic RoadmapBusiness Processes & Systems
2019Top12 actions IDE Continuous Integration Gradle Angular Wavemaker Batch DB gov Work-stations Styleguide Design Spring /JEE? Containers
Approach • 1. Technology • 4. Rollout Javaeco-system • 2. Developer • 3. User Experience
Tech • no • logy • 1. Technology Javaeco-system
Technology Industry Standards - Industry standards – Industry standards – Industry Stan… • Components integratesmoothly • Active communities : the worldthinkswithyou • Confidentdevelopers – professionals, alsoagainst the standards of the outsideworld - market value • Employer branding – war for talent • Broadvariety of External Trainings
Java Development Pipeline BEFORE RAD Development Code Build Deploy Test IDE Browsers Build Tool Servers Ant IE Commit Version Control RTC App Server TEST SYST PROD Build Forge Build Forge Build Forge Build Forge Deploy Code Quality Publish Build RAM Build Ant
Java Development Pipeline BEFORE RAD Development Code Build Deploy Test IDE Browsers Build Tool Servers Ant IE Commit Version Control RTC App Server TEST SYST PROD Build Forge Build Forge Build Forge Build Forge Deploy Code Quality Publish Build RAM Build Ant
Java Development Pipeline inline with Development Code Build Deploy Test Build Tool IDEs Browsers Servers Eclipse Chrome Gradle IE SonarLint (Static Code Analysis) Liberty Commit CI Tool Version Control Continuous Jenkins Integration App Server TEST SYST PROD Internal Quality Checks Build Unit Tests Code Quality Publish Deploy Unit Tests Build Gradle IntelliJ
Java Frontend in the Past • Notpossibletofullfillrich User Experiencerequirements (ex planningstool shops) • Multi-channel desktop-tablet-mobile difficult
Frontend serverside clientside Steeplearning curve
2. Developer • Technology • 1. Technology Javaeco-system • 2. Developer
Energy Developer ↗ Empower Developer – Empower Developer - Empower Developer - Empower Chooseyourown Device : Windows or MAC Chooseyourown Tool : Eclipse or IntelliJ GiveAutonomy on your device : allowlocaladmin Increase performance Local Development : -30 min/day / dev High performant workstations
Inject external expertise Useexternal experts toIncrease the maturityon new industry standard tools & technologies 60% “hands-on” in projects 30% “coaching” 10% Java corporate level
When can a coach leave ? • When the craftsmanship in the team on the new technologies is high enough • Level 3 in ourCraftsmanship Matrix • Each teammember is responsible for getting there • Coach takes also actions to get the team there • Every 4 months crosscheck if the team is already on the right level
Reviews • Peer reviews withinthe projectteam • Pair programming • External reviews by Java Review Board= byinternal/external experts spread acrossthedeveloper community • Sanity checks (busy) #DB calls #service calls
Strenghten Java Community Colruyt Java Developers Belgium and IndiaMultiple locations in BelgiumMultiple business domains
Strenghten Java Community Put documentation on Wiki Documentationbecomes a shared responsabilityEverybody contributesandimprovesthequality Share Experience on Forum Notexperienced ? Post yourquestionsExperienced ? Answerthequestions
Java Community Days Twotimes a year Both India and Belgium Learntoknoweachother, toimproveexperiencesharing
Java Community Also : Tech talks, Devoxx, NG-BE, HackJam, Hackaton,…
Autonomy expected 3 3 3 Internal support team Internet Internal Developer Community 3 External Community 2 Coach dedicated to project Project Context 1 2 Project Peer Self Colruyt Group
3. UserExperience • Developer • Technology • 1. Technology Javaeco-system • 2. Developer • 3. User Experience
Corporate Themes Mobile -> Android Themes for:-> Primefaces -> PrimeNg -> Wavemaker
UX Guidance UX for Solution Analists UX Key Users Training CoE A A Analist Analist +UX UX expertise A Expert Help Style guide Analist Analist Style Guide CCX
Developer • Technology • 1. Technology • 4. Rollout • 4. Rollout Javaeco-system • 2. Developer • 3. User Experience
Change Nowhowtoevolvefrom 1 to the other ? SiloMonolithic Open to the world Modular No renovation, but a complete new house
How to introduce the technologies Readiness Who Basic setupGet it working Some pioneers Resolve extra painpoints 3-5 extra projectteams, with expertise present 5-30 projects Finetune All projects Ready Per technologyEachphaseapprox 4-6 months
How to introduce the technologies • PRO • Allowstorollouttechnologyearlywhereneeded • Allowspioneersand enthousiasts to step in early • Allowsotherstowaituntil more support • Support anddocumentation are built up inlinewithneeds • Early adopters = ambassadorsforthe next
Example Complete Rollout New Tools 1 2 3 4 5 Poc’s Pilots Believers Migration Decommission Realize Few Projects Standardize Progressive BuildExperience Fade out - IBM Tools Validation BelieversDriven Old tools fading out New tools adaptation
Done - Next IDE Continuous Integration Gradle Angular Wavemaker Batch DB gov Work-stations Styleguide Design Spring /JEE? Containers
First catch up andempowerThen keep up … Then run upfrontwhereneeded We are on a never endingjourney