1. My Tuleap Story #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
Vincent Colin de Verdiere
CAD Engineer (Imaging division)
ST Microelectronics
@twitterVincent.colin-de-verdiere@st.com
2. #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
STMicroelectronics, Imaging Division
Main Activities
• Silicon Design (mainly HW development but also some SW development (Firmware) )
• Sensor based products (camera, range-finder, ..)
CAD team activity
• Facilitator role on EDA/CAD tools (selection, deployment, training, support)
• Define, Improve and deploy development methodologies
3. #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
How do we use Tuleap
• More than 100 Tuleap projects inside main Tuleap instance for the IMG division of ST
• Few Tuleap projects in another Tuleap instance shared with external partners
• Mainly 2 kinds of Tuleap projects:
o Technology/Algorithm/Modelling/Generic Activity/IP development (long term project instances – never ends) 50-250 users per
projects
o Product : one Tuleap project per product (or product family or prototype) 10-50 users per projects (.5 to 2 years)
(up to 2 new projects created each month)
o Users : all division members : HW & SW developers, project leaders, team leaders, product owner, marketing, quality, engineering, test
o Main features:
Single tracker per product for full product life (from early prototyping to customer support) (focus on this case only)
One or several svn repo, git repo (sw only)
Document manager
Mediawiki (howto doc, weekly reporting handling, …)
File Manager (package deliveries, …)
Continuous Integration (source code CI, miscellaneous automations)
4. #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
HW product life-cycle management with Tuleap
• 2 Kind of Trackers
- Generic trackers (ip, algorithm, …) for development that is shared between products
- Single tracker per product for all activities (dev, engineering, Q&A, …)
• Original Tracker Usage for IMG/ST division
Our work-flow requires automated ticket duplication in 3 different contexts :
1. Ticket duplication within product tracker to handle multi-fix for multiple versions of a product (focus on this case only)
2. Ticket duplication / synchronization between product tracker and generic tracker to ease bug/information sharing
between projects
3. Ticket duplication / synchronization between product trackers on 2 Tuleap instances
5. #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
Use case:
• One HW product has several releases (named PGs)
• One given HW defect can be closed differently between products releases:
Root cause fix in HW code, Waived until next version, SW work-around, ……
• We need to track for each version of a product, how a given defect was fixed and more
importantly guarantee that all temporary fixes in initial versions are properly either
maintained or properly fixed in the next version without missing any.
• One ticket per defect does not fulfill the objective
• Proposal: use one ticket per defect AND per HW product version.
Implemented Solution:
• Create a new parent/child ticket schema inside single tracker
• Develop some automation to create child tickets with minimal effort from user.
HW product life-cycle management with Tuleap :
Handle multiple product versions via ticket duplication within single tracker
6. HW Defect Life Cycle
Status Stage Genealogy
OpenCopied Assigned Parent
Open Waived Child
6
Status Stage Genealogy
OpenCopied Under Impl Parent
Open Temporarily
fixed
Child
Status Stage Genealogy
Open Fixed Parent
Status Stage Genealogy
Open Analyzed Parent
Status Stage Genealogy
Open Assigned Parent
Status Stage Genealogy
Open Declined Parent
Status Stage Genealogy
OpenCopied Waived Parent
Closed Waived Child
Status Stage Genealogy
OpenCopied Temporarily
Fixed
Parent
Closed Temporarily
Fixed
Child
Status Stage Genealogy
Closed Fixed Parent
Status Stage Genealogy
Closed Declined Parent
Child creation
Implementat
ion
Proposal
New bug
submission
Bug assigned for
analysis
Bug analyzed, ready
for decision
Can be imperfectly fixed
In current HW version
Proposal
Granted by
product team
Child creation
Can be fixed in
current HW version
Reported issue is
not a bug
Can be waived in
current HW version
7.
8. #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
ST Implementation details : Workflow and Trigger
Ticket Workflow
for Status field
• Attach a Jenkins trigger in ticket workflow (Status: Open -> Request Copy)
• Jenkins Trigger executes a script that:
• Technically :
o Copies source ticket to new ticket
o Copy-to field is used to set target product version
o Scripts are written in python using REST api.
o A full python package was developed to ease Tuleap platform
access via both REST api and legacy SOAP api
9. #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
• Tuleap is used for all projects with unique methodology :
• Very good tracking of defects during product life
• Ticket duplication automation : fast adoption by users
Gains of using Tuleap for product life-cycle management
Good efficiency
No training needed for new projects.
High Quality
Bug do not silently reappear during product life
No extra cost for developers
No human errors created by manual procedures
10. #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
Tuleap Items that would improve our efficiency
More automation capabilities
Full access to tracker data
Easier Tuleap project administration for non-site admins
• More complete project/tracker template instantiation
• APIs : svn service, full tracker configuration (name , dependencies table)
• Synchronization between svn/git tags and tracker fields
Access to raw data in all charts (cumulative flow charts)
Intermediate Tuleap admin role with access to all division projects
11. #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
Thanks for your involvement
and for your contribution to Tuleap life
13. #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
ST Implementation details : Tracker setup
• Extra fields/Values in tracker
Status SelectBox Open/Closed/Request Copy/Open Copied
Stage SelectBox Many values including closure values:
Fixed/Waived/Declined/Temporarily Fixed/..
Copy To SelectBox SelectBox containing all product versions
Genealogy SelectBox Parent ,Child
Filiation ArtifactLink List child tickets