29
© 2009 IBM Corporation IBM System Storage Academic Initiative Selected Aspects of Software Developement

Selected Aspects of Software Development

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Selected Aspects of Software Development

© 2009 IBM Corporation

IBM System Storage Academic Initiative

1

Selected Aspects of Software Developement

Page 2: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

2

Agenda

!  How to do it right? – Software Development Process – traditional vs. Agile

!  Where is my code? – Software tools for revision control, yesterday and today

!  Processes that you never thought of (and wished) they exist – Origin, Export, License, Copyright and friends

!  My customer has got a problem! – Software support processes, more or less intelligent

IBM Presentation Template Full Version

Page 3: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

3

Agenda

!  How to do it right? – Software Development Process – traditional vs. Agile

!  Where is my code? – Source Code Management/Software Configuration Management, yesterday and today

!  Processes that you never thought of (and wished) they exist – Origin, Export, License, Copyright and friends

!  My customer has got a problem! – Software support processes, more or less intelligent

IBM Presentation Template Full Version

Page 4: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

4

Traditional Software Development Process

!  Example: “Waterfall” process 1 Gather requirements, analyze 2  Design solution 3  Implement code, verify/qualify code 4  Deliver / install / customize product 5  Maintain shipped product

Picture source: http://commons.wikimedia.org/wiki/File:Jiuzhaigou_Pearl_Waterfall_2005-08-21.jpeg Author: Noe Lecocq

DCP=Decision Checkpoint ADCP= Availability DCP EOL = End-of-life

Page 5: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

5

Traditional Software Development Process

DCP=Decision Checkpoint ADCP= Availability DCP EOL = End-of-life

ALWAYS???

Page 6: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

6

Waterfall Model Shortcomings

!  We often do not know the exact requirements upfront

!  Requirements change

!  Environments change

!  Hard to predict when ready to change to the next phase

!  Unexpected development challenges can hardly be mitigated

!  May result in delivery of “Banana-ware”

Page 7: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

7

Agile Manifesto

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

Kent Beck Mike Beedle Arie van Bennekum Alistair Cockburn Ward Cunningham Martin Fowler James Grenning Jim Highsmith Andrew Hunt Ron Jeffries Jon Kern Brian Marick Robert C. Martin Steve Mellor Ken Schwaber Jeff Sutherland Dave Thomas © 2001, the above authors this declaration may be freely copied in any form, but only in its entirety through this notice. http://www.agilemanifesto.org/

Page 8: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

8

Agile Software Development Process by Example

!  Meaningful stakeholder interaction

!  Continuous integration

!  Continuous verification

!  Short iterations

!  Stable code at iteration exit

!  Regular plan reviews

!  Steady team status meetings

"Uses continuous stakeholder feedback to deliver high-quality, consumable code through use cases and a series of short, stable, time-boxed iterations."

Page 9: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

9

Agenda

!  How to do it right? – Software Development Process – traditional vs. Agile

!  Where is my code? – Software tools for revision control, yesterday and today

!  Processes that you never thought of (and wished) they exist – Origin, Export, License, Copyright and friends

!  My customer has got a problem! – Software support processes, more or less intelligent

IBM Presentation Template Full Version

Page 10: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

10

Revision Control Software - Why?

Page 11: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

11

Revision Control Software - Why?

!  Efficient source code control – Generate history of code changes – Roll-back to any prior revision – Extract code for a published software revision –  Inspect changes between two revisions – Handle multiple code streams (stable, testing, experimental, ....) – Handle variants / customer-specific versions – Code backup

!  Efficient team operation – Share code – Work simultaneously with the same code base

!  Legal aspects – Find out when some feature was implemented

Page 12: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

12

Revision Control – Legacy (if done at all ;-)

!  Centralized Server

!  Single Repository

Revision Control Server

Developer A

Developer B

Developer C

Page 13: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

13

Revision Control – How today's geeks do it

!  Distributed

!  Online/Offline

!  Local repositories

!  Optional centralized repositories

!  Branch & Merge as a first-class operation

Revision Control Server A (optional)

Developer A

Developer B Developer C

Revision Control Server B (optional)

Developer D

Page 14: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

14

The Big Picture – Integrated Software Process Tooling

Planning

Reporting

Work Items

SCM

!  (Collaborative) “Application Lifecycle Management”

–  Integration of tools related to software development process

–  Includes Software Configuration Management (SCM) that includes Revision Control Software

– Common interfaces – Common datastore

Build Management

Page 15: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

15

Agenda

!  How to do it right? – Software Development Process – traditional vs. Agile

!  Where is my code? – Software tools for revision control, yesterday and today

!  Processes that you never thought of (and wished) they exist – Origin, Export, License, Copyright and friends

!  My customer has got a problem! – Software support processes, more or less intelligent

IBM Presentation Template Full Version

Page 16: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

16

Processes – Why?

Free Software Foundation files suit against Cisco for GPL violations (Dec 2008)

Red Hat Sued Over Hibernate 3 ORM Patent Infringement Claim (Jun 2006->Jun 2008)

