Archive for the ‘Books’ Category

Review: Agile Retrospectives

Thursday, October 12th, 2006

Retrospectives are (or at least should be) an important part of a team’s life, be it an agile one or not. The book “Agile Retrospectives” by Esther Derby (of “Behind Closed Doors” fame) and Diana Larsen aims to get you and your team going with them. In an “agile” team where you’d work in iterations, a retrospective should take place after each one, and ideally after the project’s done. The latter would be the case for teams working with more classical end-to-end development approaches.

The book starts out by describing how to approach a retrospective, assuming you’ve never done one before, taking into account things like timing, group dynamics and structuring. The main part of retrospectives are activities. That doesn’t mean just doing something, but achieving something. An activity is always related to a specific goal, e.g. identifying problems. You wanna keep retrospectives interesting. That’s why this book introduces a lot of possible activities which you can adapt or change more to your liking (or team, for that matter). The next about 90 pages list activities you can do in each stage of a retrospectives.

The stages basically split a retrospective into parts into beginning, end, and the stuff in between, the latter being data-gathering, generating insights and deciding what to do. There are different ways to achieve these goals, and the book describes a lot of them in a sadly not-so-glory detail. The list of activities is exhaustive, but each one doesn’t go into much detail. It’s basically a list of things to say or do, and how to deal with certain situations that might come up.

Though some of them come along with examples from real or invented teams, in my opinion there are too few examples going into insufficient detail. “Behind Closed Doors” lives from the story it was built around. I miss that here.

The rest of the book does a good job explaining in a more suitable detail, but the list of activities might get a little dry, since some of the activities are variations or build on others. I’m aware that it’s supposed to be a reference you can get back to, but even then a little bit more information or examples couldn’t hurt.

“Agile Retrospectives” is a good reference to get back to when you plan a retrospective for your or another team. It’s a manual, which is good and bad at the same time. It contains all the information you need to get going, but it doesn’t tell you how to do it in every nitty-gritty detail. You’ll have to figure out the details yourself. And if that was the authors’ intention in the first place, they did a good job. If you thought about getting started with retrospectives in your team I’d recommend getting the book and reading the all the stuff around the activities, maybe some examples of the latter. When you start planning a retrospective, come back to the book and skim through the activities to find the ones you’d like to include in your retrospective.

One last thing: Why the name “Agile Retrospectives”? Though constant self- and team-improvement is an important part of agile teams, using the Agile brand is unnecessary here. A title like “Effective Retrospectives” would be more fitting, since retrospectives aren’t agile-only, and in the end running effective retrospectives is what the book is all about.

TextMate Book in Beta

Tuesday, September 12th, 2006

The Pragmatic Programmers have a new title in stock. “TextMate: Power Editing for the Mac” is now on the shelf in beta. Sweet! So TextMate now joins the likes of Vim and Emacs to have its own book as a text editor. Author is James Edward Grey II who also authored the Ruby Quiz and the corresponding book.

Great stuff! Now if they’d only sell the time to read all those books.

Java Persistence with Hibernate now in MEAP

Tuesday, September 12th, 2006

Finally, the second edition of the classic and must-have “Hibernate in Action” finally made it to Manning’s Early Access Program. The first chapters of “Java Persistence with Hibernate” are available now, with more to come. The book will of course also feature EJB3 related information.

Looks like Hibernate finally gets a worthy reference manual. As much documentation as there is, it’s still very under-documented. Hopefully the second edition fills this void even better than the first one.

Second Edition of a Rails Classic

Thursday, May 4th, 2006

Why, what’s that in my mailbox? Oh yes, it’s the first beta of the shiny and new second edition of “Agile Web Development with Rails”. It’s in the works of being updated for all the glory features of Rails 1.1, including RJS-Templates (which are awesome, by the way), migrations, Capistrano, etc. The beta program will work in a way that the first edition will be transitioned to the second page by page. The second edition is already at almost 600 pages. The chapter on installation got a complete overhaul, including more detailed database setup, available editors, stuff like Instant Rails and Locomotive. Will be great to see it growing, and slowly transition into the second edition.

