Archive for the 'books' Category

The Third Law of Marketing

The Secrets of Consulting
These days, I'm reading Gerald M. Weinberg's The Secrets of Consulting. Basically, I ordered it when I was seriously thinking about becoming a free-lance consultant, but even if this won't probably happen anytime soon, there are still lots of gems in this little red book.

One of those is “The Third Law of Marketing”:

Spend at least one day at week getting exposure.

In 1985, when the book was written, there were no blogs, not even the Web. But today, for a consultant or a professional, what better way too get exposure than keeping a blog?

Keep this in mind next time you feel you're wasting too much time blogging (which of course entails reading lots of other blogs). If you're not spending at least one day per week doing it, you aren't doing it enough.

'Joel on Software' review

book coverJoel on Software, by Joel Spolsky.

This book by the well-known software developer, entrepreneur and blogger Joel Spolsky is a comprehensive collection of the most interesting articles that have appeared on the Joel on Software website in the course of the last five years.

If you're a devote follower of Joel, like me, there's almost nothing here that you haven't probably already read online. Still, it can be useful to have all this content nicely reorganized and reprinted. As Joel puts it, the book is a heck of a lot more cohesive than the website, where by cohesive I mean «can be read in the bathtub without fear of electrocution.» At the very least, it can be a nice present from a developer to his/her manager, who might get a couple of clues they're still missing.

Inside here, there's plenty of clues indeed and Joel will be very happy to share them with his readers, drawing from his experience as developer, program manager at Microsoft, software entrepreneur and Israeli paratrooper.

Not everything here has to do with technical matters, but you'll also find something about the economy, managing people, business strategy and insulating pipes. This makes for a pleasant and varied reading, particularly if your ambitions go beyond being a good developer. In any case, you can count on the first third of the book to give you plenty of advice in this respect, while the second third deals with managing developers. The third part is a semi-random collection of topics, the majority of which deal with strategy. At the end of the book, you can find three articles on .NET and an appendix with questions and answers taken from the website.

Joel's basic approach can be described as very down-to-earth, beware-of-hype, no-silver-bullet philosophy. This is not to say that what he writes is bland and clichéd. Quite the contrary. He does not refrain from being original and even controversial at times, at the risk of being unpopular in denouncing the excess hype that sometimes surrounds topics like eXtreme Programming or Open Source, or attacking entrenched myths like network transparency or software reuse.

In any case, he his always witty, sometimes downright humorous and never haughty.

Highly recommended!

So you want to manage software projects?

If your job is managing programmers and software development projects, being a program manager or a team leader, there are some books that are considered classics of the genre. I've put together a brief list of the ones I've been reading recently and I plan to post a brief review of each one in the coming days. Stay tuned if you're interested.

Author Hunter S. Thompson Kills Himself

CaricatureAuthor Hunter S. Thompson Kills Himself: “DENVER (Reuters) - Hunter S. Thompson, who pioneered 'gonzo' journalism and became a counterculture celebrity with works such as 'Fear and Loathing in Las Vegas,' fatally shot himself at his Colorado home on Sunday night, police said. He was 67.”

(Via Reuters: Top News.)

'User Stories Applied' Review

User Stories AppliedUser Stories Applied : For Agile Software Development (Addison-Wesley Signature Series)
by Mike Cohn

Writing user stories is one of the twelve practices of the XP software development methodology. User stories summarily describe features of the software that must be developed, from the point of view of the user. This means that no implementation detail is present on stories.

As with all the XP practices, the emphasis is on traveling light, producing only those artifacts that are absolutely necessary. Thus, user stories contain a brief description of the feature as a reminder, to the developers and to the customer, that sometime in the future they will need to meet and flesh out the details. This is in contrast to techniques like use cases, which might seem similar but are much more formal and rich.

User stories also play a fundamental role in the planning game, one of the other XP practices. During the planning game, the development team and the customer together discuss the stories, the developers estimate the time necessary to implement each story, in terms of story points and the customer prioritizes them. During the next iteration, developers will implement those stories that the customer deemed more urgent, up to a number whose total sum of points does not exceed the estimated team velocity.

