350 likes | 361 Views
Explore the principles and practices of Agile software development, such as Extreme Programming (XP), pair programming, continuous integration, and more. Gain insights into the values and methodologies that promote efficient and adaptable software development.
E N D
Agile Software Development(How Flexible Are Your Fingers?) CSEMS Seminar Dr. Jay Fenwick
Consider… • Debugging is not planned for. • Debugging is not enjoyable. • Debugging is worn proudly like a badge! • ????????????????????????????????
What is XP? • eXtreme Programming • “XP is a lightweight methodology for small to medium sized teams developing software in face of vague and changing requirements.” – Kent Beck • XP is a specific (one of many) methodology of a set of methodologies referred to as “agile.”
XP Values • Why values? • Methodologies impose certain ways of doing things. • The reason for doing something should be valued. • Communication • Simplicity • XP makes a bet: “better to do a simple thing today and pay a little more tomorrow to change it if it needs to be, than to do a complicated thing today that may never be used anyway.” (YAGNI) • Feedback • Courage
Pair Programming (unit)Tests first Planning Game Small Releases Metaphor Simple Design Sustainable Pace Collective Ownership Continuous Integration Coding Standards On-Site Customer Refactoring XP Practices The practices support and reinforce each other.
XP Values and Practices • Practices bring accountability to the Values • Values give purpose to the Practices-- Kent Beck (XP/AU 2003) accountability Values Practices purpose
XP Values and Practices(Lowell Lindstrom XPAU03) D E L I V E R Communication Simplicity Courage Feedback
XP Values and Practices (Lowell Lindstrom XPAU03) D E L I V E R Communication Simplicity Whole Team AcceptanceTests PlanningGame Small Releases Courage Feedback
XP Values and Practices(Lowell Lindstrom XPAU03) D E L I V E R Communication Simplicity Whole Team Test DrivenDevelopment AcceptanceTests PlanningGame PairProgramming Refactoring SimpleDesign Small Releases Courage Feedback
XP Values and Practices(Lowell Lindstrom XPAU03) D E L I V E R Communication Simplicity Whole Team Retrospectives CodingStandards CollectiveOwnership Test DrivenDevelopment AcceptanceTests PlanningGame PairProgramming Refactoring Continuous Integration SimpleDesign SustainablePace Metaphor Small Releases Courage Feedback
XP Metaphor • Controlling software development is like driving a car. • We need to make many small adjustments, not a few large adjustments • We need feedback to know if we are a little off
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Wait, can this really work?(Beck 2000) On-site Customer Planning Game Sustainable Pace Metaphor Simple Design Refactoring Short releases Testing Pair Programming Coding Standards Collective Ownership Continuous Integration
Clues of design flaws Speed Visual people Values Communication Simplicity No concrete feedback Will test case pass? Is this simple? Values Feedback Courage Wait, what about those pictures?<good> <bad> • Draw only a few at time; find out quickly if on target • Don’t use out of fear; leverage people skills • Don’t save when they’ve had effect on the code