And now the covers features a picture of one of my favourite hobbies, too ;)

You can buy the book as a beta PDF now, or with the dead-wood edition when it’s finished. If you desperately need the paper edition, you can buy the transition combo including the first edition as paperback and the second edition as PDF.

In other (slightly older) news, the Radium CMS has gone public.

Technorati Tags:
, ,

Ramping up the Bookshelf (for Fun and Profit)

Monday, May 1st, 2006

Spring (as in season, not as in framework) is always a good time to get some great new books to read in the sun (if you dare exposing your geek-skin ;). To be prepared the books are slowly piling up on my shelf. It’s sad though that they’re not including the time to read them. The main focus at the moment is AJAX and Rails, so let’s see what’s in stock.

Manning just released two great books: “POJOs in Action” and “Ruby for Rails”. The first one sounds like a no-brainer on first look. If you dig deeper, you’ll see that this book is about a lot more than just POJOs (you could write a short Friday book about these in probably a day). It’s about current lightweight frameworks like Hibernate, Spring, JDO, iBATIS, and, to complete the circle, EJB3 (though I don’t consider EJB3 to be lightweight, but that’s probably a different discussion). EJB3 is mainly included to make the reader see what solution xyz would look and work like with the next generation of JEE. The book is an excellent read and gives a nice overview about all the technologies, and how to design lightweight “enterprise applications” (ah, I love that word) from API to locking and transaction strategy.

“Ruby for Rails” goes into the complete opposite direction. Though its main focus is also lightweight web development, it’s Manning’s contribution to a growing stack of available books on Rails. It covers both Ruby and Rails, and also how they work together, which is probably the biggest plus of this book. If you’re stuck with ideas on how to move on after reading “Agile Web Development with Rails”, this book maybe is for you.

Of course, The Pragmatic Programmers don’t sleep. They’re on the edge of throwing out “Rails Recipes”, a nice collection of small recipes (surprise) about different parts of Rails. It covers a lot of different aspects, and though some consider it more like a collection of entries in the Rails Wiki, it’s still a good composition and easier to use and read than the Wiki. It includes e.g. versioning, of course AJAX, tagging, security, testing, and a lot of generally applicable recipes. Have a look at the TOC for the bigger picture. It’s still a Beta Book, but it reached RC1 a week ago and will probably be released soon.

Next up is “Pragmatic AJAX”, also by The Pragmatic Programmers. Having just left the beta cycle, it stands in firm line with the other popular books on AJAX, like “AJAX in Action” or “Foundations of AJAX”. All three jointly took a seat on my shelf and wait to be read. Looking forward to reading all of them.

Last but not least, and fresh from the press, say hello to “Practices of an Agile Developer”. A book which joins the shelf of books on best practices for the everyday-life of a developer. It’s a close companion to the original “Pragmatic Programmer” and “Ship It!”. Though I’m not so fond of the word “Agile” anymore, the practices in it are still very applicable.

What I’m reading with the most interest right now is “Eric Sink on the Business of Software”. While focused on small ISVs, it’s still a very good book with stories from someone who succeeded with his own company despite making a lot of mistakes (which he’s happy to share). Very entertaining read and also full of good advice.

I’m already working on some of these books, and can say with confidence, that at least “POJOs in Action”, “Ruby for Rails”, “Business of Software”, and “Rails Recipes” are highly recommended.

Those aren’t the only new books, of course, but I reckon it’s enough reading material for the next weeks ;)

Getting Real

Sunday, April 30th, 2006

The fine folks at 37signals took the time to write down a few pages of they think is good advice for small software companies. Why do they think that? Because they too are a small software shop, and seemed to learn their lessons from their own experiences, which is A Good Thing. We know them for creating great software for our everyday using pleasure, and that know-how normally comes a long way.

