|
|
1-800-THE-TREE (1-800-843-8733)
|
|
|
 |
|
Agile Programming: Principles and Practices for Software Success
Course: 931
Type: RealityPlus
Duration: 3 Days
You Will Learn How To
- Deliver adaptable software iterations based on Agile methodologies such as XP and Scrum
- Minimize bugs and maximize productivity with Test-Driven Development and unit testing
- Refactor existing code for easier maintenance and improved design
- Achieve quality design by adopting established coding principles
- Simplify complex coding problems with design patterns
- Adopt best practices to successfully manage Agile projects
Course Benefits Agile programming practices reduce development time while increasing collaboration. This ensures a final product that has been scrutinized at every stage to maintain reliability. In this course, you gain a solid foundation in Agile programming principles. Through an immersive case study, you acquire practical knowledge and skills to plan, code and implement an Agile software project using methodologies like XP and Scrum.Who Should Attend This course is valuable for experienced software architects, programmers and technical managers. Familiarity with object-oriented programming concepts, and competency in a modern programming language such as VB, Java or C#, is assumed.Throughout this course, experiential and PC-based activities immerse you in an authentic Agile programming project simulation. You perform critical tasks, including:
- Meeting with customers to generate user stories
- Estimating and prioritizing user stories
- Attending a spike session to learn new technology
- Writing tests and code to bring user stories to life
- Refactoring to remove code smells for elegant design
- Removing hacks for easier maintenance using object-oriented coding principles
- Implementing an adaptable architecture through design patterns
- Delivering software in frequent iterations using XP or Scrum
Course 931 Content
- Adopting the best practices of the Agile Manifesto
- Comparing traditional and Agile software methodologies
- Identifying Agile beliefs and practices
- Recognizing the structure of an Agile team
- Programmers
- Managers
- Customers
- Differentiating XP and Scrum
- Eliciting application requirements
- Capturing user stories
- Recognizing good user stories
- Distinguishing between release and iteration
- Prioritizing and selecting user stories with the customer
- Defining an estimation unit
- Projecting team velocity for releases and iterations
- Prioritizing tasks for a cohesive design
- Write test, write code, refactor
- Allocating time for a spike
- Writing a user acceptance test
- Getting a test to compile
- Running tests
- Distinguishing between user tests and unit tests
- Developing effective test suites
- Achieving "green lights" through continuous testing
- Drafting a unit test that is simple, isolated and fast
- Isolating classes for effective testing
- Creating mock objects for testing
- Conditional logic
- Code duplication
- Code that needs comments
- Renaming fields and methods
- Extracting methods and base classes
- Programming by intention
- Removing conditional logic
- Single Responsibility Principle (SRP)
- Open/Closed Principle (OCP)
- Dependency Inversion Principle (DIP)
- Liskov Substitution Principle (LSP)
- Delegating class responsibilities
- Achieving polymorphic behavior
- Preferring composition over inheritance
- Creational, Structural and Behavioral patterns
- Guaranteeing the correctness of an adaptable design
- Template Method, Adapter, Strategy, Singleton and Factory Method
- Overriding behavior with virtual and abstract functions
- Sharing functionality using static fields and methods
- Delivering the first iteration
- Planning the next iteration
- Adapting Agile to fit your development methodology
|
RealityPlus is a trademark of Learning Tree International.
|
|
|
|
 |
|
|