Developing Software Products in a Distributed Environment

745 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
745
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Brief intro about maintenance
  • Show how from two diffrent of view ( outsourcer and outsourced ) that they have the same stage for transtion, empyhsize on training and wait till the prodcut get stable, also shadowing
  • Explain this photo , 1 photo worth a thousand words , mention some problems at each level regarding DSPD
  • Developing Software Products in a Distributed Environment

    1. 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. 2. Distributed Development <ul><li>Overview </li></ul><ul><li>Distributed development (what’s different, really?) </li></ul><ul><li>Requirements Engineering </li></ul><ul><li>Development </li></ul><ul><li>Testing </li></ul><ul><li>Maintenance </li></ul><ul><li>Quality </li></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    3. 3. Is there a difference? <ul><li>30% more problems caused by distributed development </li></ul><ul><li>Feels the same, but is not </li></ul><ul><li>Distance creates problems </li></ul><ul><ul><li>Communication </li></ul></ul><ul><ul><li>Source code location </li></ul></ul><ul><ul><li>Language (Kasboek sounds strange in Romanian) </li></ul></ul><ul><li>Cost saving is only part of the deal (if you’re lucky) </li></ul><ul><li>Resistance on the home location </li></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    4. 4. Typical Scenario Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    5. 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. 6. Requirements management vs. Requirements engineering <ul><li>Requirements management </li></ul><ul><li>Manage and establish understanding between stakeholders; </li></ul><ul><li>Establish suitable baselines for development and management. </li></ul><ul><li>Requirements engineering </li></ul><ul><li>Constructive process for the requirements set up; </li></ul><ul><li>Specify and validate the requirements seen from the problem domain perspective. </li></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    7. 7. In practice <ul><li>Task of product manager is split </li></ul><ul><li>Project manager as intermediar </li></ul><ul><li>Clear differences in tasks </li></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    8. 8. Questions <ul><li>How do your programmers communicate? </li></ul><ul><li>What documentation is used between the sides? </li></ul><ul><li>Are there standardized methods to structure this communication? </li></ul><ul><li>What (agile?) software development method are you using? </li></ul><ul><li>And what about version/release management? Who reviews the code to enforce quality?) </li></ul><ul><li>Where is your code stored? </li></ul><ul><li>What kind of coding standards are used? </li></ul><ul><li>And which tools do you have in place to support the process? </li></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    9. 9. Development method Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    10. 10. Software Testing in Practice <ul><li>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) . </li></ul><ul><li>Software testing is different from SQA. </li></ul><ul><li>SQA  involves the entire software development process. It is oriented to 'prevention'. </li></ul><ul><li>Software testing  encompasses operation of a system or application under controlled conditions and evaluating the outputs. It is oriented towards 'detection‘. </li></ul><ul><li>- “ Outsourcing software testing always becomes a challenge for software companies” </li></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    11. 11. Testing Management of nine researched Dutch companies in the Central – East European countries Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    12. 12. Main considerations in Testing Management <ul><li>The complexity of software being tested </li></ul><ul><ul><li>influences the type of testing techniques are applied by the company </li></ul></ul><ul><li>Division of tester team , including the involvement of client as part of team member </li></ul><ul><li>How the feedback being reported between testers and developers and clients </li></ul><ul><li>The chosen software testing tools and technologies </li></ul><ul><li>The applied development methodology (e.g. Agile, Waterfall, Scrum) </li></ul><ul><li>The risks that may affected due to the errors or failure of the software being tested </li></ul><ul><li>-end- </li></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    13. 13. Definition of Software Maintenance <ul><li>Software maintenance comprises all the work done on a software product after its release to the customer. This includes </li></ul><ul><ul><li>the correction of errors and bugs, </li></ul></ul><ul><ul><li>enhancement, </li></ul></ul><ul><ul><li>deletion and addition of features and capabilities, </li></ul></ul><ul><ul><li>adaptation to new technologies, </li></ul></ul><ul><ul><li>the improvement of performance and other quality attributes. </li></ul></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    14. 14. Maintenance Transition management Ousourcing company perspective Ousourced company perspective Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    15. 15. Interaction between lines of support in DSPD Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    16. 16. Definition of Software Quality <ul><li>Why look at quality in a distributed environment? </li></ul><ul><li>Jan van Moll: 34% more problems introduced by distributed development </li></ul><ul><ul><li>Assumptions are made </li></ul></ul><ul><ul><ul><li>The other team will have tested that </li></ul></ul></ul><ul><ul><ul><li>Of course they mean X (when they actually mean Y) </li></ul></ul></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    17. 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. 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. 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. 20. External Quality Standards & Models <ul><li>ISO 9000 series </li></ul><ul><ul><li>A series of the International Standards for Quality Management Systems </li></ul></ul><ul><ul><li>They specify requirements and recommendations for the design and assessment of management systems </li></ul></ul><ul><ul><li>They provide the mean for consolidating and communicating concepts in the field of quality management </li></ul></ul><ul><li>CMMI </li></ul><ul><ul><li>US Dept. of Defense Software Engineering Institute (SEI) </li></ul></ul><ul><ul><li>A model to be used by organizations for integrating systems and software development activities </li></ul></ul><ul><ul><li>It supports the coordination of multidiscipline activities that are required to build a successful project </li></ul></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions
    21. 21. Conclusions and lessons learned <ul><li>Building trust between the outsourcer and outsourced company. </li></ul><ul><li>communication system is crucial issue (single point of contact through coordinators and project managers, communication tools, liaison engineers) </li></ul><ul><li>Integration of the systems between the outsourcer and outsourced company. </li></ul><ul><li>Sufficient training, efficient knowledge transfer (also documentation). </li></ul><ul><li>Technical problems need to be grabbed by the horns (e.g. difficulty to reproduce and simulate the problem in the near-shore location). </li></ul>Requirements Engineering Distributed Development Development Testing Maintenance Quality Conclusions

    ×