Some say that Magento is horrible to work with. I say they are wrong. Magento is one of the most well designed pieces of software I’ve ever seen. Complete inversion of control. Awesome extendability. Sweet seperation of concerns. Proper use of classes, it’s all there.
But… It’s under documented, and it has a few core concepts you have to understand before it makes sense.
Recently I need to make a new shipping method for myhomefurniturestore.com. Fortunatly for me, magentomagick had a great article that had instructions start to finish (except for two details that are mentioned in the comments) for just such a task.