Principles, disciplines and techniques of Agile Software Development
Analysts, programmers, team leaders, testers, architects and project managers who already have
experience with Agile methodologies. The understanding of application software development
process and programming in general, the ability to create, test and run programs
(preferably in Java, C #, Ruby or Groovy) is required also.
The Agile Software Development is a set of disciplines, principles and practices that
improve the ability to quickly and effectively build complex, actually
working and reusable software.
In any case, the Agile methodologies per se are not a panacea.
This course is therefore aimed at programmers, test leaders, team leaders, architects
and managers who need to learn new practices in a pragmatic agility.
At the end of the course
Software development process
- Software development processes and current challenges
- Iterative and incremental process
- Agile Manifesto and Principles
- Strengths and weaknesses of Agile methodologies
- Scrum, XP, DSDM, Lean Development, Crystal, FDD and the Unified Process
- Comparison between the various Agile methodologies
- Agile Methodology workshop
- Planning software projects
- Using User Stories
- Release Planning and iterations
- Agile Planning workshop
Test Driven Development and refactoring
- Risk minimization
- How to validate a design
- Up Front Design with respect to Emerging Design
- Agile Design workshop
- Tools and techniques for TDD
- Practical unit tests, Mock Objects
- Using xUnit and TestNG frameworks
- TDD Patterns
- Continuous refactoring code
- Test Driven Development workshop
Principi di Object Oriented
- Integrating frequently
- Automate the building and testing process
- Beyond unit, integration and functional testing
- Authomatic acceptance testing: Fit and FitNesse
- Continuous Integration workshop
Open Source tools
- Coupling and Cohesion, Law of Demeter
- Characteristics of bad design:
- viscosity, opacity, immobility, weakness
- unnecessary complexity
- Characteristics of a good design:
- Single Responsibility Principle (SRP)
- YAGNI, DRY ...
- Open Closed Principle
- Dependency Inversion Principle
- Quality metrics
- Object Oriented workshop
Agile Development Practices
- Definition of agile tools
- Tool to measure progress, quality of design and code
- Modeling and process tools
- Open Source Tools design workshop
- Beyond the basics of the agile development process
- Develop what the customers really want
- Feedbacks, debugging and agile collaboration
- Agile Practices workshop
Participants will have acquired the following skills:
- How to apply principles of profits from different agile methodologies.
- To have a pragmatic approach more than being dogmatic as regards agile principles.
- To use different metrics and testing tools which can optimize the agile software development.
- Various techniques for estimating, planning and execution of agile projects.
Theoretical and practical, or course elements will alternate theoretical illustration of specific
cases and demonstration of the various principles, frameworks and agile practices.
Delivery will be based on practical-exercises, for which the exercises will be balanced on the
basis of the relevance of the topics covered.
5 days full time (9.30 - 13.00) (14.00 - 17.00)