Michael Hüttermann
Independent consultant, coach, author, tutor on Java/JEE, SCM/ALM, SDLC tooling and agile software development.
Home
Seminars
Independent, best of breed consulting, seminars, project support in the areas Java/JEE, agile software development, SDLC tooling, Application Lifecycle Management (ALM).
| Agile Java-Entwicklung in der Praxis O'Reilly, 2008 |
| Fragile Agile Hanser, 2010 |
| Agile ALM Manning, 2011 |
![]() |
Email: | Here |
![]() |
Mobile: | +49 173 5373 629 |
![]() |
Twitter: | huettermann |
![]() |
LinkedIn: | My profile |
![]() |
Xing: | My profile |
![]() |
Skype: | michael.huettermann |
Currently I offer the following seminars, both in English and in German:
All seminars can be aligned with your individual requirements in content and duration. Please contact me for further information.
Seminar 1: In cooperation with SIGS DATACOM, I'm offering seminars about Agile ALM. Please check here for current slots.
Seminar 2: In cooperation with SIGS DATACOM, I'm offering seminars on Continuous Delivery. Please check here for current slots.
Seminar 3: Continuous delivery, with Jenkins/Hudson, Sonar, Maven, and more (3 days)
Hands-on lab for developers and build/release engineers
Day 1
Introduction continuous delivery
Basics of an sophisticated build system (congruent builds)
Continuous integration build strategies and best practices
Setting up and using Maven 3
Describing your project and dependencies, with Maven
Customizing the build process, with Maven
Using a component repository (Artifactory)
Web development with Maven, Cargo and Jetty
Automated release strategies (SNAPSHOT and RELEASE artifacts), different approaches
Automated testing: unit tests, component tests, functinal tests, acceptance tests, smoke tests
Automated code quality audits, with PMD, FindBugs, Checkstyle
Writing Maven plug-ins
Day 2
Setting up a Jenkins server
Continuous integration build strategies with Jenkins
Jenkins jobs, notification strategies and recipes
Automated reporting on project status and statistics
Build piplelines, staged builds
Automated release strategies (SNAPSHOT and RELEASE artifacts) - Redux
Automated deployment, continuous delivery
Distributed builds; build slaves
Scaling Jenkins to large, complex systems
Day 3
Setting up a Sonar server
Automated code quality audits, with Sonar
Integrating Jenkins with your issue management system, e.g. JIRA
Task-based development (with Mylyn, JIRA, Jenkins, and others)
Integrating Jenkins with your component repository Artifactory
Automated release strategies, with Jenkins, Maven, Artifactory
Infrastructure as code: Puppet
Seminar 4: Agile ALM power workshop (1 day)
Use cases of typical delivery environments
Values of Agile ALM
Building blocks of Agile ALM, including automation, continuous integration, continuous inspection and continuous deployment
Building stages builds (aka deployment pipelines), concepts and tools
Creating productive development environments
Managing continuous improvement
Seminar 5: Maven (1 day)
Installation and configuration
Differences of Maven versions
Structure of projects
Concepts, Maven's four principles
Project object model POM
The clean lifecycle
The build lifecycle
Dependencies
Repositories: local/remote, proxy (Nexus, Artifactory)
Project reporting
Testing: JUnit and TestNG
Code metrics: Checkstyle, Findbugs, PMD
Multi module projects
Aggregation and inheritance
Writing own Maven plug-ins
Integration with CI servers and IDEs
Seminar 6: Continuous integration with Jenkins (1 day)
Basics of CI
- CI and Agile software development
- Extreme feedback
Jenkins
- Jenkins vs Hudson
- Installation
- Configuration
Jenkins build jobs
- Jobs for Ant, Maven, Gradle, shell
- Connecting version control systems (SVN, Git)
- Including metrics (Checkstyle, FindBugs, PMD, Sonar)
- Staged builds and delivery pipelines
Integration with IDE
Scaling Jenkins for big projects
- Concurrent builds
- Master/slaves architecture
Tips & tricks
Developing Jenkins plug-ins
Seminar 7: Version control with Subversion (1 day)
Version control systems: basics and definition
Subversion
- Architecture
- Access control
Frontends: TortoiseSVN, Eclipse
Creating a repository
Importing a project
Checkout and check-in, a typical working cycle
Solving merge conflicts
Tagging and branching
Automatic releasing
Tips and tricks
Seminar 8: Agile testing of web applications (1 day)
Testing basics
Web tests with Selenium IDE
- Concepts and architecture
- Recording tests
- Addressing UI controls (ID, Link, XPath, DOM, ...)
- Refactoring of recorded tests
- Replay of tests
Selenium test runner
- Executing tests
- Testing with different browsers
- Testing with no browser (Selenium 2/Webdriver)
- Adding to a continous integration farm
Selenium Remote Control (RC)
- Export of test cases out of Selenium IDE
- Integration with JUnit, TestNG, ..
- Reporting
Testing with grids: concepts and architecture
Typical setups for Selenium 2
- Best practices
- Data-driven tests, with XStream, Excel
- Adding to a continuous delivery pipeline
Seminar 9: Agile testing of Java Swing applications (2 days)
Overview: Java Swing
Testing basics
- Test categories and test strategies
- Benefits and limitations of tests
Set-up of a tool chain
- Java
- Maven
- Eclipse
- Eclipse Subversion
- Eclipse TestNG
Unit, component and integration tests with TestNG
- Concepts
- Aggregation and slicing of tests
- What to test, and what not?
- Data-driven tests
- Integration with Ant and Maven
- TestNG vs. JUnit
UI interactions with FEST
- Concepts
- Addressing and using Swing components
- FEST assertions
- Embedding into a TestNG host
- FEST vs. Jemmy
Acceptance tests with Fit
- Concepts
- ActionFixtures: testing UI sequences
- RowFixtures and ColumnFixtures
- Integration with TestNG and FEST
- FitNesse
Mocking with Mockito
- Test-driven development and isolated testing
- Examples
- Mockito vs. EasyMock
Test coverage
- Basics test coverage
- How much coverage?
- Cobertura: Examples
- Integration with Ant/Maven and Eclipse
- Cobertura vs. EMMA
Continuous integration with Jenkins
- Jenkins as single point of truth
- Adding tests to Jenkins: TestNG, FEST, Fit, Cobertura








