UWB Technology for Enhanced Indoor and Outdoor Positioning in Physiological M...
Tools for an effective software factory
1. Toolsfor an ef ective
f
software factory
(I can't live without Hudson)
Speaker, Company 1
2. Agenda
• Why am I doing this?
• Maven
• Mercurial
• Jira *
• Hudson
• Conclusion
* the only non-FLOSS piece of software
Speaker, Company 2
3. Who am I?
• Fabrizio Giudici
– http://weblogs.java.net/blog/fabriziogiudici/
– http://www.tidalwave.it/people
• Working with Java since 1996
• Senior Java Architect, mentor, technical writer
• Owner of several open source projects
• Member of the NetBeans Dream Team
Speaker, Company 3
4. Why am I doing this?
• Tools aren't the single most important thing for success
– People are (team, leadership, communication, etc...)
• Once the we have estabilished a process, tools help a lot
– Automating tasks
– Enforcing the process
– Facilitating cooperation
• Tools make best practices easier and less expensive
Speaker, Company 4
5. What we need to do
• Transforming sources into deployable artifacts
• Keeping tracks of changes in sources
• Keeping track of issues (bugs, RFE)
• Running tests and QA tools
Speaker, Company 5
6. Maven
• A tool for automating the build process
• Uses a declarative approach (Project Object Model)
• Plugin based
• Implements a distributed repository for artifacts
Speaker, Company 6
7. Mercurial
• A Distributed Source Control Mechanism (DSCM)
– check out / commit + push pull
• Improves branch management over Subversion
– “Branch per feature”
• Git is similar
Speaker, Company 7
8. Jira
• Starts as an issue tracker
• ... but it is more:
– Project planning
– Communication tool
Speaker, Company 8
9. Hudson
• A tool for Continous Integration (CI)
– Web-based
– Easy to install
– Based on plugin, with a large ecosystem
– Supports virtualisation
– Cloud ready
• Do you know what CI is?
Speaker, Company 9
10. QA measurement
• Tools to measure quality of your software
– Cobertura
– FindBugs
– CheckStyle
– CPD/PMD
Speaker, Company 10