• No results found

Jidoka in Software Development

N/A
N/A
Protected

Academic year: 2021

Share "Jidoka in Software Development"

Copied!
27
0
0

Loading.... (view fulltext now)

Full text

(1)

Jidoka in Software

Development

Emanuele Danovaro, Andrea Janes, Giancarlo Succi

Center for Applied Software Engineering Free University of Bolzano/Bozen, Italy

{emanuele.danovaro, andrea.janes, giancarlo.succi}@unibz.it http://www.case.unibz.it

(2)

Agenda

Lean Thinking

A Jidoka Framework

Overview

Components

Conclusions

(3)

Lean Thinking

Initiated by Toyota when Ford was dominating

the market using mass production.

Initial idea: produce cars of different type on the same production line with similar costs and

(4)

The starting point

Time

(5)

Lean Thinking Strategy 1:

Removing Muda

Time Set-up

(6)

Lean Thinking Strategy 2:

Use

Jidoka

to ensure quality

http://sese.hpu.edu.cn/ie/mirror/leanword.htm

Machines that can detect a problem with the produced output and interrupt

production automatically ("Quality at the source")

(7)

Examples for Lean Thinking

in Software Engineering

Muda Jidoka Product Process Agility ? Automatic Testing Refactoring

(8)

Jidoka Framework

Plan

Do

Check

(9)
(10)

Interrupting software

production

Alerts

shown in the development environment

shown in the tray area

E-mail

Deny check-in

(11)
(12)

Stopping software

production

We need rules to decide whether a

software artifact is ready to proceed to the next production step

Rules use collected measurements to evaluate

if a situation is critical or not

evaluate which kind of alert to fire

Define data collection needs

(13)

Finding good rules

Align rules to busines goals

Create rules that are understood as useful by stakeholders

Alignment involving stakeholders in setting the goals before actual

implementation has been found to

(14)

Examples for rules

Bad smells in code

Shotgun surgery (on a development level or also across the team)

Workflow conformance

Verify if software is developed test-first

Verify if software is released within a maximum time frame

(15)
(16)

Measurement Probes

Inputs

Activities

(17)

Inputs

Main cost driver typically effort

Time spent editing artifacts like code or documentation

We built probes that track the time spent within IDEs like Eclipse, Microsoft Visual Studio, Sun NetBeans, etc., and personal productivity suites like OpenOffice and

(18)

Outputs

Output consists of artifacts like code and documentation

Properties can be observed to determine the quality: dynamically or statically

dynamically: execute and report problems

statically: verify source code quality using size, complexity, and object oriented

metrics and report problems

CruiseControl

Source code metric

(19)

Activities

Identifying activities is not straightforward, it depends on the specific problem

Activity

example Possible identification strategy

Testing Editing of files with filename like "test*.java" Editing of file with filename like

(20)

Activities

We adopt a rule based approach to decide if an activity took place or not

Rules can be updated "a posteriori" and all events can be re-evaluated again

The output of this component is the sequence of identified activities, the respective timestamps and users.

(21)
(22)

Conclusions

The idea to continuously monitor software artifacts and to alert the developer of

possible mistakes or problems is not new

(23)

Conclusions

Novelties

We measure not only the artifacts

produced but also the resources used as well as the activities performed

We use rules to build quality into the process, i.e., to enforce these rules without the need of a person to

(24)

Conclusions

Novelties (continued)

We see a dominance of the "pull" paradigm (stakeholder uses tool to

analyze software development process)

We want to promote a "push" paradigm (tool autonomously analyzes software development process according to

predefined rules and notifies stykeholders)

(25)

Limitations

Probes should not slow down machine

Amount of data that is collected

Not every analysis can be automated

Finding purposeful rules is hard

(26)

Further research

Which types of knowledge can be build into the process in the Jidoka way?

Which are the best ways to interrupt software production?

Validation

Does Jidoka work in software production? Impact?

(27)

Thank you for your

attention!

References

Related documents