Greg Ostravich has reviewed the third book in the Pragmatic Series
, Pragmatic Automation. The book takes you through all things automation, including Continuous Integration, CruiseControl, diagnostic testing, and much more.
This book is a great introduction to Project Automation for beginners, but it has lots of examples for intermediate and advanced users as well. It is a great book to show the value of project automation for projects that are not yet taking advantage of this. My favorite feature of this book is the demos that allow you to play along and learn by example. The demos are tremendous tutorials for those of us new to the topic. There are also lots of specific samples and code/xml snippets for setting up and running your CruiseControl build. Appendix A has a list of the projects used in the book and where to get them. The book takes us from push button builds to build automation to everything we need to make a deployable application and monitor those applications or builds. Taking these code snippets and package creation instructions for your own use make this book worth having in your reference library. I enjoyed Pragmatic Automation and its high level of detail and I recommend purchasing this book.
Read Book Review: Pragmatic Project Automation
Unless you are a total novice in using CruiseControl, Ant and co, we would not recommend this book. Sometimes it feels that it was written in one afternoon as it is more anecdotic than thorough, the examples are basic. We've been using CC, ant, CVS and co for a couple of years and have not learned much... We're using JDepend and hold Mike Clark in high esteem for this work. The book was a disapointment, sorry.
We've been using CC, ant, CVS and co for a couple of
>years and have not learned much...
The book is clearly meant as an introduction to project automation using those technologies for people who don't have your 2 years of experience. The objective is to get people who are not practicing project automation yet to get started as easily and as quickly as possible (and have some fun with it); and in that respect it succeeds 100% IMHO.
>the examples are basic
I view that as a BIG plus for anyone getting started.
>Sometimes it feels that it was written in one afternoon ...
I was one of the book's reviewer/contributors, and I can guarantee you that Mike invested a lot of time and involved a lot of people over months in the writing of this book (in most cases writing a simple, concise, practical book is harder than writing a big tome - succinctness and editing are difficult and time consuming to practice well). If you are reasonably competent, however, with the help of this book YOU CAN AUTOMATE YOUR PROJECT IN ONE AFTERNOON.
I recommend this book to anyone who hasn't worked with a well setup automated build and configuration management environment. It is very very easy to read. Even though the ideas are not complex one by one, it is very useful to see them working together. It is definitely a good step towards setting up your own standard build environment.
It takes a rare author to bring sophisticated concepts down to the level that a novice can understand. Mike has done that and more. I enjoyed the book tremendously. I especially liked the interviews with Duncan and others that lent insight into the decisions made behind the scenes.
I've said it before and I'll say it again. Mike has moved from a budding young author to a powerhouse. He all but carried Bitter EJB (his chapters were easily the best in the book, and his stuff always overdelivered, ahead of schedule). And Dave Thomas/Andy Hunt are building a fantastic line of books, with a clarity, focus and surprisingly consistent voice.
Kudos to all involved, especially Mike.
Just an important point:
The is part of the starter series of the pragmatic programmers. Indeed, it has to be focused on starters.
i'll post the mail i wrote to mike, that should say all.
---- mail starts here ----
i just received my copy of pragmatic project automation and i just read it cover to cover.
if the pdf version wasn't available (which i ordered as well, of course) i'd retype every single letter in <put here your editor of choice ;-) just to have a reference on my notebook.
many thanks from germany for insights into a better world
---- mail ends here ----
the principles aren't new, and maybe it was written in an afternoon, but
i don't care. i like the style, the examples are easy to follow and
i had fun whilst reading.
i'm coming from the entertainment industry (games to be more specific) and let me assure you, most softwarehouses i worked with are lacking this kind of automated build process, neither did they have heard of TDD.
a story about my last employer:
the first time i forced my former coworkers to write unit tests they nearly killed me since this was regarded as, ...well...uncool. my bosses told me something like: don't waste time in automation and don't write tests, the time spent with this crap costs money...
i left the company after 6 months to work as a freelancer...
pragmatic project automation will help me to show my clients how useful it is to integrate frequently and how to automate this.
i will definetly spread the word about this book.
I'm reading Pragmatic Project Automation right now. It's great! IMHO if you benefited from "Java Tools for Extreme Programming" (Hightower ISBN 047120708X) or "Java Development With Ant" (Hatcher ISBN 1930110588), youll like Clarks book.
The writing is easy and fun to read. The suggestions are concrete and helpful. The tidbits are plentiful (e.g. http://sourceforge.net/projects/megg
Im surprised that anyone has a bad thing to say about this book.
Its my hope that the Pragmatic Programmers will put out more books. Now that the Starter series is here; please publish a Journeyman series.
Thanks for writing these books! Theyre great.
I am surprised to see no mention of Maven.
How can you write a book about project automation not mentioning one of the most popular Project Management Tools - Maven.
I'd have to second the comment that this book is better suited for beginners. There might be some benefit for an intermediate user, but I'd say if you have set up an automated project and have used ant and cruisecontrol, you'll not find a lot in the book that is new.
This isn't a bad thing. What it does it does very well. And I say this not just because the book could be a pattern for the system I've put in place at my current company. It is great to help someone develop such a system. It is great if you get tired of people asking why you are spending so much time to automate the environment when you could be doing something useful. It is good as a reference point which serves as a lingua franca for project automation. But it only very briefly touches on more advanced topics (I'm not saying these would be appropriate for the aim of the book as an introduction, but things such as writing ant tasks, more detail on using scripting languages within ant, building/populating databases in a heterogeneous environment, building for and testing with multiple server platforms, using ant imports to create generic templates for common behaviors, using XSL in the build process to maintain DRY).
So if you haven't automated your development environment to within an inch of its life, this is a great book to help you do so. It is easy to follow and covers a broad array of topics to get you through many of the initial hurdles you will encounter.
Being that I consider The Pragmatic Programmer one of the very best general programming guides around, one that really does serve from journeyman to master, I had high expectations for PPA as my second in the series (I have not read Pragmatic Version Control or Pragmatic Unit Testing). It fell short mainly in the area of being helpful for more advanced users when compared to The Pragmatic Programmer.
It fell short mainly in the area of being helpful
>for more advanced users when compared to The Pragmatic
I believe that Mike Clark did the right thing by addressing the "uninitiated" in his first book (first things first); but it sounds like there's a definite market for a sequel :-). There are clearly a lot of additional "advanced" and innovative ideas, tools, and techniques that fall under the domain of project automation.
Mike does spend a lot of time bringing along those non-ant users out there. I would wonder how many of these people there could be out there, but the uproar on the Netbeans user list over the changes from 3.6 to 4.0 shows me there are more than I thought. Therefore, it's probably good that he brings along the people new to a real cross-platform, cross-ide build system.
After that, there is still plenty left for the advanced developer or build engineer. As he states, many developers don't take the time to automate their own build processes adequately. I have seen this many times and created advanced build environments for these people. Even for someone fairly advanced in CRISP build environments, many can still benefit from the automation and monitoring sections of the book. Tools like CruiseControl and AntHill are fairly new and this book provides a no-nonsense guide to putting all the pieces together. The sections on handling release management, creating windows installers, and managing deployments are some nice icing on the cake.
This book also provides a glimpse at some future directions such as Ant with Groovy (my personal favorite) and even mentions Maven. I do think more discussion around Maven would be good as it really represents a different mindset in build environments.
I would have liked one more chapter that talked about tips with larger projects that may have many sub-projects that generate many artifacts that go into a whole software system. And since he brought up Groovy with Ant, it would have been nice to see comments on using CruiseControl with Groovy build scripts instead of Ant scripts (if it can be done right now). However, I understand that this book is providing and end to end approach and that diving into the deeper specifics of CruiseControl may be better left to a book specifically about CruiseControl.
This book contains a lot of worthwhile information for everyone except perhaps the early adopters of project automation tools such as AntHill and CruiseControl.