An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for...

29
An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION [email protected] Mikio Aoyama Nanzan University [email protected]

Transcript of An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for...

Page 1: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

An Agile Development Method for Multiple Product Lines of Automotive Software Systems

Kengo Hayashi*DENSO [email protected]

Mikio AoyamaNanzan [email protected]

Page 2: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Scenario

1. Background2. Challenges3. Approaches4. Twofold Iterative Process5. Process Design and Process Assets6. Independence Analysis of Variability7. Application and Effectiveness8. Discussion and Future Works9. Conclusions

2

Page 3: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

Background1.

Page 4: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Parking Support System with Ultra Sonic Sensors

4

Product evolution is fast and expected to expand into many vehicle variations

Need to deal with both variability and agile evolvability concerns

Ultra Sonic Sensor

ECUElectronic Control Unit

evolve evolve1st gen. 2nd gen. 3rd gen.

Page 5: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Development Organization and Software Architecture

5

Collaboration between two divisions in the practice of SPLE

The derivative team concurrently develops along with MPLEECU

Microcontroller

BSW(Basic SoftWare)

MICROSAR RTE

Application

Comp Comp

Logic

ConfigurationCalibrationProduct

Line 1Evo

APD

B C D E

Evo

ProductLine 2Evo

FPD

G H

Evo

Evo

ProductLine 3Evo

I J LEvo K

ProductLine mEvo

M N POEvo Q

Evo

Time

Legend PD : Product Derivation Evo : Product Line Evolution◆ : Versions of Core Assets ○ : Core Product ● : Derivative Product

The Core Team Develop

The Derivative Team Develop

- Add Security Functions- Change of Automotive Platform

- Improvement of Functionality- Software Architecture Refinement

PD

PD PD

PD

PD PD

PD

PD

PD

- Change of Major Functions

Page 6: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

Challenges2.

Page 7: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

SPLE (Software Product Line Engineering)

7

SPLE deals with diversity by separating development into:

• Domain engineering• Application engineering

In practiceSome issues to be solved for SPLE

• Incomplete architecture• Evolutionary change over multiple

generations• Lack of test automation

The cost of application engineering done not become 0

Core Assets

Application 1 Application N+1

VP1VP2

VP3

VPx

Application N

VP=Variation Point

Page 8: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

MPLE (Multiple Software Product Line Engineering)

8

The derivative team develops multiple products concurrently

Portfolio management becomes more complicated, and risk increases

Release of C Release of D Release of F Release of H (ver.1)

Release of H (ver.2)

Release of I

Release of J

Develop of Product C

Develop of D Develop of F

Develop of H (ver.1)

Develop of H (ver.2)

Develop of I

Develop of J

Development Schedule

Portfolio Management

Overdelivery︖ Developer release︖Early development︖

Add developer︖Request for overtime︖

Productivity

Page 9: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Issues in Portfolio Management of MPLE

9

Portfolio

Realize effective portfolio management for stable development

Developer Resources

Core Assets

Development Environment

Issues

It is painful to increase or decrease developers since domain skills are necessary

It is confusing to modify the same asset at the same time

A limitation of the resource of test environments causes a bottleneck of testing

Page 10: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

Approaches3.

Page 11: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Overview

11

Issues

Introduce Scrum’s framework to enhance portfolio management

Approach

It is painful to increase or decrease developers since domain skills are necessary

It is confusing to modify the same asset at the same time

A limitation of the resource of test environments causes a bottleneck of testing

Developer Resources

Core Assets

Environments

Scrum with multi projects

Grasp more accurate on

- Time-box- Story point

Incrementally into subdivisions- Feature Oriented

Solution

Twofold Iterative Process Structure

Process Design

Process Assets

Dependency Analysis of Variability

Support

Page 12: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

Twofold Iterative Process Structure4.

Page 13: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Twofold Iterative Process Structure

13

<Conventional Agile Method>Learn productivity andfeedback to the planwith single iteration loop

<Twofold Approach>Minor iteration loop

within a project

Major iteration loopacross the multiple projects

Two fold feedback within and across iterative multiple projects

Time

Prod

uctiv

ityTime

Prod

uctiv

ity

<Conventional agile management method>

<Our approach to MPLE>Project A Project B Project C Project D

Project A

Learn & Feedback

Page 14: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Monitoring Development Size and Productivity

14

Integrated measured velocity = planning guidelines

Burndown chart of Product D

Record of development size

Difference between start to end

time

poin

ts

0time

Burndown chart of Product C

Implementation is reduced by product D

0

Refer recordsin the portfolio plan

pnt

0

Product E Product F

Velocity graph integrating multiple product developments

Stack consumption points of each sprint for all product development

Productivity of development team= moving average of 7 sprints

Increase / decrease from plan

Page 15: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

Process Design and Process Assets5.

Page 16: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Process Design and Process Assets

16

The process can be iteratively reusedover the engineeringof multiple applications

Design andReuse Processes asProcess Assets:- Tailoring result- Work procedure- Configuration of artifact

Designed Process maintains the learning effect across the projects

Core Assets

Application 1 Application N+1

VP1VP2

VP3

VPx

Application N

Process Assets

P1

P2P2-1

P2-2

Px

VP=Variation Point

Page 17: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

Dependency Analysis of Variability6.

Page 18: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Dependency Analysis of Variability

18

Dividing method and order constraints of development determined by dependency of variation points

Analyze the structureof variability

Analyze the dependencyof the set of variation points

Identify the order ofdivided development unit

Realize incremental development with less regression testing cost

vp2 depends on

vp1

Dependency Variability structure Constraints and dividing method

None

vp1

vp2VPo

vp1

vp2VPo

vp1

vp2VPo

vp1

vp2VPo

vp1

vp2VPo

vp1

vp2VPo

vp1

vp2VPo

vp1

vp2VPo

vp1 and vp2 are inter-

dependent

vp1

vp2VPo

vp1

vp2VPo

Constraints

Page 19: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

Application and Effectiveness7.

Page 20: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Application

20

The presenter as the leader of the development team

Statistics obtained from the actual projects

Development duration 10 months

A unit of sprint 2 weeks

Total number of sprints 22 sprints

Total number of projects 11

Size of unit (KLOC) 1 - 20

Development Period and Target Number of Projects

JIRAticket *

Unit NameClass NameEstimated Effort

GitSource CodeProcess Artifact *

Process Description

Stash link

Development Environment with Process Assets

Page 21: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Stability of the Development

21

Measure the velocity (moving average of 7 sprints)productivity is predictable = development is stable

The development is highly stable if items have iterativeness

Num

ber

of p

oint

s

05

101520

Prod

uctiv

ity

Vola

tility

(%)

Sprint

Less working day long-term

holiday

Including feature

development

Including feature

development

Page 22: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Leveling the Test Effort and Usage of Test Environment

22

Comparison of test environment usage rate with similar scale development

Lowered usage rate and leveling the peak load

0%

20%

40%

60%

80%

100%

120%

140%

160%

180%

1 6 11 16 21 26 31

Test

Env

iron

men

tU

sage

Rat

e(%)

Development Time(Day)

Conventional

Applicantion

100%

Conventional ApplicationTest days(Day)

12 20

Test hour (H)

77.75 78.32

Average (%)

80.99 48.95

Max (%) 162.50 106.25

Page 23: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Higher Velocity and Better Manageability of Value Stream

23

Distribution of development period vs development effortfor each development itemsLower development time/period indicates higher velocityLower SD indicates better manageability

Reduced variations and improved velocity of value stream

0

5

10

15

20

25

30

35

0 20 40 60 80 100D

evel

opm

ent Pe

riod

(D

ay)

Development Hours(H)

Application

ConventionalConventional Application

Item Count 11 17Dev. Time (H)

Average 31.53 19.99SD 25.49 13.02

Dev.Period(Day)

Average 16.82 4.82SD 7.21 2.15

SD: Standard Deviation

Page 24: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

Discussion and Future Works8.

Page 25: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Discussion and Future Works

Q1. Has the portfolio management been strengthened?

Q2. Is this approach the best?

Q3. Do not apply agile development for domain engineering?

Q4. Is further improvement possible?

25

A1. Yes. Stable productivity was obtained, the development scale was able to be grasped, and it become possible to keep updating the executable plan.

A2. No, but Better. Automatic testing and a more ideal configuration system can realize simpler development.

A3. Domain engineering is easier to apply. However, it is necessary to care the architecture because the architecture is easy to erosion.

A4. Yes. In the future, we plan to develop an architecture accommodating concurrent development with domain engineering.

Page 26: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

Conclusions9.

Page 27: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

Conclusions

Goal

Solutions

Benefits

Future Works

27

• Improvement of manageabilityin concurrent product development on MPLE

• Twofold Iterative Process Structure• Process Design and Process Assets• Dependency Analysis of Variability

• The development is highly stable if items have iterativeness• Lowered usage rate and leveling the peak load• Reduced variations and improved velocity of value stream

• Develop an architecture accommodating concurrent development with domain engineering

Page 28: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION

/28Agile in Automotive 2017 / 2017.11.15 / Kengo Hayashi / Advanced Safety Eng. Div. 4© DENSO CORPORATION All RightsReserved.

About the Speakers

28

Dr. Mikio Aoyama is a professor of Dep. of Software Engineering, Nanzan University, Nagoya, Japan since 2001.His research interests include requirements engineering,software architecture, and machine learning for theapplications in cloud/edge computing and automotivesystems. Prior to joining academia, Dr. Aoyama has 15years of experience in the development of large-scale real-time distributed systems at Fujitsu Limited.His paper “Agile Software Process and Its Experience” presented at ICSE ’98 is one of the earliest work on agile.

Dr. Mikio Aoyama is a professor of Dep. of Software Engineering, Nanzan University, Nagoya, Japan since 2001.His research interests include requirements engineering,software architecture, and machine learning for theapplications in cloud/edge computing and automotivesystems. Prior to joining academia, Dr. Aoyama has 15years of experience in the development of large-scale real-time distributed systems at Fujitsu Limited.His paper “Agile Software Process and Its Experience” presented at ICSE ’98 is one of the earliest work on agile.

Mr. Kengo Hayashi is a architect and project manager of Advanced Safety Engineering Div., DENSO CORPORATION, Kariya, Japan.He has engaged in the development of car navigation software systems and advanced sensing software system.He is pursuing the doctoral program at Aoyama Laboratory, in the graduate school of software engineering, Nanzan University.His research interests include software management, software product line engineering, and agile development.

Mr. Kengo Hayashi is a architect and project manager of Advanced Safety Engineering Div., DENSO CORPORATION, Kariya, Japan.He has engaged in the development of car navigation software systems and advanced sensing software system.He is pursuing the doctoral program at Aoyama Laboratory, in the graduate school of software engineering, Nanzan University.His research interests include software management, software product line engineering, and agile development.

Page 29: An Agile Development Method for Multiple Product …2017/10/30  · An Agile Development Method for Multiple Product Lines of Automotive Software Systems Kengo Hayashi* DENSO CORPORATION