Tag Archives: training

Interview with Feathercast about Maven Training

Last week, Rich Bowen from Feathercast interviewed me about the training I’ll be hosting in Oakland on November 2: FeatherCast » Blog Archive » Episode 63: Brett Porter – Maven. More information about the training session can be found on the conference web site or in my previous post.

Apache Maven: End-to-end training in November

It’s that time of year again! ApacheCon US in Oakland is on 2-6 November 2009. There are still discounts for registration by September 25.

I’m presenting my full-day Maven and development infrastructure training again on Monday November 2, called Apache Maven: End-to-end:

This training session will walk through the lifecycle of developing a typical Java application from creation to deployment, and show how to use Apache Maven most effectively to manage the build and development process. In addition to the fundamental building blocks of the project, the session will cover testing, day-to-day development in the IDE, application of Maven best practices, effective dependency management, establishing a release process, using profiles effectively, setting up documentation, tracking development reports and practices. Effective use of continuous integration (illustrated with Apache Continuum) and repository management (using Apache Archiva) as a part of development infrastructure for team and enterprise environments will be demonstrated. This course will be suitable both for those that are looking to get the most out of their existing Maven projects, and those that are looking to use Maven for the first time. Time is reserved for addressing specific situations that attendees have encountered in existing projects.

The material is aimed to offer most to the intermediate Maven user, while still being appropriate for Maven beginners, and is refreshed with the latest work from the book.

Learning from Maven Training

One of the interesting side effects of hosting a Maven training course is the things I learn as an instructor. Some of them you already know but need reminding of, others you just don’t get until you watch someone try it unaided.

Recently, I ran my "Apache Maven, End-to-end" course, firstly with the beginners course in Manila and then the intermediate course at ApacheCon US. Both had reasonable turn outs, with a late increase in registration to the ApacheCon session that was encouraging.

Some of the things I took away from it:

  • Maven’s diagnostics when things go wrong still suck. I do all I can to prevent network issues from impacting the class by providing a repository that covers the required parts of all the content, but there were still 2 or 3 instances of the "plugin not found" message when a network failure occurs.
  • The basics are still helpful. Though those in the intermediate course already had quite a bit of exposure to Maven, I received positive feedback to covering the basic principles again. It reinforces the "Maven way" of doing things and some of the reasoning behind it starts to make more sense, even if you already know how it works.
  • Repository managers are still taking hold. While a number of people were using one of the available managers, it seemed to be largely for proxying, and no one was running one on their own machine. Even though I only covered it briefly, that section was well received even by those running something other than Archiva.
  • The devil is in the details. You can cover all that you need to be able to do with Maven itself in about a half day, and it provides enough to do 80% of what you’ll ever do with Maven. You can only run a few specialised sections, such as sites, assemblies and releases. The other 20% widely varies and requires learning and researching specific plugins for those tasks. None of this is surprising – but it is encouraging that learning Maven is not as hard as it looks to some, but also that a better way of collating plugins and practices is limiting the ability of people to use Maven.  The course I run has basically an exponential ramp in what you are assumed to know and able to do once the basics are in place – as you set up infrastructure and team capabilities it is still reasonably easy to piece things together gradually if you’re building on a solid project structure.
  • Test more on Windows. I had almost forgotten how much harder life is to be a Java developer on Windows as seemingly trivial things go wrong. Trying to start a server, pinning to wrong Java versions, etc.

There’s always more and every time I run a course I come back with a series of notes to re-apply to the material, and bugs to fix in the software. But an encouraging point, and one I noticed from the conference in general, is that Maven acceptance is on the rise. Even though there haven’t been radical improvements to the underlying software since 2.0.x, the principles behind it have started to sink in, and complaints tend to be specific fixable issues rather than general frustration. Alternatives continue to get mileage, but none (yet) have been the Maven-killer they each claimed to be. Underneath it all, it seems we got a lot right after all.

Maven Training and Talks at ApacheCon in November

ApacheCon US, this year in New Orleans, is almost upon us already!

I’ve got a busy conference this year. Firstly on November 4, there is a full day training entitled Apache Maven, End-to-end:

This training session will walk through the lifecycle of developing a typical Java application from creation to deployment, and show how to use Apache Maven most effectively to manage the build and development process. In addition to the fundamental building blocks of the project, the session will cover testing, day-to-day development in the IDE, setting up documentation, tracking development reports and practices, application of Maven best practices, effective dependency management, and establishing a release process. Effective use of continuous integration (illustrated with Apache Continuum) and repository management (using Apache Archiva) as a part of development infrastructure for team and enterprise environments will be demonstrated. This course will be suitable both for those that are looking to get the most out of their existing Maven projects, and those that are looking to use Maven for the first time.

It should be a great and informative day, with the material aimed to offer most to the intermediate Maven user, while still being appropriate for Maven beginners.

I’ll also be presenting More Apache Maven Best Practices, the how-to talk for keeping your Maven use simple, successful, and avoiding Maven pitfalls. I’m planning to recap the important topics from my talk last year, and cover additional topics like integration testing and documentation.

The usual high quality line up of talks is available this year. And of course, there’s always time to hang out at the hackathon, and get together with committers and get involved.

I’m also joining the volunteer event after the conference to help continue some of the rebuilding work in New Orleans – which I’m expecting to be a very productive day spent away from the laptop for a worthy cause.

This is my first trip to New Orleans, though I hear from everyone that it is a beautiful place. I hope to see many a Maven user there! There are still discounted rates until the end of the month, so it is worth signing up soon.

Maven and Subversion at STI, Philippines

Back to school! I had the opportunity to sit in on a class last Saturday at STI in Cubao. Exist participates in an Open Source Engineering elective there, and while a number of subjects are taught, last weekend was about Subversion and Maven. The purpose of these half-day training sessions is to instruct the instructors that will eventually teach the course.

Igo presented the first subject, walking through source control in general and then the basics of setting up and using a Subversion repository. Deng presented the after-lunch shift, teaching the basics of Maven. Nap and I came along for tech support and heckling, respectively ;)

I learned a few things myself on the day. Firstly, a number of Tagalog words that describe building software :). What was also interesting was hearing someone else teach Maven. Deng, of course, did a superb job of giving an introduction to what Maven is all about. Teaching it myself is one thing – and it often becomes obvious what new users struggle with – but watching in the 3rd person makes it even more acute. Maven is certainly making building software easier – but it still needs to get even easier.

I have to admit that I’ve found it cool to have this project which started as a hobby for me now being taught in technical schools halfway across the world. Considering the extent of source control I was taught about in university was one assignment using SCCS, and that we only occasionally built using a makefile, students today have a huge advantage in getting started.

I’ve posted a few photos on flickr of the day: