Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Selected Aspects of Software Development

869 views

Published on

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

Selected Aspects of Software Development

  1. 1. IBM System Storage Academic InitiativeSelected Aspects of SoftwareDevelopement © 2009 IBM Corporation
  2. 2. IBM System Storage Academic InitiativeIBM Presentation Template Full VersionAgenda!  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 intelligent2 © 2010 IBM Corporation
  3. 3. IBM System Storage Academic InitiativeIBM Presentation Template Full VersionAgenda!  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 intelligent3 © 2010 IBM Corporation
  4. 4. IBM System Storage Academic InitiativeTraditional 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 DCP=Decision Checkpoint ADCP= Availability DCP EOL = End-of-life Picture source: http://commons.wikimedia.org/wiki/File:Jiuzhaigou_Pearl_Waterfall_2005-08-21.jpeg Author: Noe Lecocq4 © 2010 IBM Corporation
  5. 5. IBM System Storage Academic InitiativeTraditional Software Development Process DCP=Decision Checkpoint ADCP= Availability DCP EOL = End-of-life ALWAYS???5 © 2010 IBM Corporation
  6. 6. IBM System Storage Academic InitiativeWaterfall 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”6 © 2010 IBM Corporation
  7. 7. IBM System Storage Academic InitiativeAgile 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/7 © 2010 IBM Corporation
  8. 8. IBM System Storage Academic InitiativeAgile Software Development Process by Example "Uses continuous stakeholder feedback to deliver high- quality, consumable code through use cases and a series of short, stable, time-boxed iterations."!  Meaningful stakeholder interaction!  Continuous integration!  Continuous verification!  Short iterations!  Stable code at iteration exit!  Regular plan reviews!  Steady team status meetings8 © 2010 IBM Corporation
  9. 9. IBM System Storage Academic InitiativeIBM Presentation Template Full VersionAgenda!  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 intelligent9 © 2010 IBM Corporation
  10. 10. IBM System Storage Academic InitiativeRevision Control Software - Why?10 © 2010 IBM Corporation
  11. 11. IBM System Storage Academic InitiativeRevision 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 implemented11 © 2010 IBM Corporation
  12. 12. IBM System Storage Academic InitiativeRevision Control – Legacy (if done at all ;-) Revision Control Server!  Centralized Server!  Single Repository Developer A Developer C Developer B12 © 2010 IBM Corporation
  13. 13. IBM System Storage Academic InitiativeRevision Control – How todays geeks do it Revision Control Server B (optional) Revision Control Server A (optional)!  Distributed!  Online/Offline!  Local repositories!  Optional centralized repositories!  Branch & Merge as a first-class operation Developer A Developer B Developer C Developer D13 © 2010 IBM Corporation
  14. 14. IBM System Storage Academic InitiativeThe Big Picture – Integrated Software Process Tooling!  (Collaborative) “Application Lifecycle Management” Work Items –  Integration of tools related to software development process Planning –  Includes Software Configuration Management (SCM) that includes Revision Control Software –  Common interfaces SCM –  Common datastore Reporting Build Management14 © 2010 IBM Corporation
  15. 15. IBM System Storage Academic InitiativeIBM Presentation Template Full VersionAgenda!  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 intelligent15 © 2010 IBM Corporation
  16. 16. IBM System Storage Academic InitiativeProcesses – Why? Red Hats Jboss Software Draw Patent Suit Free Software Foundation files suit (Mar 2009) against Cisco for GPL violations (Dec 2008) Red Hat Sued Over Hibernate 3 ORM Patent Infringement Claim SCO vs IBM (2003-...) (Jun 2006->Jun 2008) Microsoft Files Suit Against TomTom FSF take on Apple App Store (Feb 2009) over GPL2 code (May 2010)16 © 2010 IBM Corporation
  17. 17. IBM System Storage Academic InitiativeProcesses – 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 Dont want to get fired or impeached THEREFORE –  Need to provide input for the legal department17 © 2010 IBM Corporation
  18. 18. IBM System Storage Academic InitiativeProcesses – 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 involved18 © 2010 IBM Corporation
  19. 19. IBM System Storage Academic InitiativeProcesses – 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 technology19 © 2010 IBM Corporation
  20. 20. IBM System Storage Academic InitiativeProcesses - License!  What can happen when you ship software without a license?20 © 2010 IBM Corporation
  21. 21. IBM System Storage Academic InitiativeProcesses - 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 licenses21 © 2010 IBM Corporation
  22. 22. IBM System Storage Academic InitiativeOther 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 features22 © 2010 IBM Corporation
  23. 23. IBM System Storage Academic InitiativeIBM Presentation Template Full VersionAgenda!  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 intelligent23 © 2010 IBM Corporation
  24. 24. IBM System Storage Academic InitiativeSo many support levels, what are they good for? Customer Complaint!  Large company scenario Handling Call Entry Center How-To On-site Support –  many customers (CritSit) Installation, Parts repair –  many products / product variants P –  many employees R –  varying skills at O Level 1 customer and J Front-End support company E C T O Level 2 Product Field Engineer F (PFE) F I C E Level 3 Development24 © 2010 IBM Corporation
  25. 25. IBM System Storage Academic Initiative Client Self-Assist - We help you to help yourself Traditional With CSA Customer CustomerComplaint eSupport Call Entry Center How -To On-site SupportHandling Installation,(CritSit) Parts repair P Complaint On-site Support R Handling Call Entry Center How -To O Level 1 Installation, J (CritSit) Parts repair Front -End E C P T R O Level 1 O Level 2 Product Field Engineer J Front -End F (PFE) E F C I T C E Level 3 O Development Level 2 Product Field Engineer F (PFE) F I C E Level 3 Development 25 © 2010 IBM Corporation
  26. 26. IBM System Storage Academic InitiativeClient Self Assist – Details (1)!  Support portal!  Knowledge base –  Search –  Tagging –  feedback!  (Web 2.0) Collaboration tools –  Self-help forums –  Communities –  Blogs / Tweets –  Video tutorials26 © 2010 IBM Corporation
  27. 27. IBM System Storage Academic InitiativeClient 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 symptoms27 © 2010 IBM Corporation
  28. 28. IBM System Storage Academic InitiativeYouve got a problem, but weve solved it Customer System Supporting Company Fixes Update Server A Problem Common Problems Server Common B client IT Inventory Storage SW Structure A Storage B Status Connectivity Software Inventory Health!  Autonomic (if customer wants that) –  Call Home –  Lights-out Assist On-Site –  Continuous monitoring28 –  Automatic updates © 2010 IBM Corporation
  29. 29. IBM System Storage Academic Initiative Hindi Hebrew Simplified Gracias Chinese Russian Thank Spanish English Obrigado You Arabic Brazilian Portuguese Danke Grazie German Merci Italian French Korean Japanese Tamil Thai Traditional Chinese29 © 2010 IBM Corporation

×