Chapter3 Agile Development Style of Software Development which

  • Slides: 31
Download presentation
Chapter-3 Agile Development: “ Style of Software Development, which focus on customer satisfaction” “

Chapter-3 Agile Development: “ Style of Software Development, which focus on customer satisfaction” “ where the software developers works in a team” “where the budget is very and time scale is also less” Agile developers continuously communicate with the customers. This continuous communication will welcome the new changes in customer’s requirements. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 1

Agile Process: Agile Software Process is characterized in such a manner that it shows

Agile Process: Agile Software Process is characterized in such a manner that it shows the key assumptions of s/w projects. Key Assumptions: * Difficult to predict which requirements will there till last and which will change. * Difficult to say about that when the priority of users will change. * Analysis, Design, Coding & Testing are difficult to predict in advance. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 2

How to create a process which has unpredictability Developers have to be ready for

How to create a process which has unpredictability Developers have to be ready for making continuous changes in project. Agile Software Process must adapt incrementally so, to create Agile Development, continuous customer feedback is necessary, So incremental Development strategy is introduce. Software increments will be given to customer in short period. So that if changes are there, the remaining time will be utilize in doing the changes. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 3

Agility Principles 1. Highest priority is given to early and continuous delivery of software,

Agility Principles 1. Highest priority is given to early and continuous delivery of software, to satisfy the customer. 2. Agile process always welcome changes in requirements even at the end of development. 3. Deliver the working software continuously from weekly to monthly. 4. Business people and developers will works together. 5. Build the software in Motivational Environment. 6. Face – to – face conversation between Business People and developers for effective and efficient way to convey the informations. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 4

7. Working software is primary measure of progress. 8. Provide sustainable development of the

7. Working software is primary measure of progress. 8. Provide sustainable development of the software. Every one involved in to the project should be able to maintain pace. 9. Continuous attention to technical excellence and design increase the working of project. 10. Simple – The amount of work not done is essential. 11. Architecture, requirements and designs develops from team. 12. After completion of every stage, the team of software developers reflects how to become more effective. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 5

Politics of Agile Development Software development process is Agile. Mr. Pritesh Upadhyaya, MCA Programme,

Politics of Agile Development Software development process is Agile. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 6

Human Factors Agile development focus on talent and skills of individuals. “Process molds (fix)

Human Factors Agile development focus on talent and skills of individuals. “Process molds (fix) to the needs of the people and team” *Characteristics of the members of Agile Team OR Key traits must exists among the people in agile team 1. Competence - talent - specific software related skills - overall knowledge or process 2. Common Focus - team members have different tasks and skills for project. but all have the single goal - continuous improvement is there by software developers. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 7

3. Collaboration - SE consists of Analysis, Designing, Assessing, communication etc. , for this

3. Collaboration - SE consists of Analysis, Designing, Assessing, communication etc. , for this all the team members have to work as a team. 4. Decision Making Ability - Every software team is allowed to have freedom. - It means, the team is given the authority for both technical and project issue related decisions. 5. Fuzzy problem solving ability - Agile Team continuously solve the problems they face. - Problem which solves today may not come tomorrow. 6. Mutual trust and respect - Mutual trust and respect is always there between team members. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 8

7. Self Organization: - It has three things…. 1. team organize themselves to complete

7. Self Organization: - It has three things…. 1. team organize themselves to complete the task 2. team organize the process to complete work. 3. team organize the work schedule. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 9

Extreme Programming (XP) Extreme Programming is one of several popular Agile Processes. It has

Extreme Programming (XP) Extreme Programming is one of several popular Agile Processes. It has been already proven very successful. XP empower the developer to make changes in software process as per the requirements. Extreme Programming emphasize on team work XP is used to improve the quality of the software as per the requirements of the customer. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 10

XP Values XP provides FIVE values: 1. Communication 2. Simplicity 3. Feedback 4. Courage

XP Values XP provides FIVE values: 1. Communication 2. Simplicity 3. Feedback 4. Courage 5. Respect. • Communication: Communication between Software Engineer and Customer contains communicating important concepts, continuous feedback etc. • Simplicity: Design of the Software is very simple, and is made for only immediate needs of the customer. • Feedback: Derived from three different sources…. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 11

- from the implemented software - from the customer - from other software developer

- from the implemented software - from the customer - from other software developer team members. Feedback of out put after every testing, Feedback for functions which are implemented in to the project, Feedback of use case. • Courage: Discipline towards successful completion of the project is known as courage. The Agile Software Team have the courage to make design for today (and don’t think for tomorrow). • Respect among members of Agile Team is very important. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 12

The XP Process 1. Planning 2. Design 3. Coding 4. Testing Planning Design Software

The XP Process 1. Planning 2. Design 3. Coding 4. Testing Planning Design Software Release Testing Coding Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 13

Planning: * Listening – Requirement gathering activity, this listening provides required outputs, features and

Planning: * Listening – Requirement gathering activity, this listening provides required outputs, features and functionalities of software. This listening also known as “user stories”, through which customer provides priority to the story. After go through with this story, the agile team will decide the cost. If this story is more than three weeks, the customer is asked to split this story in pieces. Stories can be written at any time. Legal Agreement is done betw customer and agile team members to finished this story with in three ways…. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 14

1. 2. 3. All the stories will be implemented immediately, Priority is given to

1. 2. 3. All the stories will be implemented immediately, Priority is given to the stories which will move up in schedule Story having highest risk also move up in the schedule. After completion of the story, the software is release. So as many number of stories are implemented are known as “project velocity” Project velocity is used to 1. 2. Helps to decide estimated delivery date and schedule If over commitment is there, then the end date of project is changed. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 15

Design: - Simple design is always preferred. - If any serious problem create at

Design: - Simple design is always preferred. - If any serious problem create at design level, the XP process recommend the immediate creation of prototype of that portion of the design, known as SPIKE SOLUTION. - It is used to lower the risk for true implementation. - XP focus to use the CRC – Class Responsibility Collaboration cards. - CRC helps to identify and organize the current software increments. - Design happen before and after the coding. Design is also occur continuously as the system is constructed. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 16

Coding: - Coding comes in to the picture after completion of development of stories

Coding: - Coding comes in to the picture after completion of development of stories and preliminary design portion. - After completion of this story development and design portion, developers will go for unit testing. - Now the developer is very much able to write a code. (It shows KIS principles) - After completion of coding, there is unit testing and the feedback from the customer will be taken. - Key concept during this coding technique is “Pair Programming” - XP recommends that 2 people can works together at same computer to complete the story. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 17

This simultaneous work at 1 workstation will gives us real time problem solving and

This simultaneous work at 1 workstation will gives us real time problem solving and quality assurance. After completion of their individual work, their work will be integrated with the works of other. For this integration, there will be a - single team who integrate the work of different software developers, - pair programmers can do this integration, The result of this pair programming is “SMOKE TESTING”. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 18

Testing Unit test is done before the coding during XP process. Regression Testing strategy

Testing Unit test is done before the coding during XP process. Regression Testing strategy is used whenever the code is modified. Integration and Validation testing is done on daily basis. Acceptance test is known as customer test. (Features & Functionality) Testing used to decrease the bugs and errors. “ To fix small problems early will take less time than fixing it just before the deadline”. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 19

Industrial XP – (IXP) Features added to XP to create IXP are …. 1.

Industrial XP – (IXP) Features added to XP to create IXP are …. 1. Readiness Assessment * Appropriate environment created for IXP * team is popular by having efficient stockholders. * organizations supports continuous improvement. * organization culture supports new values of agile team. 2. Project Community * these people of IXP are well trained and skilled. * they have proper temperament to contribute. * the roles of IXP community members are well defined. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 20

3. Project Chartering. Overall goals and objectives as well as the context of the

3. Project Chartering. Overall goals and objectives as well as the context of the project is examine. 4. Test Driven Management the progress of the project is test over here. these test will provide mechanism for all the testing. 5. Retrospectives Technical review for all the software increment is there after delivered the software, known as “Retrospective” This Technical Review contains * events, issues and lesson learned across/after software increment. 6. Continuous learning helps to learn methods and techniques. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 21

The XP Debate Steps which creates problem in XP process: Requirements Volatility. Scope of

The XP Debate Steps which creates problem in XP process: Requirements Volatility. Scope of the project may change and the requirements also may change, and earlier work may be modified. So to control this XP process is also useful. Conflicting customer needs. every customer has his/her own needs regarding software. So to handle the needs of customer is very difficult. Requirements are expressed informally. More formal model and specifications are often needed to ensure the inconsistencies and errors which are uncovered. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 22

Lack of formal design: design’s in XP process are very informal designs. Design must

Lack of formal design: design’s in XP process are very informal designs. Design must be focused to ensure that quality and maintainability should be maintain. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 23

Adaptive Software Development (ASD) ASD is a technique to build complex software and systems.

Adaptive Software Development (ASD) ASD is a technique to build complex software and systems. ASD focused on human collaboration and team self organization. Above is the ASD life cycle which includes three phases - Speculation Collaboration Learning Mr. Pritesh Upadhyaya, MCA 24 Programme, Parul Institutes

During speculation: - * project is initiated and adaptive cycle planning is conducted. *

During speculation: - * project is initiated and adaptive cycle planning is conducted. * This cycle includes 1. project initiation information 2. customer’s objectives 3. project constraints & 4. basic requirements * After completion of first cycle, the plan is reviewed, so that plan will better fits the reality in which the ASD team is working. Collaboration: - Collaboration of motivated people will result in to successful completion of the software. Collaboration is very difficult as it includes communication as well as teamwork. Collaboration is a matter of trust between team members. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 25

Development of any software is depends on learning. ASD team focus on three things

Development of any software is depends on learning. ASD team focus on three things so that they can easily focus on development of the software. 1. focus groups 2. technical review 3. project postmortems. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 26

Scrum is an agile software development method created by Jeff Sutherland his development team

Scrum is an agile software development method created by Jeff Sutherland his development team in 1990 s. Recently development on scrum is going on. . Scrum focus on “requirements, analysis, design, evolution & delivery” Work task within process pattern is known as “sprint”. Work done within a sprint is adapted to solve the problems. Scrum focus on the use of software process pattern which is very effective for tight timelines, changing requirements etc. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 27

 Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 28

Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 28

Backlogs: - * list of requirements as priority, * Items can be added at

Backlogs: - * list of requirements as priority, * Items can be added at any time, * product manager will handle this 8 acklogs. Sprints: * includes work units which are needed to achieve requirements mention in the predefined time-box. (30 days) Changes are not included during sprint, so that sprint will provide stable environment. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 29

Scrum Meetings: * 15 minutes short meeting of scrum team. • 3 questions are

Scrum Meetings: * 15 minutes short meeting of scrum team. • 3 questions are asked and everyone gives the answers. • What do you do since last team meeting? • What obstacles you have encountering? • What do you plan to finished by the next team meeting? • Team members known as scrum masters who leads the meeting. This meetings helps to find and solve the problems. Demos: Functionality which are implemented are demonstrated and evaluated by the customer. Demo doesn’t include all the functionalities, but which are covered in time box period only. Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 30

Thank you Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 31

Thank you Mr. Pritesh Upadhyaya, MCA Programme, Parul Institutes 31