tuleapcon 2017-stmicroelectronics-imaging-division-case-study
TRANSCRIPT
My Tuleap Story #TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
Vincent Colin de VerdiereCAD Engineer (Imaging division)
ST Microelectronics
#TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
STMicroelectronics, Imaging DivisionMain 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
#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)
#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 projects3. Ticket duplication / synchronization between product trackers on 2 Tuleap instances
#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
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
Implementation
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 versionReported issue is
not a bug
Can be waived in current HW version
#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
#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
#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
#TuleapCon2017 @TuleapOpenALM
100 % Agile & Open Source
My Tuleap Story
Thanks for your involvement and for your contribution to Tuleap life
#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 CopiedStage SelectBox Many values including closure values:
Fixed/Waived/Declined/Temporarily Fixed/..Copy To SelectBox SelectBox containing all product versions
Genealogy SelectBox Parent ,ChildFiliation ArtifactLink List child tickets