62
ETSN15 - Requirements Engineering Lecture 6: Preparations for Lab 2 Market-Driven Requirements Engineering [MDRE] Prioritization [PRIO], Release Planning [RP] RE for OSS [OSSRE] Johan Linåker Björn Regnell http://www.cs.lth.se/krav

ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

ETSN15 - Requirements Engineering

Lecture 6:Preparations for Lab 2

Market-Driven Requirements Engineering [MDRE]

Prioritization [PRIO], Release Planning [RP]

RE for OSS [OSSRE]

Johan Linåker

Björn Regnell

http://www.cs.lth.se/krav

Page 2: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Market-Driven Requirements Engineering (MDRE)

Page 3: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Book chapter [MDRE] in compendium

● Market-Driven Requirements Engineering for Software Products

● Regnell, B., & Brinkkemper, S.● Engineering and Managing Software

Requirements, Eds. A. Aurum and C. Wohlin, Springer, ISBN 3-540-25043-3, 2005

Page 4: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

RE vs. Product & Project Mgmt

Marketng Organizaton

DevelopmentOrganizaton

Product Management

Project Management

Top-level management

Business Stra

tegy

Portolio

Mgmt

RequriementsEngineering

Page 5: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Software Product Management

[SPM]

Page 6: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Software Project Management

Page 7: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

The investment cycle

[MDRE]

Page 8: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Different types of products

● Generic product on the open market● The distinction is often blurred: the same

organization combines several types– e.g., generic + customized

● Sometimes products evolve from customer specific to generic

[MDRE]

Page 9: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Characteristics of MDRE

● Success through sales and market share – (not just customer satisfaction)

● Release Planning focus on– Time-to-market– Multiple release

● Continuous evolution – (not just maintenance)

● Inventing requirements + market analysis – (not just collecting 1-on-1)

● Stakeholders– Market segments with potential customers– Competitors (confidentiality often needed)

● Continuous inflow of requirements

[MDRE]

Page 10: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Bespoke RE vs MDRE

[PRIO]

Page 11: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Some challenges in MDRE

● Balancing market pull and technology push● Chasm between marketing and development● Requirements dependencies● Cost-value-estimation and release planning

– Over and Under● Overloaded requirements management

– Stage gates and triage

[MDRE]

Page 12: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Decisions outcomes in MDRE

[MDRE]

Product Quality:

Decision Quality:

Page 13: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Finding the golden grains despite uncertain cost-value estimates

[MDRE]

Page 14: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Requirements Prioritization

Page 15: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Book chapter [PRIO] in compendium

● Requirements prioritization● Berander, P., & Andrews, A.● Engineering and Managing Software

Requirements, Eds. A. Aurum and C. Wohlin, Springer, ISBN 3-540-25043-3, 2005

Page 16: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Why prioritize?

● To focus on the most important issues● To find high and low priority requirements● To implement requirements in a good order● To save time and money

[PRIO][PRIO]

Page 17: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Steps we need to do...

● Select prioritization apects● Select prioritization objects (e.g., features)● Structure and grouping● Do the actual prioritization

– Decide priorities for each aspect and object

● Visualize, discuss, iterate...

[PRIO][PRIO]

Page 18: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Prioritization challenges

● Finding a good abstraction level● Combinatorial explosion● Inter-dependencies● Not easy to predict the future● Power and politics

[PRIO][PRIO]

Page 19: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Prioritization aspects

● Example aspects:– Importance (e.g., financial benefit, urgency, strategic value, market share

etc.– Penalty (if requirement not included)– Cost (e.g., staff effort)– Time (e.g., lead time)– Risk (e.g., technical, market)– Volatility (instability, risk of change)

● Other aspects (e.g., competitors, brand fitness, competence, release theme…)● Combination of aspects: cost vs. benefit, cost vs. risk, importance vs. volatility● Optimize: minimize or maximize some combinations, e.g., cost-benefit

[PRIO][PRIO]

Page 20: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Filtering requirements

Karlsson, Joachim, and Kevin Ryan. "A cost-value approach for prioritizing requirements." IEEE software 14.5 (1997): 67-74.

Page 21: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

When to prioritize?

● At decision points (toll gates), e.g., – Project start– Start of construction– Release planning– Increment planning

● When big changes occur● Iteratively with lagom intervals

[PRIO][PRIO]

Page 22: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Who should prioritize?

● Find the right competence for the right aspect– Developers know about e.g., development

effort and engineering risk– Support organization knows about e.g.,

customer value and penalty– Marketing organization knows e.g., about

competitors– etc...

[PRIO][PRIO]

Page 23: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Typical industry praxis

● Numerical assignment, e.g., 1-5– See Lauesen, chapter 7.4

● Problem:– Requirements are not confronted to each other– What should go out when new requirements

wants in?– Everything tends to be important

→ decision avoidance

[PRIO][PRIO]

Page 24: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Prioritization scales

[PRIO][PRIO]

Ratio scale

ex: $, h,

% (relative)

Numeric relations: A=2*B

Categorization

e.g.: must, ambiguous, volatile

Partition in groups without greater-less relations

Ordinal scale

e.g.: more expensive, higher risk,higher value

Ranked listA>B

Page 25: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Prioritization techniques

● Grouping, numbering assignment (grading)● Ranking (sorting)● Top-ten (or Top-n)● Analytical Hierarchy Process (AHP)● 100$ test● Combination of techniques

[PRIO][PRIO]

Page 26: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Tools can help fnd inconsistencies

[PRIO][PRIO]

has more value for customer than

has more value for customer than

has more value for customer than

Image enhancement

Voice control

Adress book

???!

Page 27: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Release Planning

Page 28: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Paper [RP] in compendium

● The art and science of software release planning

● Ruhe, G., & Saliu, M. O. ● IEEE software, 22(6), 47-53. 2005

Page 29: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

What is Release Planning?

[RP]

Page 30: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Release Planning involves...

● ...prioritization + scheduling under various constraints, e.g., resource and precedence constraints

[RP]

Page 31: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Example planning parameters

● Requirements priorities (from prioritization)● Available resources● Delivery time● Requirements interdependencies

– Precedence, Coupling, Excludes● System architecture● Dependencies to the code base

[RP]

Page 32: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

What is a good release plan?

● A good release plan should– Provide maximum business

value by● offering the best possible

blend of features● in the right sequence of

releases– satisfy the most important stakeholders involved– be feasible with available resources, and– Reflect existing dependencies between features

[RP]

Page 33: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Baseline: Release Planning - on the fy

● Informal process● Rationale behind decisions not always clear● Constraints regarding e.g., resources and

stakeholders not systematically taken into account

● Already in case of 20 features and 3 releases420 > 1.000.000.000.000 = 1012 possibilities

[RP]

Page 34: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Investigate with reqT why greedy is not good

val m = Model(

Feature("a") has (Benefit(90), Cost(100)),

Feature("b") has (Benefit(85), Cost(90)),

Feature("c") has (Benefit(80), Cost(25)),

Feature("d") has (Benefit(75), Cost(23)),

Feature("e") has (Benefit(70), Cost(22)),

Feature("f") has (Benefit(65), Cost(20)),

Feature("g") has (Benefit(60), Cost(10)),

Feature("h") has (Benefit(55), Cost(30)),

Feature("i") has (Benefit(50), Cost(30)),

Feature("j") has (Benefit(45), Cost(30)),

Release("r1") has Capacity(100),

Release("r2") has Capacity(90))

def features(m: Model) = m.tip.collect{case f: Feature => f}def releases(m: Model) = m.tip.collect{case r: Release => r}def allocate(m: Model, f: Feature, r: Release) = m + (r has f)def isAllocated(m: Model, f: Feature) = releases(m).exists(r => (m/r).contains(f))def allocatedCost(m: Model, r: Release) = (m/r).entities.collect{case f => m/f/Cost}.sumdef isRoom(m: Model, f: Feature, r: Release) = m/r/Capacity >= allocatedCost(m,r) + m/f/Cost def featuresInGreedyOrder(m: Model) = features(m).sortBy(f => m/f/Benefit).reverse

def random(m: Model, r: Release) = scala.util.Random.shuffle(features(m)). filter(f => !isAllocated(m,f) && isRoom(m,f,r)).headOption

def greedy(m: Model, r: Release) = featuresInGreedyOrder(m).find(f => !isAllocated(m,f) && isRoom(m,f,r))

def plan(input: Model, pickNext: (Model,Release)=>Option[Feature]): Model = { var result = input releases(input).foreach { r => var next = pickNext(result, r) while (next.isDefined) { result = allocate(result, next.get, r) next = pickNext(result, r) } } result}

plan(m, random)plan(m, greedy)

Page 35: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Optimal vs. Greedy

val optimal = Model(

Feature("a") has (Benefit(90), Cost(100)),

Feature("b") has (Benefit(85), Cost(90)),

Feature("c") has (Benefit(80), Cost(25)),

Feature("d") has (Benefit(75), Cost(23)),

Feature("e") has (Benefit(70), Cost(22)),

Feature("f") has (Benefit(65), Cost(20)),

Feature("g") has (Benefit(60), Cost(10)),

Feature("h") has (Benefit(55), Cost(30)),

Feature("i") has (Benefit(50), Cost(30)),

Feature("j") has (Benefit(45), Cost(30)),

Release("r1") has (Capacity(100), Feature("c"), Feature("d"), Feature("e"), Feature("f"), Feature("g")),

Release("r2") has (Capacity(90), Feature("h"), Feature("i"), Feature("j")))

def sumAllocatedBenefit(m: Model) = releases(m).map(r => (m/r).collect{case f: Feature => m/f/Benefit}.sum).sum

val beneftitOptimal = sumAllocatedBenefit(optimal)val benefitGreedy = sumAllocatedBenefit(plan(m,greedy))val ratio = benefitGreedy.toDouble / beneftitOptimal

Page 36: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Example from [PRIO]

Page 37: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Example from [PRIO]

Page 38: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Example from [PRIO]

Page 39: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Example from [PRIO]

Page 40: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Example from [RP]

Page 41: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Example from [RP]

WAS: weighted average satisfaction of stakeholder priorities

Page 42: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Example from [RP]

WAS: weighted average satisfaction of stakeholder priorities

Example (Part 2)

Page 43: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Requirements Engineering in Open Source Communities

Page 44: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Paper [OSSRE] in compendium

● Understanding Requirements for Open Source Software

● Scacchi, W.● Design Requirements Engineering: A Ten-Year

Perspective, Springer, pp. 467-494, 2009

Page 45: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

What is open source?

● Software that provides its source code under a license with the rights to study, change, and distribute the software for anyone and for any purpose

● See OSI definition: 10 freedomshttp://opensource.org/osd-annotated

Page 46: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Different types of licenses

● Use of open source is governed with licenses● Difference in “freedom” of usage● Copyleft ↔ Permissive

Page 47: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Community surrounding the software

Page 48: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

The RE process(es)

● (Semi-)formal● Need-to-know basis● Centralized● Collaboration based

on process-design

● Informal● Transparent● Decentralized● Collaborative

Page 49: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Informal requirements representation

● One requirement can have multiple representations and fragments (informalisms)

● Each representation has their own repository(compare with Bespoke RE/MDRE)

● E.g., mailing-lists, issue trackers, code- repository, IRC, wikis...

Page 50: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Classifcation sometimes foating

Linåker, J., Regnell, B., & Damian, D. (2018). Who are they and what do they want? - Stakeholder Identification and Influence Analysis in Open Source Software Ecosystems. In submission.

Page 51: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Informal requirements process

Ernst, Neil A., and Gail C. Murphy. "Case studies in just-in-time requirements analysis." 2012 Second IEEE International Workshop on Empirical Requirements Engineering (EmpiRE). IEEE, 2012.

Page 52: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Community governance

● Often meritocrazy-based +/- Benovelent dictators

● Influence on RE process gained by showing merit– E.g., contributing code,

sharing knowledge, attending “offline” events, sponsoring

Nakakoji, Kumiyo, et al. "Evolution patterns of open-source software systems and communities." Proceedings of the international workshop on Principles of software evolution. ACM, 2002.

Page 53: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Evolving community of stakeholder

Linåker, J., Rempel, P., Regnell, B., & Mäder, P. (2016, March). How firms adapt and interact in open source ecosystems: analyzing stakeholder influence and collaboration patterns. In International Working Conference on Requirements Engineering: Foundation for Software Quality (pp. 63-81). Springer, Cham.

Page 54: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Different types of relationships

Dahlander, Linus, and Mats G. Magnusson. "Relationships between open source software companies and communities: Observations from Nordic firms." Research policy 34.4 (2005): 481-493.

Page 55: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Open Source used in different ways

● Direct or indirect, e.g., ● Support & subscription● Open core / open platform● Dual licensing● Complementary● Infrastructure / Tooling

Page 56: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Some examples

Page 57: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Open Source ops in companies

● Often centralized to a Open Source Program Office – oversees the 4C’s

Ibrahim Haddad, Samsung Research America, presentation at the Open Source Summit Europe 2017http://www.ibrahimatlinux.com/uploads/6/3/9/7/6397792/oss-summit-eu-2017.pdf

Page 58: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

What should you share?

?

Page 59: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

What you gain and loose?

Page 60: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Contribution strategies What & When→

Linåker, J., Munir, H., Wnuk, K., & Mols, C. E. (2018). Motivating the contributions: An Open Innovation perspective on what to share as Open Source Software. Journal of Systems and Software, 135, 17-36.

Page 61: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

Exjobb <3 RE <3 OSS

# Company Involvement in the Linux, OpenStack and WebKit Communities* Requirements Engineering, Open Source, Social Network Analysis, Data Mining, R/Python

# Feature Clustering and Collaboration Recommendations in Open Source Issue Trackers* Requirements Engineering, Open Source, Social Network Analysis, Data Mining, Machine

Learning, R/Python

# Requirements Engineering Practices in Open Source Companies/Startups* Requirements Engineering, Open Source, Survey/Interviews, Literature Review, Statistics

# Open Source Licences and Requirements Engineering* Requirements Engineering, Open Source Licences, Intellectual Property, Interviews, Literature

Review

# Open Source Business Models and Requirements Engineering* Requirements Engineering, Open Source Business Models, Survey/Interviews, Literature

Review, Statistics

Page 62: ETSN15 - Requirements Engineeringcs.lth.se/fileadmin/cs/johan_linaker/L6-2017-MDRE+PRIO+RP+OSS.pdfBook chapter [MDRE] in compendium Market-Driven Requirements Engineering for Software

TODO!

● Lab2– Please note: Preparations for lab2 takes significantly

more time compared to lab1 (~2-4h)

– Read [PRIO, RP]– Do [LAB2] (see compendium or course web)– Bring any preparations to lab

● Lecture 7 – Validation, inspections, Agile RE● Exercise 5 – Validation