The book’s called “Getting Real”, and you can buy it from their website. It’s divided into a few chapters and deals with stuff like running the business, design, coding and best-practices for a team. Though you’ll find a lot of that measly white-space in it, the book has some very valuable and no-fluff advice. Don’t expect a nice story oozing you in, this book will get straight to the point. If something’s been said, it moves on to the next topic. If you worked in the business for some time, you’ll probably be familiar with a lot of it, but it’s a good read anyway, because it’s one more confirmation that you’re probably doing it right. And there’s always something to learn.

It’s an excellent read, because it’s short and painful or painless (depending on whether you’re familiar with it or not), but don’t expect advice on how to introduce a certain way to handle things in your team or company. As Scott Berkun put it: “…this book is more mantra than guidance or instruction.” You probably can adopt these practices right away, if you’re a small shop where there’s probably only little resistance against improvements or new practices. If you’re working in a bigger company it’s most likely harder, if you’re swimming against a stronger current. There the book leaves you alone, and you’ll have to find a way to introduce them by yourself.

Of course, not all is lost on this book. It still offers highly motivating advice. I felt a sudden itch to do something and get some product done and out to the customer, if I’d had any. You can literally feel the motivation these guys must have. I highly recommend reading it, because the authors might have done something right with what they’re writing about. If you look at the success and beauty of their products which always are a pleasure to use, you could think they have a point. And most likely, they have.

The book is only available in PDF format, and you can buy it from their website.

Technorati Tags:
, , ,

A look back at 2005

Saturday, December 31st, 2005

As the end of the year comes closer, it’s time to reminisce. A lot of stuff happened over the last twelve months, both personally and in the glamourous world of software development.

**Personal**

* The most important thing certainly was the 6 week long trip to New Zealand with my girlfriend. What an amazing and beautiful country. They might not know how to make good bread and good cheese, but damnit, if that isn’t one of nature’s wonders, then I don’t know what is. I’ll be back Kiwis!
* We also moved to a new place, which was no big deal, because it’s only about 100m air-line distance from old to new flat. But the place is bigger, better, has just been renovated, and what have you. After 5 years it was time for something new. Also, we lived right on a place called “Boxhagener Platz” which was quite noisy all week long, even on the weekends with a farmer’s market and a flea-market.
* Got my hands on a lot of great tools for the Mac. VoodooPad, MarsEdit, TextMate, OmniGraffle and OmniOutliner (my favourite project management tool), to name a few. This year I actually started buying shareware again. The vibe of the Mac community where people appreciate and pay for great software, finally caught me.
* Went to a lot of great shows, including Silverstein, Alexisonfire, Alkaline Trio, Rise Against, Boysetsfire, and Turbonegro. If you didn’t already know: that’s my way to blow off some steam after a hard day’s work.
* Got to ride my longboard through the whole summer.

**Professional**

* Finished my first big project in my company. A lot of effort went into it, gallons of sweat and tears (and blood?) have been spilled, but it was worth it.
* Made the very unexpected transition from developer to project manager, something I wouldn’t have ever imagined. But that’s the way life is. Unexpected things wait right around the corner. I don’t regret it though. It taught me a lot of things, especially concerning the social aspects of work life. And I’m still learning.
* Got to work with Hibernate which has its joyous and dark sides. The later in the project it was the more the dark side lead the way we used it. Maybe more on that later. While it’s a great tool it certainly has some weird issues and problems with error messages. We also tapped right into the performance issues. 10000 objects in a single session, and you can get a coffee when flushing it.
* Ah Oracle, how I love thee. Hibernate brought the unavoidable relational database with it, and Oracle it was. Has some weird issues (e.g. handling timestamps, not to mention clobs), but it’s still top-notch and incredibly fast.
* Got to love (or hate? or love? or hate?) InstallShield Universal Installer. Spending time with this tool comes close to torturing yourself with a needle, but a really big one.
* Switched from Eclipse to IDEA. Boy what a great IDE.
* Learned so much new stuff that I can’t remember it all.
* Worked a lot of overtime. I’m still not sure if it was really worth it, but I’m leaning towards yes, although it brought me a herniated disk.

