Showing posts with label book review. Show all posts
Showing posts with label book review. Show all posts

Tuesday, June 30, 2009

Book Review: Grails in Action

I was lucky enough to get copy of the book Grails in Action from Manning. And of course I have promised to write review of the book.

My feelings about the book are somehow mixed. Basically book is divided into four parts:
  • Introducing Grails
  • Core Grails
  • Everyday Grails
  • Advanced Grails
The first two parts, Introducing Grails and Core Grails, are for more or less newcomers to the Grails so if you already have experience with Grails they are somehow boring. That wouldn't be a problem if my opinion wouldn't be that they are not written in an appropriate way for the Grails/Groovy beginners. My feeling is that beginners will get confused as the authors jump too much directly into action. So my advice for the beginners is to read e.g. Getting Started with Grails and then come back to the book Grails in Action.

But even if you already have Grails experience don't just skip over the first two parts, because after having some Grails foundation the first two parts become very useful and very easy understandable. Even for me (and I have some experience with Grails) there were useful information and discoveries.

Very good approach in this two parts from the authors is that they have devoted lot of energy to explain how to test Grails application. This is something I should definitely start to do on my own projects :)

The real fun comes with the second two parts - Everyday Grails and Advanced Grails. I have really enjoyed reading chapters from those parts. They are very nice and are really covering lot of skills you will need during real Grails projects.

In the third part authors are explaining how not to reinvent wheel by using number of available plugins. They show you how to fast and reliably put together advance features by reusing already existing functionality. I liked this approach and using it myself a lot.
There are also chapters devoted to workflows, exposing interface to outside world and using messaging.

After finishing third part you have really solid foundation to do some serious Grails development.

The fourth part is really advanced although I would include basic transactional behavior into at least third part of the book as this is probably more everyday grails than advanced grails. The fourth part will explain advance GORM related features, advance usage of spring and something you will for sure meet in the corporate environment - build and deploy process.

Conclusion
At the end I was very happy that I got a chance to read this book. This book will lead you from the beggining to the really advanced features of the Grails. If you are developing with Grails I am very sure you will have this book near you.
If you are just starting with Grails I would recommend, first read something simplier and then come back to this book. I am sure you will enjoy reading it.


And if you want to buy the book you can do it here :)


Sunday, June 14, 2009

Book Review: Becoming Agile

