Moving bookshelf to Goodreads and manage e-books in Calibre

Over the past month I changed my toolset for managing my bookshelf and e-books. In this blog post I’ll explain why.

For the past years I used Shelfari from Amazon to manage the books I want to read, and the ones I’ve read. It was also useful to keep track of what friends are reading to pick up interesting books. There are also user groups, but those communities were not that vibrant. Nowadays some paper books also provide a free download of the e-book, and I didn’t use a tool to manage my e-books.

Now all of that has changed!

Check out Calibre, probably the best free e-book management tool around. After dropping your pdf into the tool it can sync with online services from Amazon, Google, Goodreads,… to get extra info about the book like covers, short description, ratings, and so on. You can apply tags to your books to group them into categories and search trough them. You can keep multiple formats for your books and sync to a range of mobile devices. It’s even possible to convert one format into another. Lots of available plugins can extend the functionality of Calibre. I was hooked immediately.

The other tool I use now is Goodreads. I didn’t realize Shelfari was lacking so many features until I saw Goodreads, for example:

  • you can make additional book shelves and put an RSS feed on the ones you want
  • you can export at any time (unlike Shelfari)
  • authors of the books also have profiles on Goodreads, so you can send them messages, ask questions,...
  • order books on your shelves the way you want them to appear
  • highly customizable widget to put on your website

I also have the feeling the community on Goodreads is a lot more vibrant than on Shelfari. So I’ll leave Shelfari soon, and will try to convince my Shelfari friends to do the same.

This blog post should help a little :-)

Special thanks to Jochen and Yoeri for showing me these great tools.

If you want to join me on goodreads, visit http://www.goodreads.com/pascalmestdach

Teams avatars increase fun!

No matter how ‘challenging’ the project is you’re working on, it’s always important to keep a fun, positive attitude in the team.

One thing that definitely increases the fun factor in a team is introducing team avatars.

These avatars can indicate:

  • who’s working on what for the moment
  • who’s on vacation
  • who’s giving the upcoming product demo
  • who’s responsible for support today

Something like this:

Team Avatars

As you can see we picked The Looney Tunes as our theme. In case you’re wondering, I picked Speedy :-).

Another theme was already taken in our company, The A-Team: “If you have a problem, if no one else can help, and if you can find them, maybe you can hire...”

Other themes that came to mind:

  • The Matrix
  • Ghostbusters ”Ain't afraid of no ghost”
  • Lord of the Rings

Do you know other thankful themes? Please share them…

Pick one, implement it… just because it’s fun and not a lot of work.

RoundhousE experience report

RoundhousE is an automated database deployment and change management system. We started to use it over a year ago, so it’s time for an experience report.

At the current moment we’re using RoundhousE in 3 big projects and 5 smaller ones each deploying new versions and schema updates at least once a month in an automated way to over 25 on-site client installations. And it’s working great!

This year 2 more big projects are planned to start using RoundhousE for database migrations. And each new project that starts, small or big has to use RoundhousE. It has become a company policy.

Developer and integration sandboxes

We provide each project with development sandboxes on the developers machine and a project integration sandbox on the build server. The project databases get rebuild from scratch with every automated build using the MsBuild integration of RoundhousE. Database migration scripts are getting tested over and over on different platforms (sql server 2005/2008 and oracle 10/11).

Deploy into a copy of production

We’ve set up an internal production like environment where new versions are pushed upon and tested first, before being released to production.

We integrated the execution of the RoundhousE console in a self made PowerShell script, that also updates the version of the application (stopping/starting services and websites, copying binaries that kind of stuff).

Deploy into production

Because we have those environments mentioned above, and the deployment is already tested, a production migration rarely fails. And even if it fails on Sql Server, that’s not a big issue, because RoundhousE runs the migration in a transaction. So nothing happened.

Conventions around RoundhousE

We implied 3 conventions to make the process run smoothly:

  • Before we start deploying with RoundhousE on a project, the current databases in production need to have the exact same schema. This is also the hardest part in our process, but once it’s completed it’s a gift from heaven. :-)
  • Only the database user which RoundhousE uses to perform the migration has the right to make schema updates to the database. And the development team does not know those credentials. That way we assure that only RoundhousE performs schema updates.
  • Nothing gets deployed into production before it’s deployed to our internal environment.

To make it perfect

The Oracle integration still needs some work, so maybe a real Oracle expert can contribute to the project, enlightening us with the wonderful internals of Oracle.

General feeling

RoundhousE is still awesome!

20 Questions to help you define the meaning of an 'Agile company'

The agile movement is happening for about 10 years now. A growing number of people and teams pick up the agile principles, methods and practices.

And no one would ever want to go back to the 'old' days. Agile becoming mainstream is definitively a good thing!

From time to time I hear people say that they work in an Agile Company. But what does that even mean?

Does it mean that everyone in your company knows and uses the agile lingua?
Or that you're doing iterative development with sprint planning and review meetings? 
That teams continuously learn through retrospectives? 
Or that you're applying continuous delivery, pair programming, test/behavior driven development,...?
Or that you’re applying Customer Development?
Or practice Lean and Kanban practices?
Or that your Scrum Masters and Product Owners are certified?
Or all of the above?

Let's take a step back and try to reflect a set of questions on the 4 agile values stated on the well known VersionOne Agile Poster: adaptability, transparency, simplicity and unity.

That way we might figure out for ourselves what an 'Agile Company' really means.

Value 1: Adaptability

  1. How quickly can your company respond to a compelling product from a competitor?
  2. How quickly can you evaluate and implement change requests from your customers?
  3. How quickly can you implement new (government) regulations?
  4. How quickly can you and your customers adapt new proven technologies? Or get rid of deprecated ones?
  5. How easy is it to change the planning for your future product portfolio? And for your current work?

Value 2: Transparency

  1. Do you know how your company is doing financially? What makes most money? What the cost structure is?
  2. Do you know the prospects your company approaches? And what you can do to help in that process?
  3. Do you know the return on investment for your products? What products are doing great? And which aren't?
  4. Do you know what the other teams in your company are working on? And how they are doing?
  5. How open are you in your communication with your customers?

Value 3: Simplicity

  1. How easy is it to jump start new competent people in your teams?
  2. How easy is it to visualize your products architecture? Visualize integrations with other products?
  3. How easy is it to explain in 2 minutes what you do for a living? What your company does?
  4. How much training do your end-users need to work with your products seamlessly?
  5. How easy is it to deploy new versions of your products?

Value 4: Unity

  1. Do you feel all the teams in your company are working to the same overall goals and vision?
  2. How high is the level of colleague finger pointing when something bad happens? Or do they jump in to solve the issue?
  3. Are team, management and stakeholder goals aligned?
  4. Are you helping your customers to achieve their goals?
  5. How high is the general one-for-all / all-for-one feeling?

With these kind of questions you should be inspired to help your company becoming a more agile one.

If you have great questions that should be in this list, please contribute.

Making apps that don’t suck: mind map

Last weekend I really enjoyed watching an InfoQ presentation on Making apps that don’t suck (thx to Nick for ‘making’ me watch it).
During the talk I’ve made a mind map and would like to share it (click to enlarge):
Making_apps_that_dont_suck
And if you would like the XMind format, just ask.
We should all do effort in making apps that suck less, because “The world already has enough crap” like the presenter said.