 |
Customer Service or Enrol: 0800 282 353 or +44 1372 364610 |
 |
|
 |
| |
You Will Learn How To
- Deliver adaptable software iterations based on Agile methodologies such as XP and Scrum
- Minimise bugs and maximise 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 scrutinised 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 prioritising 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 Content
- Adopting the best practices of the Agile Manifesto
- Comparing traditional and Agile software methodologies
- Identifying Agile beliefs and practices
- Recognising the structure of an Agile team
- Programmers
- Managers
- Customers
- Differentiating XP and Scrum
- Eliciting application requirements
- Capturing user stories
- Recognising good user stories
- Distinguishing between release and iteration
- Prioritising and selecting user stories with the customer
- Defining an estimation unit
- Projecting team velocity for releases and iterations
- Prioritising 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 behaviour
- Preferring composition over inheritance
- Creational, Structural and Behavioural patterns
- Guaranteeing the correctness of an adaptable design
- Template Method, Adapter, Strategy, Singleton and Factory Method
- Overriding behaviour 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.
|
|
|
|
|
| |
| Customer Service or Enrol: 0800 282 353 or +44 1372 364610 |
 |
|