software development at inria

Post on 20-Jan-2015

1.765 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

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

top related