When I started to think that majority of agile books are somehow breaking DRY (don't repeat yourself) principle I was lucky enough to get a copy of the book Becoming Agile: ...in an imperfect world.

Introduction

What I liked the most in this book is that it is completely oriented to the real world. Therefore it will not try to teach you any of the existing agile frameworks but will help you to make your company (team) agile taking into account all constraints surrounding you. Book is oriented around agile principles and authors consider you environment agile if you are following agile manifesto principles.
Another value of the book is that agile introduction is taken from the complete beginning. From company readiness assessment up to the project deployment and spreading your agile process through out the whole company. The whole project lifecycle is covered. From the vision, through adapting idea to the deployment. This is something that I was missing the most in lot of books about agile.

Book follows imaginary company Acme media and its move toward more agile environment.
Getting started chapter will explain how to check your company readiness to adopt agile processes, ensure buy-in and inject agility into your existing process. When you have selected pilot project you are moving forward.

Kicking off
chapter explains how to make feasibility study and how to decide if you should continue or stop with the project.

If you decided to continue with the project Populating the product backlog chapter will show how to create product backlog, what means "just enough" for a feature card and how to estimate and prioritize the product backlog.

Enough information for scheduling creates release plan and explains in how much details you should plan your iterations. And don't forget that having plan is not enough. What you need is planning because during the project your plan will change for sure.

When you have release and iteration plan you can move to the Building the product chapter. You will see how to welcome change, how to apply agile principles into development and how to ensure that you have working software at the end of iteration.

Embracing change chapter cope with adapting to change requirements. It explains common reasons for requirement changes and how to adapt to them. Next parts of this chapter will show you how to plan deploying and how to improve your process using retrospective.

If your pilot project was successful you will want to spread the agile process throughout the company. The Moving forward chapter will help you with this process.

Rest of the book explains the whole process from two different points of view. In one chapter the overall diagram of the project lifecycle is displayed and shortly explained while another chapter contains text description of the overall process.

Conclusion
Although at the beginning I was not sure if I want to read this book I must admit I have really enjoyed reading the book. I believe that this book must be mandatory read for anyone who want to become member of agile community.
The only downside of the book is that it covers really wide area (complete project lifecycle) and thus after reading this book you will need to read other books to improve your knowledge about e.g. estimating, testing, writing good user stories...

I really recommend this book to everyone that already are or want to enter the agile world.



Saturday, June 28, 2008

Book Review: Groovy Recipes

I just finished reading Groovy Recipes book by Scott Davis so I would like to share my opinion about the book. Book is excellent "I'am in a Hurry" guide and you can get initial, but good enough knowledge about Groovy in a really short time. For sure it is not comprehensive guide to Groovy.

If you are Java developer and want to jump on Groovy wagon fast this book is excellent start. You will get introduction into Groovy and be able to use Groovy immediately as you finish with the book or related chapter of the book.

For those who have no knowledge about Java or Groovy I would not recommend this as a first book about Groovy. Even it is not stated that way, I believe that book expects at least some knowledge of Java.

The main minus for the book are poorly described closures. I believe that closures are really important part of the Groovy language and would expect better explanation. If you have no knowledge about Groovy closures, read some articles on the web to gain more knowledge about them.

Book is divided into 12 chapters.

Chapters 1 and 2 are introductory chapters describing in general what is Groovy, how to install it and how to integrated with the most popular IDEs.

Chapter 3 is dedicated to "special" (no Java like) constructs of language where you will learn about autoboxing, operator overloading...

Chapter 4 describes how to integrate Java and Groovy and vice versa. You will learn how to compile Groovy code to Java classes and how to solve some possible tricky dependencies issues.

In Chapter 5 you will see how you can use Groovy from the command line.

Chapter 6 is very interesting and you will see how easy it is to work with files within Groovy. This chapter is very useful for Java developers because they would ask themselves why Java file handling cannot be as easy. In Groovy you can read content of the file, you can list content of the file literally with the line of code.

Chapter 7 and 8 are even bigger "wows" for the Java developers. These chapters describe how Groovy handles XML. You will learn how to read XML file with XmlSlurper and XmlParser and how to create XML with MarkupBuilder and StreamingMarkupBuilder. For those that are used to to work with XML in Java this chapter will be proof that working with the XMLs need not to be painful.

Chapter 9 is devoted to web services and there is very nice introduction to different types of requests like: http get, post, SOAP request, XML-RPC request and others.

Chapter 10 is about metaprogramming. Metaprogramming is dynamic part of the Groovy language and the Groovy language option that make Grails so good web development framework. This is the chapter I liked the most.

Chapters 11 and 12 introduce Grails, web development framework based on Groovy.




Thursday, May 8, 2008

Book Review: Peopleware

For those who had no chance to read the book Peopleware: Productive Projects and Teams (second edition) by Tom DeMarco and Timothy Lister I really can only advice them to read it. At the first moment I was not sure if I want to read this book but now when I have finished it I am sure I will advice all who are interested to read it.

Although the book is by publishing date "old" in terms of IT development it is full of good advices. As I am supporter of Scrum I was pleasantly surprised that most of advices mentioned in the book are not "nice to have" but "must to have" features to successfully apply Scrum at your project. Book describes the most important aspect of every company, persons that work on the projects. Even Scrum applied by the book will fail if you don't use some common sense.

The book is divided into 6 parts.

Part I: Managing the Human Resources

This part if focused on how human resources should be or should not be managed in IT field. It describes how different is software development compared to development in factory. It also have a look on Parkinson's Law that time will stretch to fit the work concluding that the this Law is wrong. Very interesting chapter for all who has something with human resources.

Part II: The Office Environment

This part is focused how office environment should be organized to have productive developers. It also presents some statistical data how productivity decrease when environment is too noisy or does not fulfill some basic requirements. Everything mentioned here is true and mainly must be to have productive teams.

Part III: The Right People

For project to succeed it is not enough to have the best experts in corresponding fields. For project to succeed even more than the best experts available are right people. You will learn how to recognize and keep the right people within company.

Part IV: Growing Productive Teams

It is not enough to put n persons together and to expect that they will be productive. Productivity must be grown and only really good managers are capable of doing that. Read the chapter how to increase you chance to grow a productive team

Part V: It's Supposed to be Fun to Work Here

Work should be fun. Especially IT work should be fun. If people are not happy with their work you should look for problems within your company.

Part VI: Son of Peopleware

This is completely new part added to the original book (first edition). As authors mentioned first parts were written by young consultants that worked on project level. This part is written by older consultants that mainly worked on company organization level. Read this part to find out what have changed in their views compared to the previous five parts.

Sunday, April 27, 2008

Planning Extreme Programming

Few weeks ago I read book Planning Extreme Programming (The XP Series) by Kent Beck and Martin Fowler. To be honest according to the names on the book cover I expected more from this book. If you are professional and already have experience with extreme programming or agile software development this book will not give you too much. If you are new to this style of software development, or planning agile software development at all, I would for sure recommend this book so you can get overview and explanation why agile software development (particularly Extreme Programming) works better than more traditional approaches. Then for sure you need to read additional books to get even better understanding of the Extreme Programming.

In the book there is lot of comparison of planning we are applying in every day life and how to take that approach for software development.

After initial introduction in the few first chapters you are going into planning process more and more .

You will learn how to write user stories, how to do estimations, you will see that there is no plan but the planning process. You will learn why the first plan is the hardest one and then how the process of release planning works. After release plan is prepared iterations planning takes place. Iterations are steps within release that will help you to reach the final goal, successful project.

So for the end, my conclusion would be. If you are new to agile software development read the book as it gives excellent introduction and gives you understanding why agile approaches should work.

If you would like to find out more about user stories that are the base for the planning process you can read my review of the book User Stories Applied.



Saturday, January 19, 2008

Book: User Stories Applied

I am just reading the book User Stories Applied written by Mike Cohn. Book is excellent and although I have read lot of articles and blogs about user stories on the Internet I found so many new and important information for me. Everybody interested in agile software development should read this book too. As I like to have the most important statements from the book written somewhere I will place them on this blog.
This will be something like book review done chapter by chapter. But do not expect that mentioned summary of the book will be enough. If you will like the summary then for sure you have to read the book.

The list of posts I wrote about this book is: