Скачать презентацию Agile Method for Software Development e XPERT Agile Скачать презентацию Agile Method for Software Development e XPERT Agile

5047099bef8812d86d1b545387a104b9.ppt

  • Количество слайдов: 63

Agile Method for Software Development e. XPERT –Agile Method for Software Development Agile Method for Software Development e. XPERT –Agile Method for Software Development

Key points Objectives for the method Method description Lessons learnt Empirical results e. XPERT Key points Objectives for the method Method description Lessons learnt Empirical results e. XPERT –Agile Method for Software Development

Project Objectives • To define a light approach for e-business and e-commerce software development Project Objectives • To define a light approach for e-business and e-commerce software development • To try it out to 7 pilot projects • To collect and disseminate lessons learnt • To develop and disseminate a Best Practice Toolkit = {e. XPERT method, Case studies, Experiments analysis} e. XPERT –Agile Method for Software Development

Business Objectives • To increase the productivity of small teams by 20% • To Business Objectives • To increase the productivity of small teams by 20% • To reduce defect rates by 30% • To decrease project costs by 15% • To eliminate schedule delays and over costs e. XPERT –Agile Method for Software Development

Target Projects: e-Projects • Must be delivered rapidly have critical time constraints • Requirements Target Projects: e-Projects • Must be delivered rapidly have critical time constraints • Requirements evolve constantly due to e. g. turbulence in the market, changing technologies, etc. • Mission critical if unsuccessful, the business loses new opportunities • Have to be managed flexibly and in a result-oriented manner Example: e-commerce and e-business projects e. XPERT –Agile Method for Software Development

e-Project Success Factors • Easy and quick integration of people in a team • e-Project Success Factors • Easy and quick integration of people in a team • Abilities to quickly respond to required changes • Facilities to maintain good software quality • Practices easy to adopt and execute e. XPERT –Agile Method for Software Development

e. XPERT Development Approach • Reports from the field – productivity and software quality e. XPERT Development Approach • Reports from the field – productivity and software quality increase by applying XP principles – even projects that have adopted several or all XP practices meet project management problems, related to estimating and planning => focus on XP and PSP practices e. XPERT –Agile Method for Software Development

e. XPERT Development Approach • Develop “Faster-Better-Cheaper “ e. XPERT –Agile Method for Software e. XPERT Development Approach • Develop “Faster-Better-Cheaper “ e. XPERT –Agile Method for Software Development

e. XPERT Development Approach • Based on processes for easier compatibility with other models e. XPERT Development Approach • Based on processes for easier compatibility with other models like CMM(I) and ISO • Maintain the method – comprehensible, – motivating and – easy to apply, but provide means for – good estimations, – project planning and – management activities. e. XPERT –Agile Method for Software Development

Key points Objectives for the method • Objectives: productivity, defects, schedule, costs • Target Key points Objectives for the method • Objectives: productivity, defects, schedule, costs • Target projects: e-projects • XP+PSP lightweight and manageable Method description Lessons learnt Empirical results e. XPERT –Agile Method for Software Development

XP Practices Planning game: quickly determine the scope of the next release, combining business XP Practices Planning game: quickly determine the scope of the next release, combining business priorities and technical estimates Small releases: put a simple system into production quickly, release new versions on a very short cycle Metaphor: guide all development with a simple, shared story of how the whole system works Simple design: design as simply as possible at any given moment e. XPERT –Agile Method for Software Development

XP Practices Coding standards: rules emphasizing communication throughout the code Testing: continually write unit XP Practices Coding standards: rules emphasizing communication throughout the code Testing: continually write unit tests which must run flawlessly; customers write tests to demonstrate functions are finished Pair programming: all production code written by two programmers at one computer Refactoring: restructure the system without changing behaviour to remove duplication, improve communication, simplify, or add flexibility e. XPERT –Agile Method for Software Development

XP Practices Collective ownership: anyone can change any code anywhere in the system at XP Practices Collective ownership: anyone can change any code anywhere in the system at any time Continuous integration: integrate and build the system many times a day, every time a task is finished 40 -hour week: work no more than 40 hours per week as a rule; never work overtime two weeks in a row On-site customer: real, live user on the team full-time to answer questions e. XPERT –Agile Method for Software Development

Personal Software Process • The PSP is a technique that engineers can apply to Personal Software Process • The PSP is a technique that engineers can apply to most structured personal tasks to improve their – Predictability – Quality – Productivity • It is designed for individuals and can be extended to team development of large-scale software systems. e. XPERT –Agile Method for Software Development

PSP Evolution PSP 3 Cyclic development PSP 2 Code reviews Design reviews PSP 1 PSP Evolution PSP 3 Cyclic development PSP 2 Code reviews Design reviews PSP 1 Size estimating Test report PSP 0 Time recording Defect type standard e. XPERT –Agile Method for Software Development Team Software Process defect management size, resource, and schedule plans establishing a measured performance baseline

PSP Practices in e. XPERT • PSP 0: The baseline process – The process PSP Practices in e. XPERT • PSP 0: The baseline process – The process currently used to write software, but enhanced to provide measurements • PSP 0. 1: Enhances PSP 0 by adding coding standard, size measurement and process improvement proposal • PSP 1: The personal planning process – The initial increment adds test report and size and resource estimation e. XPERT –Agile Method for Software Development

PSP Practices in e. XPERT • PSP 0: The baseline process – Time recording PSP Practices in e. XPERT • PSP 0: The baseline process – Time recording – Defect recording • PSP 0. 1 – Coding standard – Software size measurement – Process improvement proposal • PSP 1: The personal planning process – Size estimating with PROBE e. XPERT –Agile Method for Software Development

PROBE method used in e. XPERT Objective: estimate the time necessary to implement each PROBE method used in e. XPERT Objective: estimate the time necessary to implement each Customer Requirement (CR) Steps: 1. Gather historical data (CR type, complexity, implementation time) 2. For CR type calculate Average implementation time and Standard deviation 3. Calculate Range for implementing CR of particular type and complexity 4. Estimate new CR – exp(Range) for the respective type and complexity e. XPERT –Agile Method for Software Development

Estimation with PROBE: example Gather historical data Average = Xavg = (1/n) Xi Stand. Estimation with PROBE: example Gather historical data Average = Xavg = (1/n) Xi Stand. Deviation = [ (1/n) (Xi - Xavg)2 ] 1/2 Calculate Range VS= Average – 2*St. Dev S = Average - St. Dev M = Average D = Average + St. Dev VD = Average + 2*St. Dev ) Take antilog e. XPERT –Agile Method for Software Development

Software Process B Procedures and methods A defining the relationship of tasks C D Software Process B Procedures and methods A defining the relationship of tasks C D PROCESS People with skills, training, and motivation Tools and equipment Source: CMM e. XPERT –Agile Method for Software Development

e. XPERT Architecture Customer requirements Customer Project Requirements Estimated CR Management Iteratio n plan e. XPERT Architecture Customer requirements Customer Project Requirements Estimated CR Management Iteratio n plan Project planning Estimations Communication Testing scenarios Design Test-beforecode Coding standard. Test software product e. XPERT –Agile Method for Software Development

e. XPERT Process Components • Overview (objectives) • Inputs • Activities – Tasks • e. XPERT Process Components • Overview (objectives) • Inputs • Activities – Tasks • Process outputs • Completion criteria • Measurements e. XPERT –Agile Method for Software Development Process Activities Tasks

Examples Format Example e. XPERT –Agile Method for Software Development Examples Format Example e. XPERT –Agile Method for Software Development

Roles • Customer – chooses what will deliver business values, prioritises requirements and defines Roles • Customer – chooses what will deliver business values, prioritises requirements and defines the acceptance tests. • Project manager – leads everyday work, resolves schedule conflicts, communicates with stakeholders, collects data related to the project performance and analyses them • Developer – estimates requirements complexity and effort to implement them, builds the system, and keeps it integrated e. XPERT –Agile Method for Software Development

Customer Requirements Management (CRM) Overview: This process includes all activities related to eliciting, analysing Customer Requirements Management (CRM) Overview: This process includes all activities related to eliciting, analysing and controlling the customer requirements for a software product. It builds on the XP practices related to handling user stories. Input: Customer needs and expectation Output: Prioritised CR with complexity and time estimations e. XPERT –Agile Method for Software Development

CRM Completion criteria: – Customer requirements are granulated to such an extent that each CRM Completion criteria: – Customer requirements are granulated to such an extent that each of them is estimated to be developed in less than 2 weeks – The whole team understands well the customer requirements – The CR described on the CRC cards are testable Measures: Effort spent on CRM e. XPERT –Agile Method for Software Development

CRM Activities A 1. Elicit CR (schedule, document, explain to the team) A 2. CRM Activities A 1. Elicit CR (schedule, document, explain to the team) A 2. Analyse CR (categorise, investigate implementation constraints, assess risks, estimate complexity) A 3. Estimate CR (estimate time with PROBE, prioritise) A 4. Measure the process e. XPERT –Agile Method for Software Development

Hints for CRM • Document only needed information. • Use tools facilitating CRM (CRC Hints for CRM • Document only needed information. • Use tools facilitating CRM (CRC cards could be lost) • Use tools facilitating process measurement • Good communication with the customer is key for the success e. XPERT –Agile Method for Software Development

Tools supporting CRM • XPlanner: www. xplanner. sourceforge. net • Spreadsheet: facilitates PROBE calculations Tools supporting CRM • XPlanner: www. xplanner. sourceforge. net • Spreadsheet: facilitates PROBE calculations • Project management tool e. XPERT –Agile Method for Software Development

Project Management Overview: The project management process encompasses activities related to planning, tracking and Project Management Overview: The project management process encompasses activities related to planning, tracking and controlling the software development. Project management includes activities that ensure the delivery of a high-quality system on time and within budget. Input: Documented Customer requirements Output: Iteration (and release) plans e. XPERT –Agile Method for Software Development

Project Management Completion criteria: – Project maintained on track, i. e. iterations executed as Project Management Completion criteria: – Project maintained on track, i. e. iterations executed as planned Measures: – Effort spent on PM – Project costs – Project velocity – Resource usage e. XPERT –Agile Method for Software Development

Project Management Activities A 1. Define the Project (people and environment) A 2. Create Project Management Activities A 1. Define the Project (people and environment) A 2. Create Iteration and Release plans A 3. Monitor and control the project (daily meeting, track progress and costs, update plan, report to management) A 4. Conclude project A 5. Measure the process (resources, effort, scope, velocity) e. XPERT –Agile Method for Software Development

Hints for PM • Focus on the requirements for the current iteration • Use Hints for PM • Focus on the requirements for the current iteration • Use tools facilitating planning & tracking activities and process measurement • Good communication with the customer is key for the success • Avoid multi-tasking • Avoid handsoff e. XPERT –Agile Method for Software Development

Tools supporting PM • XPlanner: www. xplanner. sourceforge. net • Project management tool • Tools supporting PM • XPlanner: www. xplanner. sourceforge. net • Project management tool • Spreadsheet: facilitates resource planning and tracking e. XPERT –Agile Method for Software Development

Design Overview: During the design process the customer requirements are decomposed into product components. Design Overview: During the design process the customer requirements are decomposed into product components. The design process is highly interrelated with the Code and Test processes. Input: Documented CR Output: Coding standard CR with design elements Design document e. XPERT –Agile Method for Software Development

Design Completion criteria: – simple design well understood by the whole team Measures: – Design Completion criteria: – simple design well understood by the whole team Measures: – Effort spent on overall design e. XPERT –Agile Method for Software Development

Design Activities A 1. Prepare for design (coding standard, etc. ) A 2. Design Design Activities A 1. Prepare for design (coding standard, etc. ) A 2. Design A 3. Document design A 4. Measure the process e. XPERT –Agile Method for Software Development

Hints for Design • Do simple design • Focus on the requirements for the Hints for Design • Do simple design • Focus on the requirements for the current iteration (avoid extra features) • Consider refactoring in the beginning of a next iteration. • Create useful documents and do not spend time on making them look more beautiful e. XPERT –Agile Method for Software Development

Code Overview: The objective of the Code process is to produce the code of Code Overview: The objective of the Code process is to produce the code of the software product that satisfies the customer requirements. The code is permanently maintained in good condition, i. e. in reusable, testable and working state. The coding process is highly interrelated with the Design and Test processes. Input: Documented CR with design elements Coding standard Output: Software product e. XPERT –Agile Method for Software Development

Code Completion criteria: – Customer requirements and acceptance tests satisfied Measures: – Implementation effort Code Completion criteria: – Customer requirements and acceptance tests satisfied Measures: – Implementation effort – Developer’s productivity – Pair’s productivity e. XPERT –Agile Method for Software Development

Code Activities A 1. Implement product in a test-driven manner. A 2. Refactor code. Code Activities A 1. Implement product in a test-driven manner. A 2. Refactor code. A 3. Integrate often. A 4. Measure the process (implementation effort) e. XPERT –Agile Method for Software Development

Test Driven Development • Brainstorm possible test cases • Implement the test cases using Test Driven Development • Brainstorm possible test cases • Implement the test cases using an incremental and iterative approach (1 at a time and implement it immediately) • Implement code. Do not write more code than the test requires (additions would be unspecified and not test-safe) • Run test cases and improve the code until all test cases pass The cycle finishes when everything that could possibly break is tested. e. XPERT –Agile Method for Software Development

Test Driven Development Problems • Current test fails although it should pass – the Test Driven Development Problems • Current test fails although it should pass – the code just written doesn’t satisfy the functional requirements • Old tests start to fail again – the code just written violates parts of the existing functional specification, thus introducing unwanted side effects e. XPERT –Agile Method for Software Development

Test Driven Development Problems • The test passes although it should fail – the Test Driven Development Problems • The test passes although it should fail – the functionality has been realized without a test – the functionality is already tested by another unit test – the test itself is wrong – the test is in an already tested equivalence class e. XPERT –Agile Method for Software Development

Test Driven Development Problems • Implementing a test requires new tests – the chosen Test Driven Development Problems • Implementing a test requires new tests – the chosen increment is too big – the step takes too long – an intuitive implementation requires new methods and maybe even new objects – try to prevent a bottom-up implementation, since you would be running without feedback for a long time e. XPERT –Agile Method for Software Development

Test Overview: The purpose of the Test process is to validate that software product Test Overview: The purpose of the Test process is to validate that software product produced meets the requirements and satisfy the acceptance criteria defined by the customer. The Testing process is highly interrelated with the Code and Design processes. Input: Documented CR with design elements Coding standard Output: Code without defects e. XPERT –Agile Method for Software Development

Test Completion criteria: – The test cases defined cover all typical, boundary, and specific Test Completion criteria: – The test cases defined cover all typical, boundary, and specific cases described by the customer requirements Measures: – Defects rate – Effort spent on acceptance testing – Defect removal efficiency e. XPERT –Agile Method for Software Development

Test Activities A 1. Prepare for testing. A 2. Describe and implement acceptance testing. Test Activities A 1. Prepare for testing. A 2. Describe and implement acceptance testing. A 3. Perform unit testing in parallel with coding. A 4. Perform regression testing when integrating. A 5. Perform acceptance testing after integration, especially before delivery. A 6. Measure the process (effort, defects) e. XPERT –Agile Method for Software Development

Hints for Code&Test • Focus on the requirements for the current iteration • Use Hints for Code&Test • Focus on the requirements for the current iteration • Use tools facilitating refactoring and testing • Integrate often • Refactor always when necessary, do not postpone it. • Good communication with the customer is key for the success e. XPERT –Agile Method for Software Development

Tools supporting Code&Test • Test case environment: – JUnit/ hhtp. Unit/ JWeb. Unit/ Cactus: Tools supporting Code&Test • Test case environment: – JUnit/ hhtp. Unit/ JWeb. Unit/ Cactus: www. junit. org – Nunit: www. nunit. org • Test generator: JUnit. Doclet www. junitdoclet. org • Refactoring: – C#Refactory/ j. Refactory- Pretty Printer – Eclipse: www. eclipse. org • Bug tracking: – Mantis: mantisbt. sourceforge. net – Bugzila: www. bugzilla. org e. XPERT –Agile Method for Software Development

Key points Objectives for the method • Objectives: productivity, defects, schedule, costs • Target Key points Objectives for the method • Objectives: productivity, defects, schedule, costs • Target projects: e-projects • XP+PSP lightweight and manageable Method description Lessons learnt • Based on XP and PSP principles • e. XPERT architecture • e. XPERT processes e. XPERT –Agile Method for Software Development Empirical results

Lessons Learnt • Pair programming – Is not optimal when the tasks are too Lessons Learnt • Pair programming – Is not optimal when the tasks are too small – It is not util when the experience level of the developers is too different – Recommended for quick integration of new people (the integration time decreases with about 30%). – Increases the quality of the code – Problematic when a buddy works on more than one projects. – Increases the productivity of the team. – Does not descrease the costs automatically. e. XPERT –Agile Method for Software Development

Lessons Learnt • Test before code – Maintains the system in working state. – Lessons Learnt • Test before code – Maintains the system in working state. – Increase the quality of the code and the product. – Takes time to get used to it – Apart from an common Unit Testing Framework other tools are necessary (test case generator, code formating) • Refactoring – It is difficult to change the manner of thinking of the developers. – Postponing it may result in complete redesign. – Has to be applied to the unit tests too. e. XPERT –Agile Method for Software Development

Lessons Learnt • On-site client – Well accepted by the development team, but it Lessons Learnt • On-site client – Well accepted by the development team, but it is preferable that the client has technical background. – How to prepare the client for his new role? – The client motivation is not enough. • Collective code ownership – Increases the code quality – Very well accepted by the developers. – It is an implicit code review e. XPERT –Agile Method for Software Development

Lessons Learnt • PSP time and effort estimations – It is difficult to [get Lessons Learnt • PSP time and effort estimations – It is difficult to [get used to] record all the data – The benefits in short term are little. – Is it better than the experience? • The method – Needs a period of adaptation – It is difficult to adopt all the practices at once. e. XPERT –Agile Method for Software Development

Lessons Learnt • Metrics – Useful for finding potential improvements of the development process. Lessons Learnt • Metrics – Useful for finding potential improvements of the development process. – Increase the precision of the time and effort estimations and reduce the delays. – Increase developers’ discipline. – Collecting data about time and effort facilitate the project management – Collecting data has to be automated – The PSP strictness contradicts XP e. XPERT –Agile Method for Software Development

Key points Objectives for the method • Objectives: productivity, defects, schedule, costs • Target Key points Objectives for the method • Objectives: productivity, defects, schedule, costs • Target projects: e-projects • XP+PSP lightweight and manageable Method description Lessons learnt • Based on XP and PSP principles • e. XPERT architecture • e. XPERT processes e. XPERT –Agile Method for Software Development Empirical results

Empirical results • If the schedule deviation increases, the cost deviation increases increses too. Empirical results • If the schedule deviation increases, the cost deviation increases increses too. e. XPERT –Agile Method for Software Development

Empirical results • In the majority of the experiments the defect rate increased during Empirical results • In the majority of the experiments the defect rate increased during the first 1 or 2 iterations, and decreased significantly afterwards. e. XPERT –Agile Method for Software Development

Usage of practices Review 1 e. XPERT –Agile Method for Software Development Usage of practices Review 1 e. XPERT –Agile Method for Software Development

Usage of practices Review 2 e. XPERT –Agile Method for Software Development Usage of practices Review 2 e. XPERT –Agile Method for Software Development

Questions? e. XPERT –Agile Method for Software Development Questions? e. XPERT –Agile Method for Software Development

Teodora Bozheva Parque Tecnológico Edif. 204 E-48170 ZAMUDIO (Bizkaia) SPAIN Tel: +34 -94 -420 Teodora Bozheva Parque Tecnológico Edif. 204 E-48170 ZAMUDIO (Bizkaia) SPAIN Tel: +34 -94 -420 -9519 Fax: +34 -94 -420 -9420 e-mail: Teodora. [email protected] es e. XPERT –Agile Method for Software Development