Independent project support and seminars in the areas of Agile software development, SCM/ALM, DevOps, Continuous Delivery and Java/Java EE.
Welcome to my web site. Find out more about my portfolio and areas of interest. Navigate further to dedicated pages that show my performances and seminars, or zoom in to my books, to get a better understanding about my approach.
Agile Java-Entwicklung in der Praxis
DevOps for Developers
Tools should implement requirements and concepts. I prefer to use tools that allow productive software development. There are many good tools on the market that I prefer to use and consult on including: Jenkins/Hudson, TeamCity, Bamboo, Maven, Ant, Gradle, PMD, FindBugs, Checkstyle, Sonar, Cobertura, Mockito, Subversion, Git, Flyway, Fit/FitNesse, Selenium, XStream, Eclipse, IntelliJ IDEA, Mylyn, Artifactory, Nexus, Bintray, JIRA, FishEye, GreenHopper, Trac, RPM, yum, Puppet, Chef, Vagrant, Docker, ELK (Elasticsearch, Logstash, Kibana), Centreon, Nagios, and many others.
DevOps is a mix of patterns intended to improve collaborations between development and operations. DevOps addresses shared goals and incentives as well as shared processes and tools. Because of the natural conflicts among different groups, shared goals and incentives may not always be achievable. However, they should at least be aligned with one another. DevOps respects the fact that companies and projects have specific cultures and that people are more important than processes, which, in turn, are more important than tools. DevOps accepts the inevitability of conflicts between development and operations. Find out more about my DevOps approach in my book DevOps for Developers.
After chosing the right tools, they should be used and integrated in the most efficient way. This can be a selective adoption, or a "full lifecycle tooling", including tools for code, test, build, configure and delivery. Application lifecycle management (ALM) protects your assets and boosts productivity. Although not a must, ALM should be enriched with Agile strategies.
What is ALM? ALM is a comprehensive approach streamlining your software development process.
- Is the marriage of business management to software engineering
- Targets processes and tools working together seamlessly, without silos (silos are for farmers!)
- Spans development phases and project roles to foster communication and team collaboration
- Enriches ALM with Agile strategies
- Is based on Software Configuration Management and version control
- Is based on a set of lightweight tools, enabling a team to collaborate efficiently
- Includes artifact types to continuous integration, inspection and deployment including Java, Groovy, Scala, Cobol, .NET, and others
- Sets up and uses an unified infrastructure
Find out more about my Agile ALM approach in my Agile ALM book.