Transcript
Page 1: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Open Source Jumpstart:Open Source Jumpstart:

Tooling upTooling up

Page 2: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Page 3: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Contents

● Goal of Open Source Jumpstart series● Open source software (OSS) overview ● Common development environment● OSS tools overview● How OSS tools support agile practices● Eclipse ”live” demo

Page 4: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Goals of OS Jumpstart

● Bridge the gap between academia and industry● Introduce open source software (OSS) concept● Highlight significance of OSS ● Show how OSS tools support the agile process● Introduce the commonly used OSS tools in 

industry for development and testing

Page 5: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

The Modern Developer

● The role of a developer has changed radically● They need to be extremely flexible● They work on increasingly complex systems● Requirements change at the drop of a hat 

Page 6: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Gap between study and industry

● University can only teach you so much● Good placements help but are not easy to find● Build on what you know

● Learn what happens in industry● Build your skill set beyond your peers● Experience practical application of skills on projects● Make you CV more interesting to employers ● Increase your earning potential

Page 7: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Do you use OSS ?

Raise your hand if you already use OSS ?

Page 8: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Some popular OSS examples

Page 9: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

What is Open Source

● A licence model to distribute software● http://en.wikipedia.org/wiki/Comparison_of_free_software_licenses

● Openness and freedom within software● A open, collaborative and agile approach to 

development● A move away from  low value commercial 

and/or restrictive software

Page 10: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Why use Open Source ??     

● Its freely available – download it and try it out● You can see how it works under the hood● You can improve / extend how it works● Communities to help you get things done● OSS tools very common in industry

● Used extensively in agile companies 

● Latest technology often OSS● Scala, Clojure, BDD tools, NoSQL, etc

Page 11: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Is it really free?● Copyright still applies● Licence included in source code distribution● Variety of licences

● GPL / LGPL – require giving back● Apache License – commercial friendly● Creative Commons – other creative works

● Community help given freely● Commercial support available for big projects

Page 12: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

My company will provide...   

● Companies tend not to give you everything● Fill in the gaps with OSS

● Cost savings on commondity things mean more spending on high value stuff / training

● Many commercial products use OSS● IBM, Microsoft, Oracle, Google, 

Page 13: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

So what's out there in OSS land?

● Operating Systems● Android, Ubuntu, Debian, Fedora, SuSe, etc

● Productivity suites● Open Office, Inkscape, Gimp, OpenShot, Audacity, 

blender, etc...

● Development languages● Java, Scala, Clojure, C, C++, Python, Perl, PhP, etc

● Development and testing tools...

Page 14: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

OSS development and testing tools

Page 15: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

A Basic Development Environment

Page 16: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

End to end Development & Test Environment

● Development● IDE / Editor● Unit testing● Acceptance testing● Issue / bug tracking● Collaborative / Cloud 

workspaces

● Build Management● Version control● Build managment● Continuous Integration● Deployment

● Application testing● Functional● Load / Performance

Page 17: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Version Control

● Version all changes to the code ● Snapshots of known code state● Identify release code bases● Gives audit trail of changes● Experiment with code in branches● Rollback to a known state in code

● Collective ownership of code● Access open source project code

CVS

Subversion

Git

Mercurial

Page 18: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Build Tools● Build Automation

● Compile, test and deploy code with simple commands

● Consistent build tasks

● Manage dependant activties● eg. run tests when compiling

● Library dependancy management

● Call external tools / apps

Ant.apache.org

ant.apache.org/ivy

Maven.apache.org

Comparison of tools:http://ant.apache.org/ivy/m2comparison.html

Page 19: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Integrated Development Environments

● Manage large / multiple projects● Debugger ● Autocompletion (code api completion) ● Refactoring

● Build management● Ant / Maven – compile, test, deploy

● Integration● Application servers, databases, unit testing, 

Scm, bug tracker, CI server,

                

                 .org

                .org

IntelliJ IDEA jetbrains.org

Page 20: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Unit Testing

● Unit testing foremost a design process● Identify responsibilities and behavior● Define success at class level

● Test framework for your Java classes● Tests and test suites

● Supports test driven development (TDD)● Write a failing test, write code to make it pass● Run tests when compiling● Contiually check code changes ● Reduce bugs entering the code base

Page 21: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Acceptance Testing

● Extends Test Driven Development● Greater user focus● Looser coupled testing

● Using the language of the business● Thinking about the user interaction● Knowing when you are done!● Behaviour driven development

● a Lean thinking approach

Fitnesse.org

Cuke4Duke

EasyB

Page 22: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

BDD Feature Example

Page 23: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Continuous Integration● Regularly runs unit / acceptance tests, compile 

code, integration scripts, application tests, etc● Triggered at intervals or on source code commits● Builds all or part of code base 

● Helps with regular releases / agile practices● Know if your build will work for your showcase

● Early and continual feedback system● Identifys chages that breaks the build● Often used with large display / Lava lamp

● Code metrics and project health reports

Hudson­ci.org

Continuum

Page 24: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Issue / Bug Tracking

● Manage workload backlog● Features, stories, etc

● Manage bugs● Linked to scm code check­in

● Show progress to non­technical stakeholders

● Extend with Scrum or Kanban board approach

Bugzilla

Jira

Page 25: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Collaborative workspace

● Capture important knowledge and communication● Limit need for over­bearing docs● Discussion boards● Wiki pages● Coding standard documents

● Discuss issues● Useful for disparate teams

Mediawiki

Liferay

Page 26: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Summary

Page 27: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Summary of OSS tools

● End to end tool support● Tools incorporated into 

modern ide's● Tools can be used to give 

continuous feedback on your progress

● Help you become more agile

● Helps your carrer prospects

● Work on OSS projects

● Access to new technology and techniques

Page 28: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Eclipse Live Demo

Version control demo using Subversion, Eclipse 

and the Subclipse plug­in

byBen Evans

Page 29: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Jumpstart Summary

● OSS tools help create an agile environment

● OSS tools are widely used in industry

● Knowing these kind of tools help you get interesting jobs

● Lots more to learn about each tool

● Follow up sessions discuss each tool area in detail

● Lots of tutorials and books to help

Page 30: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

LJC Unconference 2● Saturday 26th June 2010 – 9.30am ● Great opportunity to hear from people in industry● Find out more about OSS tools, new things in Java, 

Functional programming, agile practices, acceptance testing and lots lots more...

● Discuss your ideas and problems● Practice your presentation skills by giving a talk

● Gain confidence for presenting to a team / manager

● Register at London Java Community Meetup site● Book on­line at SkillsMatter.com

Page 31: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

We want your feedback

Page 32: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

Open Source references

● Wikipedia: Open source software● http://en.wikipedia.org/wiki/Open_source_software

● The Cathederal and the Bazaar● http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar

● Free Software Foundation

Page 33: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

More OSS References

● News● Slashdot.org● TheServerSide.com

● Software sources ● Freshmeat.net● Sourceforge.net● osalt.com – oss alternatives to commercial software

● jr0cket.com – JVM & OSS solutions

Page 34: Open Source Jumpstart Tooling Up Intro

©LeanAgileMachineCreative Commons License

 

The Crown Tavern, 43 Clerkenwell Green

Islington – Old SkillsMatter Pub 

Meet with Companies looking for interns

Talk to experienced developers & testers

Ask questions about what you learnt tonight


Top Related