34
©LeanAgileMachine Creative Commons License  Open Source Jumpstart: Open Source Jumpstart: Tooling up Tooling up

Open Source Jumpstart Tooling Up Intro

Embed Size (px)

DESCRIPTION

Following on from the Open Source Jumpstart in April we are running the first event in a series designed to introduce the most common Open Source tools encountered as a professional developer at work or when contributing to OSS projects. The series will show how the concepts taught at University in computing science and software engineering modules can be applied effectively with Open Source tools and help establish a highly agile approach to the whole software development cycle.

Citation preview

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