Tools for an effective software factory

14

Click here to load reader

Transcript of Tools for an effective software factory

Page 1: Tools for an effective software factory

Speaker, Company 1

Tools for an eff ectivesoftware factory

(I can't live without Hudson)

Page 2: Tools for an effective software factory

Speaker, Company 2

Agenda

• Why am I doing this?

• Maven

• Mercurial

• Jira *

• Hudson

• Conclusion

* the only non-FLOSS piece of software

Page 3: Tools for an effective software factory

Speaker, Company 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

Page 4: Tools for an effective software factory

Speaker, Company 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

Page 5: Tools for an effective software factory

Speaker, Company 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

Page 6: Tools for an effective software factory

Speaker, Company 6

Maven

• A tool for automating the build process

• Uses a declarative approach (Project Object Model)

• Plugin based

• Implements a distributed repository for artifacts

Page 7: Tools for an effective software factory

Speaker, Company 7

Mercurial

• A Distributed Source Control Mechanism (DSCM)– check out / commit + push pull

• Improves branch management over Subversion– “Branch per feature”

• Git is similar

Page 8: Tools for an effective software factory

Speaker, Company 8

Jira

• Starts as an issue tracker

• ... but it is more:– Project planning– Communication tool

Page 9: Tools for an effective software factory

Speaker, Company 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?

Page 10: Tools for an effective software factory

Speaker, Company 10

QA measurement

• Tools to measure quality of your software– Cobertura– FindBugs– CheckStyle– CPD/PMD

Page 11: Tools for an effective software factory

Speaker, Company 11

Cobertura

Page 12: Tools for an effective software factory

Speaker, Company 12

FindBugs

Page 13: Tools for an effective software factory

Speaker, Company 13

Checkstyle

Page 14: Tools for an effective software factory

Speaker, Company 14

PMD / CPD