**Software development**

* Ruby on Rails rose from the ashes of bureaucratic and overly complicated Java web development
* No sentence could have said, no new web page launched, and no new framework created without mentioning Web 2.0 or AJAX. Time will tell, if both are to stay. If Hani is right, then maybe not. At least not the word Web 2.0.
* Java went lost a lot of heavy weight over the last year nonetheless. Leight-weight is the new EJB. The Spring Framework and Hibernate gained a lot of momentum and made Java enterprise development (one of those words that everyone uses, but no-one has a good explanation for) some kind of fun again.
* A lot of endless, useless and far too emotion-filled discussion about languages, frameworks and tools.
* Much, much more, but I’m sure you all read about it ;)

**Books**

I read a lot last year, and now I can’t wait to get my eyes on something novel-ish.

* J2EE Development without EJB - The sequel to Expert One-on-One J2EE Design and Development. Good stuff, gets boring over the chapters introducing all those mighty and numerous Spring features, but the first chapters are very good and informative, and give quite some insights in how to develop better code, even without Spring. Applying the principles of Inversion of Control to your code already improves it in my experience.
* Cryptonomicon - Read that one on my trip to New Zealand. Good stuff. Weird plot at first, because the setting takes place in different places and times. But gets more and more tensing. While the ending was a little bit disappointing and fast-coming, a great read nonetheless.
* The Penguin History of New Zealand - We brought it with us from NZ, where it’s a best-seller, so it was a good read to complete that great trip.
* Getting Things Done - Well, you’re not a real (Mac-)geek, if you haven’t read it. Getting Things Done was also a huge thing in 2005. Pages like 43 Folders and tools like the Hipster PDA or Kinkless GTD did a lot to help spread the word about it. I’m not religious about GTD, but I’m pretty convinced that it did and will help me a lot as a project manager.
* Hibernate in Action - Well we started working with Hibernate around April, so this one was a must-read.
* Data Crunching - Already wrote a review about it.
* The Art of Project Management - An outstanding book. I picked up some great advice helping me to make the transition from developer to project manager, which is, of course, far from being complete, but I’m working on it ;). I’m definitely gonna read this again next year.
* Ship It! - Wrote a review about it as well
* Agile Web Development with Rails - The Book about The Framework. Great book that is. Fun to read and fun to work with.
* Pragmatic Version Control with Subversion - A slick and easy read about a great improvement over CVS.
* Secure Coding - Dry stuff at first, but makes you think while you’re reading it. The authors provide a lot of practical advice on how to tackle security with your application.
* Beyond Java - This book got a lot of attention over the last few weeks. It has some good points, but I think I’m not the only one when I say that it could have needed a few more eyeballs and maybe some more detail.
* Peopleware - Now those guys are managers everyone wants to work for.
* Refactoring - Was about time to read that. Interesting to see what progress has been made with IDEs and refactoring compared to how it’s done in the book.

Although the real-life work is very important for learning, in my opinion you just can’t read enough. It helps a lot to get different insights and to build an own opinion from it over time.

**Something left for next year?**

Why certainly, me and my team have been working under a lot of pressure for the last 5 months. Now I need to get some more quiet time in my life. And some more time to work out. Coming home after ten to twelve hours of work isn’t really a good motivation to go jogging afterwards, especially if you have a comfortable couch waiting.

My last vacation being that infamous trip to New Zealand some months back, the next stop is Australia. Can’t wait to get back there. Just like New Zealand a huge cultural difference compared to Germany, when it comes to the way of life. With it now being winter in Germany a great place to go. And besides all that, learning, learning, learning.

Technorati Tags:
, ,

Is it Friday yet?

Thursday, November 24th, 2005

Apparently it must be, since the Pragmatic Programmers have just released the next bead of joy, called “Google Maps API”, from their Pragmatic Fridays series (mentioned a while ago on this site). I never looked at the Google Maps API before, but it looks quite interesting. Now if only it were Thanksgiving here so that I’d have time to play with it ;).

(Via PragDave)

Technorati Tags: | |

Ship It! Reviewed

Friday, September 30th, 2005

This is a follow-up to my post Ship It! Sneak Peek, since Ship It! arrived not too long ago and I couldn’t wait to take the rest of it in.

The introduction gives a short overview about the rest of the books and gives some tips on how to read the book corresponding to your role, either developer, team lead or manager.

The rest of the book is divided into four chapters:

  • Tools and Infrastructure
  • Pragmatic Project Techniques
  • Tracer Bullet Development
  • Common Problems and How to Fix Them

The first chapter introduces common tools that should work for almost, if not any project. Continuous integration, issue/feature tracking, scripting your build, having a test harness, and the like. You do these things, right? I liked the good and short explanations of the kinds of tests you can write, since it’s easy for the beginner (it was for me) to confuse e.g. smoke tests with unit tests.

The second one explains common techniques for projects. The most important one for me is “Work From The List”. It’s a list containing all features and tasks for the project including an estimate and a priority. Everything you need to get going, and to keep your project running. The rest of the chapter goes into good detail about having a tech lead, communicating on a daily basis, code reviews and code change notifications.

All mentioned techniques might sound familiar to you, if you’re pragmatic as hell. But the book is not just a list of techniques, it’s a about how these techniques work, why they work and why they’ll work for your project. Although most of the stuff is used in my current project at work, I got a lot of new inspiration on what we could do better from the first 2 chapters. I recently had an epiphany when I finally saw The List in front of me on a whiteboard. It was one of these moments that you’ll never forget, because you see that it just works and why it works at the same time.

Every technique explained in these chapters is accompanied by a list of things you can do to introduce it in your project, and a list of signs of doing it right and doing it wrong.

The next chapter describes a development technique called “Tracer Bullet Development”, a quite interesting approach to developing software. First your team agrees on specific layers for your project. Each layer gets a skeleton that just returns fake data. When all layers are stubbed out and talk to each other, each team can start adding code to its specific layer. The pieces slowly come together as all layers come closer to being finished. Well, that’s the short version, but it’s a very interesting approach for new projects.

The book finishes with a collection of common problems and little recipes on how to fix them, including inheriting legacy code, a broken test suite, team problems, and the like. Very good stuff, always comes in handy to solve those problems every project experiences from time to time (or, always, if worse comes to worst).

I was amazed that these five chapters only take about 160 pages and yet tell you all you need to know about successful projects. I’ve experienced a lot of these problems myself, and so did/do you, I’m sure about that. Jared Richardson and William Gwaltney have put together an excellent guide for both developers and managers. A must-read, if you have problems in your team or projects, and a must-read to confirm you’re doing the right thing. As both the authors do I can only recommend to get this book, find a best practice that could improve the way you and your team work and start using it to see if it works for you. If you want to start small, check out the selected excerpts of Ship It!.

Pragmatic Fridays

Monday, September 26th, 2005

Well, it’s not really Friday yet, but the Pragmatic Programmers released the first book of their new series of micro-books, called Pragmatic Fridays, anyway. Dave Thomas talked about them in the Ruby on Rails Podcast #2. They’re only about a hundred pages in size, PDF only (DRM-free, of course and cost between 7.50$ and 10$.

The first one is “Rapid GUI Development with QtRuby”, not surprisingly dealing with GUI development with the great Qt library and Ruby using the QtRuby bindings. Check out the excerpt. Perfectly suited for display reading which I tend not to like otherwise.

In the future we’ll see more Ruby-related micro-books

Great stuff guys, and keep ‘em coming!