SCO vs IBM (2003-...)

Red Hat's Jboss Software Draw Patent Suit (Mar 2009)

Microsoft Files Suit Against TomTom (Feb 2009)

FSF take on Apple App Store over GPL2 code (May 2010)

Page 17: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

17

Processes – What and Why do I Need to Bother?

!  To protect you, your company and your customers against 3rd party (legal) claims – Ownership –  Intellectual property (IP) protection – Trade law and trade restrictions – Right to use

!  Why do I (as a developer) need to bother with that? – Want to re-use cool 3rd party stuff

AND/OR Save some time & money for your company AND Don't want to get fired or impeached THEREFORE

– Need to provide input for the legal department

Page 18: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

18

Processes – Certificate of Originality

!  Defining origin of software (source code, libraries, icons, graphics, sound, videos,...) – Where does the content that is part of the software distribution come from?

•  Who wrote which code? •  Which development tools were used? •  Which 3rd party artifacts were used?

– Under what license? Are there royalty obligations?

!  Also a place to – Define standardization-related items – Cross-check naming/trademark clearance – Check if there are patents involved

Page 19: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

19

Processes – Export and Import Considerations

!  Why are we punished for shipping software to Absurdistan? – Export is a privilege, not a right – Cryptography is considered as restricted technology

!  What are the responsibilities for a developer? – Exactly define use of restricted technology

!  Some countries require import licenses – For importing restricted technology

Page 20: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

20

Processes - License

!  What can happen when you ship software without a license?

Page 21: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

21

Processes - License

!  What can happen when you ship software without a license? – Some countries' laws do not prevent 3rd parties from taking ownership

•  Depending on the copyright definition (“Public Domain”) – Users may not be allowed to use the software

•  License grants (usage) rights – Liability is unclear

•  Legal risks – Bundling of 3rd party products may not be allowed

•  Example: compatibility with Open Source Software licenses

Page 22: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

22

Other Processes to Care About

!  Naming clearance

!  Implications of usage of Open Source Software (OSS) – Product needs to fulfil obligations of OSS license

•  When re-distributing OSS or depending on OSS

!  Copyright registration – To ensure copyright protection

!  Country-specifics – Example: Italian Anti-Piracy law

•  Prerequisite to sell software in Italy •  Describe distribution media, describe anti-counterfeit product features

Page 23: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

23

Agenda

!  How to do it right? – Software Development Process – traditional vs. Agile

!  Where is my code? – Software tools for revision control, yesterday and today

!  Processes that you never thought of (and wished) they exist – Origin, Export, License, Copyright and friends

!  My customer has got a problem! – Software support processes, more or less intelligent

IBM Presentation Template Full Version

Page 24: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

24

So many support levels, what are they good for? Customer

Call Entry Center

Level 2 Product Field Engineer (PFE)

On-site Support

Installation, Parts repair

How - To Complaint Handling (CritSit)

Level 3 Development

Level 1

Front - End

Level 1

Front - End

P R O J E C T

O F F I C E

!  Large company scenario – many customers – many products /

product variants – many employees – varying skills at

customer and support company

Page 25: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

25

Client Self-Assist - We help you to help yourself

Customer

Call Entry Center

Level 2 Product Field Engineer (PFE)

On-site Support

Installation, Parts repair

How - To Complaint Handling (CritSit)

Level 3 Development

Level 1 Front - End Level 1

Front - End

P R O J E C T

O F F I C E

Customer

Call Entry Center

Level 2 Product Field Engineer (PFE)

On-site Support

Installation, Parts repair

How - To Complaint Handling (CritSit)

Level 3 Development

Level 1 Front - End Level 1

Front - End

P R O J E C T

O F F I C E

eSupport

Traditional With CSA

Page 26: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

26

Client Self Assist – Details (1)

!  Support portal

!  Knowledge base – Search – Tagging –  feedback

!  (Web 2.0) Collaboration tools – Self-help forums – Communities – Blogs / Tweets – Video tutorials

Page 27: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

27

Client Self Assist – Details (2)

!  Consistent support notifications

!  Consistent inventory collection and reporting

!  Electronic fix acquisition

!  Problem determination software tools – Diagnostic software – Monitoring & Log analysis – Mapping to known symptoms

Page 28: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

28

You've got a problem, but we've solved it

!  Autonomic (if customer wants that) – Call Home – Lights-out Assist On-Site – Continuous monitoring – Automatic updates

Customer System

Problems

Fixes

Common client SW

Update

Problem

Inventory

Common IT

Structure

Server A

Server B Storage A Storage B

Software Inventory

Status

Health

Connectivity

Supporting Company

Page 29: Selected Aspects of Software Development

© 2010 IBM Corporation

IBM System Storage Academic Initiative

29

Grazie

Gracias Obrigado

Danke

Japanese

Hebrew

Thank You

English

French

Russian

German

Italian

Spanish

Brazilian Portuguese

Hindi

Tamil

Korean

Thai

Simplified Chinese

Arabic

Traditional Chinese

Merci