agile framework support
DESCRIPTION
Which Frameworks/Tools can actually help you in Agile Development? The talk is about what problems you have to face during Agile Development and how software can help you or be a mischief.TRANSCRIPT
Frameworks:supporters and mischief-
makers
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
David & Oliver
• David: davidtanzer.net, @dtanzer• Oliver: source-knights.com, @sourceknights
• both independent software consultants• both striving for simplicity in software development
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
David & OliverStarting from greenfield
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
Defining Agile
Modern development framework take away 80% of the job. Then they make
the remaining work ten times as hard.”Johannes Brodwall
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
• 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?
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
Testing
• Does the software do what it should do?• Who says what it should do?
=> Specification by Example, Agile Acceptance Testing
Pro Maybe ContraCucumber, JBehave, JnarioFitnesse
Selenium, Coded UI Tests
JUnit,Spring, Guice, CDI
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
Testing
• Are the components implemented correctly?
=> Unit TestingPro Maybe ContraJUnit Cucumber, Jnario Selenium
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
Testing
• Are my tests independent? Do they test isolated units?
=> Unit TestingPro Maybe ContraMockito, JMockSpring, Guice, CDI
JUnit Mockito, JMock
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
• How can you ensure modularity and flexibility?• Which libraries do we need in what version?• How do I get feedback about my code?
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
Configuration / Build
• How can you ensure modularity and flexibility?
Pro Maybe ContraSpring, Guice, CDIOSGi, Java EE, FuseGradle
JPA, HibernateMaven
JDBC, DBmake, Ant
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
Configuration / Build
• Which libraries do we need in what version?
Pro Maybe ContraMaven, Gradle Ivy Ant
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
Configuration / Build / Test
• How do I get feedback about my code?
Pro Maybe ContraSonarGerritJenkins, Hudson, Team CityMetrics Library
(Bug Tracker) (User)
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
• How can I deploy my code to different environments?• How can I manage those environments?
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
Continuous deployment
• How can I deploy my code to different environments?• How can I manage those environments?
Pro Maybe ContraPuppet, ChefVagrant
Jenkins, HudsonShellscripts, Ant
Copying
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
• 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?
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
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 Maybe ContraDB MaintainDatabene
Lots of PL/SQL scripts
Hibernate auto migration
Thursday, November 7, 13
Copyright © 2010 Source-Knights.com
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?
Thursday, November 7, 13