All of this is explained in a couple of the XP series books, namely Extreme Programming Explained: Embrace Change and Planning Extreme Programming You'd better have already read at least the former of those before picking up Mike Cohn's book.

User Stories Applied does a good job explaining in detail what user stories are, what goes into them —and what doesn't —, how they should be estimated and what to do with them after the stories have been implemented.

There's a lot of good sense advice in this book, which might induce someone to think that user stories and all other XP practices are just a bunch of generic suggestions that you might apply or not, as you wish. That's certainly not true, as XP is a methodology whose effectiveness lies in the combined action of all the practices when they are taken to the limit. This takes determination and discipline and, in my experience, it's just too easy to fall into the habit of following only some of them, say when you're not under deadline pressure, and still pretend that you're an XP shop.

I would have liked more real-life stories in this book, in order to spice it up a little. As it is, everything that is there sounds highly reasonable (at least to me) but it wouldn't convince anyone who is skeptic of XP's supposed benefits. The example at the end of the book sounds contrived and hollow.

On the other hand, if you have been already convinced by Kent Beck's white book and want to start adopting XP, I can heartily recommend Mike Cohn's book. Recommended!.

Shooting Digital

Book cover
Just finisehd reading Shooting Digital: Pro Tips for Taking Great Pictures with Your Digital Camera by Mikkel Aaland.

Nice book, full of very interesting tips for taking the best digital shots. I should really start to put them to good use by going around more with my new Panasonic Lumix DMC-FZ20.

panasonic_dmcfz20.gif
The problem is that this time of the year, in this part of the world, the weather is either foggy or completely overcast and it’s not easy finding a good subject. Well, at least not along the road from home to office and back.

Hibernate in Action Review

bauer_cover150.jpgHibernate in Action by Christian Bauer and Gavin King, Manning Publications.

Hibernate is arguably one of the most interesting and useful Open Source projects around. If you develop enterprise Java applications that have to do with a relational database (and which one doesn’t?), then you should seriously consider using an Object/Relational Mapping (ORM for short) tool as an alternative to straight JDBC, in particular if you have a rich domain model and you’d like to exploit the object-oriented features of the language, like polymorphism, and core libraries like the Collections API.

This book comes straight from the source. Gavin is actually the founder of the project and Christian is one of the most prominent developers. It is not surprising, therefore, that the book explains some of the design decisions that have shaped Hibernate into what it is now, like using runtime bytecode generation in preference to source code generation or post-compilation bytecode manipulation.

Hibernate is not easy to learn and use proficiently if you’re not prepared to study it thouroughly and this book does a good job of explaining tricky subjects like the persistent objects’ lifecycle, exotic mappings, transactions and so on. However, it would be quite hard to use it as a single reference source while working with Hibernate. You should be prepared to refer constantly to the reference documentation, the API docs and the huge knowledge base available through the online forums.

At a little more than 400 pages, it is not a particularly thin book, yet I would have appreciated a more systematic treatment of the APIs and the different types of mappings, with more code samples. As it is, you’ll find it a very useful and interesting book if you’re about to start a new project and want to know whether Hibernate is the right solution to your persistence problems. If you’re a developer interested in using Hibernate, I suggest giving it as a present to your technical mamanger or team leader. In this case, I’d give it five stars

On the other hand, if you’re already experienced with Hibernate, it is much less useful but nonetheless very iteresting and well-written, so I’d give it four stars.

Average evaluation: 4.5 out of 5.

Hibernate in Action

bauer_cover150.jpg
I’m currently reading Hibernate in Action by Christian Bauer and Gavin King. Having read the first five chapter so far, I’m pretty much impressed by the thourough treatment that is given to the rationale behind using an ORM tool and Hibernate in particular. The chapter on transactions is very illuminating.

I hope to post a comprehensive review once I have finished reading it.