Top Banner
Developing Software Products in a Distributed Environment Findings from a study of practices and processes in the Netherlands and Eastern Europe Slinger Jansen Sjaak Brinkkemper And Elia, Christina, Nizar, Rudy, and Willem Utrecht University
22
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 1. Developing Software Products in a Distributed Environment Findings from a study of practices and processes in the Netherlands and Eastern Europe Slinger Jansen Sjaak Brinkkemper And Elia, Christina, Nizar, Rudy, and Willem Utrecht University

2. Distributed Development

  • Overview
  • Distributed development (whats different, really?)
  • Requirements Engineering
  • Development
  • Testing
  • Maintenance
  • Quality

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 3. Is there a difference?

  • 30% more problems caused by distributed development
  • Feels the same, but is not
  • Distance creates problems
    • Communication
    • Source code location
    • Language (Kasboek sounds strange in Romanian)
  • Cost saving is only part of the deal (if youre lucky)
  • Resistance on the home location

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 4. Typical Scenario Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 5. Reference Framework Weerd, I. van de, Brinkkemper, S., Nieuwenhuis, R., Versendaal, J., Bijlsma, L. (2006) Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 6. Requirements management vs. Requirements engineering

  • Requirements management
  • Manage and establish understanding between stakeholders;
  • Establish suitable baselines for development and management.
  • Requirements engineering
  • Constructive process for the requirements set up;
  • Specify and validate the requirements seen from the problem domain perspective.

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 7. In practice

  • Task of product manager is split
  • Project manager as intermediar
  • Clear differences in tasks

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 8. Questions

  • How do your programmers communicate?
  • What documentation is used between the sides?
  • Are there standardized methods to structure this communication?
  • What (agile?) software development method are you using?
  • And what about version/release management? Who reviews the code to enforce quality?)
  • Where is your code stored?
  • What kind of coding standards are used?
  • And which tools do you have in place to support the process?

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 9. Development method Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 10. Software Testing in Practice

  • Working software does not always guarantee that it is free of errors or bugs. Therefore, testing should be done with the assumption that software must contain errors(Myers, 2004) .
  • Software testing is different from SQA.
  • SQA involves the entire software development process. It is oriented to 'prevention'.
  • Software testing encompasses operation of a system or application under controlled conditions and evaluating the outputs. It is oriented towards 'detection.
  • - Outsourcing software testing always becomes a challenge for software companies

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 11. Testing Management of nine researched Dutch companies in the Central East European countries Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 12. Main considerations in Testing Management

  • The complexity of software being tested
    • influences the type of testing techniques are applied by the company
  • Division of tester team , including the involvement of client as part of team member
  • How the feedback being reported between testers and developers and clients
  • The chosen software testing tools and technologies
  • The applied development methodology (e.g. Agile, Waterfall, Scrum)
  • The risks that may affected due to the errors or failure of the softwarebeing tested
  • -end-

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 13. Definition of Software Maintenance

  • Software maintenancecomprises all the work done on a software product after its release to the customer. This includes
    • the correction of errors and bugs,
    • enhancement,
    • deletion and addition of features and capabilities,
    • adaptation to new technologies,
    • the improvement of performance and other quality attributes.

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 14. MaintenanceTransition managementOusourcing company perspective Ousourced company perspective Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 15. Interaction between lines of support in DSPDRequirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 16. Definition of Software Quality

  • Why look at quality in a distributed environment?
  • Jan van Moll: 34% more problems introduced by distributed development
    • Assumptions are made
      • The other team will have tested that
      • Of course they mean X (when they actually mean Y)

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 17. Quality Factors Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions Quality Factors Questions to consider Correctness Does it do what I want? Reliability Does it function accurately all the time? Efficiency Will it run on my hardware as well as it can? Integrity Is it secure? Usability Can I run it? Maintainability Can I fix it? Testability Can I test it? Flexibility Can I change it? Portability Will I be able to use it in another machine? Reusability Will I be able to reuse some of the software? Interoperability Will I be able to interface with another system? 18. SQA and PDLC Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions S QA COMPONENTS S QA ACTIVITIES SOFTWARE DEVELOPMENT LIFE CYCLE (SDLC) PLANNING ANALYSIS DESIGN DEVELOPMENT TESTING RELEASE & SUPPORT (MAINTENANCE) Verification &Validation Prevention Activities x x x Validation Reduction Activities x x Verification Control Activities x x 19. Waterfall vs Agile SQA Techniques Waterfall vs Agile SQA Techniques (Huo et al., 2004) Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 20. External Quality Standards & Models

  • ISO 9000 series
    • A series of the International Standards for Quality Management Systems
    • They specify requirements and recommendations for the design and assessment of management systems
    • They provide the mean for consolidating and communicating concepts in the field of quality management
  • CMMI
    • US Dept. of Defense Software Engineering Institute (SEI)
    • A model to be used by organizations for integrating systems and software development activities
    • It supports the coordination of multidiscipline activities that are required to build a successful project

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions 21. Conclusions and lessons learned

  • Building trust between the outsourcer and outsourced company.
  • communication system is crucial issue (single point of contact through coordinators and project managers, communication tools, liaison engineers)
  • Integration of the systems between the outsourcer and outsourced company.
  • Sufficient training, efficient knowledge transfer (also documentation).
  • Technical problems need to be grabbed by the horns (e.g. difficulty to reproduce and simulate the problem in the near-shore location).

Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions