Open Source Jumpstart Tooling Up Intro
-
Upload
skills-matter -
Category
Technology
-
view
105 -
download
0
description
Transcript of Open Source Jumpstart Tooling Up Intro
©LeanAgileMachineCreative Commons License
Open Source Jumpstart:Open Source Jumpstart:
Tooling upTooling up
©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
©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
©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
©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
©LeanAgileMachineCreative Commons License
Do you use OSS ?
Raise your hand if you already use OSS ?
©LeanAgileMachineCreative Commons License
Some popular OSS examples
©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
©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
©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
©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,
©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...
©LeanAgileMachineCreative Commons License
OSS development and testing tools
©LeanAgileMachineCreative Commons License
A Basic Development Environment
©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
©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
©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
©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
©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
©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
©LeanAgileMachineCreative Commons License
BDD Feature Example
©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
Hudsonci.org
Continuum
©LeanAgileMachineCreative Commons License
Issue / Bug Tracking
● Manage workload backlog● Features, stories, etc
● Manage bugs● Linked to scm code checkin
● Show progress to nontechnical stakeholders
● Extend with Scrum or Kanban board approach
Bugzilla
Jira
©LeanAgileMachineCreative Commons License
Collaborative workspace
● Capture important knowledge and communication● Limit need for overbearing docs● Discussion boards● Wiki pages● Coding standard documents
● Discuss issues● Useful for disparate teams
Mediawiki
Liferay
©LeanAgileMachineCreative Commons License
Summary
©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
©LeanAgileMachineCreative Commons License
Eclipse Live Demo
Version control demo using Subversion, Eclipse
and the Subclipse plugin
byBen Evans
©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
©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 online at SkillsMatter.com
©LeanAgileMachineCreative Commons License
We want your feedback
©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
©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
©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