SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Downloaden Sie, um offline zu lesen
Frameworks:
supporters and mischiefmakers

Thursday, November 7, 13
David & Oliver

• David: davidtanzer.net, @dtanzer
• Oliver: source-knights.com, @sourceknights
• both independent software consultants
• both striving for simplicity in software development

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13
David & Oliver

Starting from greenfield

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13
Defining Agile

Modern development framework take
away 80% of the job. Then they make
the remaining work ten times as hard.”
Johannes Brodwall
Copyright © 2010 Source-Knights.com

Thursday, November 7, 13
•
•
•
•
•

Does the software do what it should do?
Who says what it should do?
Are the components implemented correctly?
Are my tests independent? Do they test isolated units?
Who defines my test cases?

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13
Testing

• Does the software do what it should do?
• Who says what it should do?
=> Specification by Example, Agile Acceptance Testing

Pro
Cucumber, JBehave,
Jnario
Fitnesse

Maybe
Selenium,
Coded UI Tests

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13

Contra
JUnit,
Spring, Guice, CDI
Testing

• Are the components implemented correctly?
=> Unit Testing
Pro
JUnit

Maybe
Cucumber, Jnario

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13

Contra
Selenium
Testing

• Are my tests independent? Do they test isolated units?
=> Unit Testing
Pro
Mockito, JMock
Spring, Guice, CDI

Maybe
JUnit

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13

Contra
Mockito, JMock
• How can you ensure modularity and flexibility?
• Which libraries do we need in what version?
• How do I get feedback about my code?

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13
Configuration / Build

• How can you ensure modularity and flexibility?

Pro
Spring, Guice, CDI
OSGi, Java EE, Fuse
Gradle

Maybe
JPA, Hibernate
Maven

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13

Contra
JDBC, DB
make, Ant
Configuration / Build

• Which libraries do we need in what version?

Pro
Maven, Gradle

Maybe
Ivy

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13

Contra
Ant
Configuration / Build / Test

• How do I get feedback about my code?

Pro
Sonar
Gerrit
Jenkins, Hudson,
Team City
Metrics Library

Maybe

Contra

(Bug Tracker)

(User)

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13
• How can I deploy my code to different environments?
• How can I manage those environments?

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13
Continuous deployment

• How can I deploy my code to different environments?
• How can I manage those environments?

Pro
Puppet, Chef
Vagrant

Maybe
Jenkins, Hudson
Shellscripts, Ant

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13

Contra
Copying
• How can I make sure that the database schema fits my
software version?
• How can I migrate database data between versions?
• How can I configure databases for different environments?
• How can I provide test data?

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13
Configuration / Data

• How can I make sure that the database schema fits my
software version?
• How can I migrate database data between versions?
• How can I configure databases for different environments?
• How can I provide test data?
Pro
DB Maintain
Databene

Maybe
Lots of PL/SQL
scripts
Hibernate auto
migration

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13

Contra
Summary

•
•
•
•
•
•
•
•
•
•
•
•

Unit Testing
Mocking Framework
Agile Acceptance Testing
Configuration management
Dependency Injection
Build
Continuous Delivery
Continuous Integration
Code review
Version Control
Project management instruments
Micro frameworks?
Copyright © 2010 Source-Knights.com

Thursday, November 7, 13
business@davidtanzer.net
Continuous improvement
oliver.szymanski@source-knights.com

Copyright © 2010 Source-Knights.com

Thursday, November 7, 13

Weitere ähnliche Inhalte

Ähnlich wie Agile framework Support

DevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve Poole
DevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve PooleDevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve Poole
DevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve Poole
JAXLondon_Conference
 

Ähnlich wie Agile framework Support (20)

Enterprise Maven Repository BOF
Enterprise Maven Repository BOFEnterprise Maven Repository BOF
Enterprise Maven Repository BOF
 
NodeJS and what is actually does
NodeJS and what is actually doesNodeJS and what is actually does
NodeJS and what is actually does
 
From Renamer Plugin to Polyglot IDE
From Renamer Plugin to Polyglot IDEFrom Renamer Plugin to Polyglot IDE
From Renamer Plugin to Polyglot IDE
 
Red Dirt Ruby Conference
Red Dirt Ruby ConferenceRed Dirt Ruby Conference
Red Dirt Ruby Conference
 
Which Freaking Database Should I Use?
Which Freaking Database Should I Use?Which Freaking Database Should I Use?
Which Freaking Database Should I Use?
 
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
JAXLondon 2015 "DevOps and the Cloud: All Hail the (Developer) King"
 
Adobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - IntroductionAdobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - Introduction
 
Diverse 2010 Portland, Maine, US, Ward, Schulte Opencast Matterhorn, MediaMosa
Diverse 2010 Portland, Maine, US, Ward, Schulte Opencast Matterhorn, MediaMosaDiverse 2010 Portland, Maine, US, Ward, Schulte Opencast Matterhorn, MediaMosa
Diverse 2010 Portland, Maine, US, Ward, Schulte Opencast Matterhorn, MediaMosa
 
Diverse2010: How Opencast Matterhorn and MediaMosa can co-act
Diverse2010: How Opencast Matterhorn and MediaMosa can co-actDiverse2010: How Opencast Matterhorn and MediaMosa can co-act
Diverse2010: How Opencast Matterhorn and MediaMosa can co-act
 
DevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve Poole
DevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve PooleDevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve Poole
DevOps and the cloud: all hail the (developer) king - Daniel Bryant, Steve Poole
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
Agile Patterns and Anti-Patterns
Agile Patterns and Anti-PatternsAgile Patterns and Anti-Patterns
Agile Patterns and Anti-Patterns
 
jQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVCjQuery Mobile, Backbone.js, and ASP.NET MVC
jQuery Mobile, Backbone.js, and ASP.NET MVC
 
Monktoberfest Fast Delivery
Monktoberfest Fast DeliveryMonktoberfest Fast Delivery
Monktoberfest Fast Delivery
 
Front-End Performance Starts On the Server
Front-End Performance Starts On the ServerFront-End Performance Starts On the Server
Front-End Performance Starts On the Server
 
Web Test Automation Framework - IndicThreads Conference
Web Test Automation Framework  - IndicThreads ConferenceWeb Test Automation Framework  - IndicThreads Conference
Web Test Automation Framework - IndicThreads Conference
 
Oracle JET, with JET Mobile Content
Oracle JET, with JET Mobile ContentOracle JET, with JET Mobile Content
Oracle JET, with JET Mobile Content
 
Introduction to Protractor - Habilelabs
Introduction to Protractor - HabilelabsIntroduction to Protractor - Habilelabs
Introduction to Protractor - Habilelabs
 
Big Data in Memory - SpringOne 2014
Big Data in Memory - SpringOne 2014Big Data in Memory - SpringOne 2014
Big Data in Memory - SpringOne 2014
 
JFall 2016: Oracle JET Session
JFall 2016: Oracle JET SessionJFall 2016: Oracle JET Session
JFall 2016: Oracle JET Session
 

Kürzlich hochgeladen

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Kürzlich hochgeladen (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 

Agile framework Support

  • 2. David & Oliver • David: davidtanzer.net, @dtanzer • Oliver: source-knights.com, @sourceknights • both independent software consultants • both striving for simplicity in software development Copyright © 2010 Source-Knights.com Thursday, November 7, 13
  • 3. David & Oliver Starting from greenfield Copyright © 2010 Source-Knights.com Thursday, November 7, 13
  • 4. Defining Agile Modern development framework take away 80% of the job. Then they make the remaining work ten times as hard.” Johannes Brodwall Copyright © 2010 Source-Knights.com Thursday, November 7, 13
  • 5. • • • • • Does the software do what it should do? Who says what it should do? Are the components implemented correctly? Are my tests independent? Do they test isolated units? Who defines my test cases? Copyright © 2010 Source-Knights.com Thursday, November 7, 13
  • 6. Testing • Does the software do what it should do? • Who says what it should do? => Specification by Example, Agile Acceptance Testing Pro Cucumber, JBehave, Jnario Fitnesse Maybe Selenium, Coded UI Tests Copyright © 2010 Source-Knights.com Thursday, November 7, 13 Contra JUnit, Spring, Guice, CDI
  • 7. Testing • Are the components implemented correctly? => Unit Testing Pro JUnit Maybe Cucumber, Jnario Copyright © 2010 Source-Knights.com Thursday, November 7, 13 Contra Selenium
  • 8. Testing • Are my tests independent? Do they test isolated units? => Unit Testing Pro Mockito, JMock Spring, Guice, CDI Maybe JUnit Copyright © 2010 Source-Knights.com Thursday, November 7, 13 Contra Mockito, JMock
  • 9. • How can you ensure modularity and flexibility? • Which libraries do we need in what version? • How do I get feedback about my code? Copyright © 2010 Source-Knights.com Thursday, November 7, 13
  • 10. Configuration / Build • How can you ensure modularity and flexibility? Pro Spring, Guice, CDI OSGi, Java EE, Fuse Gradle Maybe JPA, Hibernate Maven Copyright © 2010 Source-Knights.com Thursday, November 7, 13 Contra JDBC, DB make, Ant
  • 11. Configuration / Build • Which libraries do we need in what version? Pro Maven, Gradle Maybe Ivy Copyright © 2010 Source-Knights.com Thursday, November 7, 13 Contra Ant
  • 12. Configuration / Build / Test • How do I get feedback about my code? Pro Sonar Gerrit Jenkins, Hudson, Team City Metrics Library Maybe Contra (Bug Tracker) (User) Copyright © 2010 Source-Knights.com Thursday, November 7, 13
  • 13. • How can I deploy my code to different environments? • How can I manage those environments? Copyright © 2010 Source-Knights.com Thursday, November 7, 13
  • 14. Continuous deployment • How can I deploy my code to different environments? • How can I manage those environments? Pro Puppet, Chef Vagrant Maybe Jenkins, Hudson Shellscripts, Ant Copyright © 2010 Source-Knights.com Thursday, November 7, 13 Contra Copying
  • 15. • How can I make sure that the database schema fits my software version? • How can I migrate database data between versions? • How can I configure databases for different environments? • How can I provide test data? Copyright © 2010 Source-Knights.com Thursday, November 7, 13
  • 16. Configuration / Data • How can I make sure that the database schema fits my software version? • How can I migrate database data between versions? • How can I configure databases for different environments? • How can I provide test data? Pro DB Maintain Databene Maybe Lots of PL/SQL scripts Hibernate auto migration Copyright © 2010 Source-Knights.com Thursday, November 7, 13 Contra
  • 17. Summary • • • • • • • • • • • • Unit Testing Mocking Framework Agile Acceptance Testing Configuration management Dependency Injection Build Continuous Delivery Continuous Integration Code review Version Control Project management instruments Micro frameworks? Copyright © 2010 Source-Knights.com Thursday, November 7, 13