software development at inria
DESCRIPTION
TRANSCRIPT
From research prototypeto reliable software
Clément MATHIEU
How to build reliable software at INRIA ?
How to fulfill both engineer and researcher requirements ?
Here is what we* do
* OASIS / ProActive
Outline
• Introduction• Team• Product• Issues
• Evolution
• Tools & Processes
• Conclusion
The OASIS team
Created in 1999.
Based at Sophia Antipolis.
Distributed and Parallel Computing.
5 researchers 10 PhDs 10 engineers ~17 Interns
* an INRIA spin off
ActiveEon*
The ProActive middleware
ProActive
Written in Java
ProActive
Our issues*
* One of
Researchers/PhDs are not Engineers*
* And don’t want to be
They want to publish papers.
We want (bullet proof) software
(with eye candies).
How to work together ?
Outline
• Introduction
• Evolution
• Tools & Processes
• Conclusion
1998: Project Started.
2000: CVS.
2003: Coding Standards.
2003: Functional Testing.(Home made)
2005: Subversion.
2007: Junit 4.
2007: Continuous Integration.
2007: JIRA Bug Tracking.
Today: Branching.
Outline
• Introduction• Evolution
• Tools & Processes• Principles• Continuous Integration• Branching• Bug Tracking
• Conclusion
Principle
Automation is the way
Which tool ?
• Avoid tool dependency
• Community matters
• Good looking helps adoption
Continuous Integration
Hudson* rocks !
* Thanks Kohsuke
Continuous Integration
The whole test suite is run
after each commit
Continuous Integration
Lots of nightly builds / checks
Continuous Integration
Success
Failure
Code Correctly Formatted
14%
86%
Continuous Integration
Success
Failure
Unstable
Build Results
41%
44%
15%
Continuous Integration
Junit trend
Continuous Integration
Branching
Inspired by agile methods to ease both
engineer and researcher work
Branching
Short iteration
• For engineers• Feature related• Merged ASAP• Synchronized
Long Iteration
• For research• Person related• Hopefully merged
Branching
Each branch has a referee
Branching
Continuous Integration only applies to the trunk
Branching
Avoid heavy branching
JIRA Bug Tracker
Outline
• Introduction
• Evolution
• Tools & Processes
• Conclusion
Conclusion
building blocks already exist*.
* We did not invented them
Conclusion
It’s all about tradeoff.
Maintenance costs VS productivity gains.
Conclusion
We will provide feedback*
* And I want to hear your
Clément MATHIEUIngénieur Associé
INRIA Sophia – AntipolisProjet OASIS