What is better: do it yourself or use available package?
When you are developing a new Rails application, is it preferable to build your own solutions or use third party open source packages instead? 

For example, I could use Devise to implement my app's authentication, but I could also do it myself since it is not really that complicated. I could use RMagick, but if all I need to do is resize some images I can integrate with ImageMagick myself.

The benefits for using the available third party packages are easy and speedy development. But the benefits of rolling my own solution is a more thorough understanding of of what is going on in my application, and I also end up with a solution that is optimal for my application, instead of having to bend my application to use the package.

Also, I am worried that when using a bunch of third party packages, upgrading may become difficult. If they don't don't update themselves in sync, I may be faced with version incompatibilities and other headaches.

Obviously the packages I have mentioned are popular and widely used. Are my worries about version compatibility unfounded?

Thanks

Dave I
What is better: do it yourself or use available package?
===

When you are developing a new Rails application, is it preferable to build your own solutions or use third party open source packages instead? 

For example, I could use Devise to implement my app's authentication, but I could also do it myself since it is not really that complicated. I could use RMagick, but if all I need to do is resize some images I can integrate with ImageMagick myself.

The benefits for using the available third party packages are easy and speedy development. But the benefits of rolling my own solution is a more thorough understanding of of what is going on in my application, and I also end up with a solution that is optimal for my application, instead of having to bend my application to use the package.

Also, I am worried that when using a bunch of third party packages, upgrading may become difficult. If they don't don't update themselves in sync, I may be faced with version incompatibilities and other headaches.

Obviously the packages I have mentioned are popular and widely used. Are my worries about version compatibility unfounded?

Thanks

Dave I