Agile Development in Java (with Kevlin Henney) Eğitimi

  • Eğitim Tipi: Classroom / Virtual Classroom / Online
  • Süre: 3 Gün
Bu eğitimi kendi kurumunuzda planlayabilirsiniz. Bize Ulaşın!

Agile principles, practices and processes offer a path to sustainable development for individuals, teams and organisations. For many developers who want to focus on their craft, however, it is sometimes difficult to get a view of Agile development that is not either focused on a project management perspective or just on the practice of Test-Driven Development (TDD).

For the Java developer, an overview of the larger Agile process landscape needs to be complemented with the practical side of software craftsmanship. This ranges from understanding how Scrum can be fine tuned with Lean thinking to exploring Extreme Programming practices, such as TDD and pairing.

The Agile Development in Java course is aimed at Java developers who want to learn what Agile means for them. It introduces a number of common agile techniques and puts these into practice in labs and exercises in pairs and groups, before applying these over a series of mini-iterations. The workshop balances taught material with practice, introducing requirement techniques, lightweight modeling techniques, tracking and estimating approaches, design principles, testing practices and refactorings.


About The Trainer

Kevlin Henney is a regular columnist for various industry magazines and a well known and popular speaker on topics such OO Design, Patterns, Agile Development and Software architecture at conferences in Europe and North America.

Kevlin currently works as an independent consultant and trainer based in Bristol. He has developed and delivered training courses, consultancy and software across a number of domains ever since getting involved in professional software development in the late 1980s.

Most of Kevlin’s work focuses on software architecture, patterns, development process and programming languages. His work has appeared in several magazines and online publications, including; The Register, Application Development Advisor, Java Report, C++ Report and CUJ. Along with Frank Buschmann and Doug Schmidt, Kevlin is coauthor of A Pattern Language for Distributed Computing and On Patterns and Pattern Languages. He is also editor of the 97 Things Every Programmer Should Know project.


The course is suitable for Java developers who wish to learn more about the practical side of Agile development, particularly TDD and incremental development.

  • Describe representative agile development processes and common practices
  • Slice up requirements in terms of goals and estimate and plan against them
  • Understand design thinking appropriate for responsive development
  • Learn how to carry out TDD effectively
  • Put concepts and techniques into practice during labs and in a small, iterative workshop

Agile Development

  • Software development and change
  • Agile values and principles
  • Iterative and incremental development
  • Visualisation of progress
  • Kicking off and closing out iterations
  • The role of testing
  • Modeling in an Agile context
  • Plan–Do–Study–Act

Common Agile Approaches

  • Extreme Programming
  • XP1 and XP2
  • Scrum
  • Scrum roles, events and artefacts
  • The Nokia test
  • Lean Software Development
  • Lean principles
  • Kanban for software
  • Limiting work in progress (WIP)

Software Craftsmanship

  • Code quality and development skills
  • Elements of well-crafted code
  • Coding guidelines benefits and pitfalls
  • Code sufficiency vs over design
  • Technical debt and code smells
  • Refactoring
  • Programmer testing

Test-Driven Development

  • Good Unit Tests (GUTs)
  • Plain Ol’ Unit Testing (POUT)
  • Defect- Driven Testing (DDT)
  • Test-Driven Development (TDD)
  • Key TDD practices and the test-first cycle
  • Behavioural testing based on propositions
  • Negative test cases
  • Overview of JUnit

Design Practice

  • Agile architecture and responsive design
  • Pattern thinking
  • Class hierarchy design
  • Acyclic dependencies
  • Interface decoupling
  • Transitive and external dependencies
  • Test doubles
  • Components with single responsibilities

Goal-Structured Requirements

  • Utilising use cases, scenarios and user stories
  • Incremental development
  • Lightweight use cases
  • User story styles and guidelines
  • Prioritisation in terms of value and risk
  • Scenario and task estimation
  • Tracking


Eğitimlerle ilgili bilgi almak ve diğer tüm sorularınız için bize ulaşın!

Yakın tarihte açılacak eğitimler

Sınıf eğitimlerimizi İstanbul, Ankara ve Londra ofislerimizde düzenlemekteyiz. Kurumunuza özel eğitimleri ise, dilediğiniz tarih ve lokasyonda organize edebiliriz.

Classroom / Virtual Classroom
10 Nisan 2024
İstanbul, Ankara, Londra
3 Gün
Classroom / Virtual Classroom
04 Haziran 2024
İstanbul, Ankara, Londra
3 Gün
Classroom / Virtual Classroom
17 Haziran 2024
İstanbul, Ankara, Londra
3 Gün
Classroom / Virtual Classroom
20 Haziran 2024
İstanbul, Ankara, Londra
3 Gün
Classroom / Virtual Classroom
22 Haziran 2024
İstanbul, Ankara, Londra
3 Gün
Classroom / Virtual Classroom
27 Haziran 2024
İstanbul, Ankara, Londra
3 Gün
Classroom / Virtual Classroom
02 Temmuz 2024
İstanbul, Ankara, Londra
3 Gün
Classroom / Virtual Classroom
05 Temmuz 2024
İstanbul, Ankara, Londra
3 Gün
Sitemizi kullanarak çerezlere (cookie) izin vermektesiniz. Detaylı bilgi için Çerez Politika'mızı inceleyebilirsiniz.