8 Tips for Choosing the Right Software Development Library
Need a new dependency?
First, if you are a developer, I assume you know what a dependency is. For our followers who aren’t coders, I’ll explain. A software dependency is an external standalone library. It may be a single file, or be comprised of multiple files and folders that are organized into packages. A good example would be that a messaging application has an encryption package as a dependency that allows it to function correctly. You can think of them sort of like building blocks or the pieces of a lego set.
So, you need a dependency. I have 8 tips for you. Follow this advice and you’ll not only find the right one for your needs, but will save yourself the time and headache of updating your application in the future or troubleshooting bugs.
8 tips for choosing the right software library
- First, what is the maintenance status of the library? If you are poking around Github and notice that the last update was 2 years ago, it is probably not the right choice. Checking for a library with recent updates is always a best practice because it ensures that the library is undergoing maintenance and is likelier to be supported longer.
- Next, check who is behind the library. Is the source reputable? Similar to making a consumer purchase you want to go with a company with a good reputation for maintaining the library. If you want to think about it in terms of car shopping, I would suggest purchasing a Honda or Toyota over a brand such as Jaguar which is known to be in the garage often.
- User Adoption is another key indicator of a good choice. There is a reason that we all run Android or iOS today. Think about a smartphone. Would you choose to purchase a device that did not run two of the best known platforms today? Think about the hassle of day to day tasks such as downloading a new application, or playing music over your car’s stereo. Which leads me to my next point:
- Community: High levels of user adoption mean that there is a community out there that can help when you run into trouble. Case in point, last week at a Hackathon we ran into trouble with a bit of code. The community for the library we were using has a Discord server where you can ask questions. Within 10 minutes a community member chimed in with a working solution. Developers tend to love solving problems, so if you run into a problem there is always someone to ask if you’ve chosen a library with a large user community.
- Documentation: Think about my lego example above. Would you purchase a large Lego set if you knew it did not come with the instructions? How would you know what pieces went where? While you might be able to figure it out on your own with a smaller library, it’s essential to have good documentation for larger applications.
- Licensing & Cost: In the real world, it always comes down to how much you will need to spend and how you can use what you buy. Would you purchase a new video game if you could only play it between the hours of 5-6am on Sundays? The same is true of a library. It may make sense to find a library that is Free & Open Source so you are free to do whatever you want compared with a library that is costly or has restrictions on its use.
- Is extensible? Creating a new application or program is a journey, not a destination. You will always need to provide updates based on changing technology. Just the other day I stayed in a hotel where there were alarm clocks that had an older style 30 pin Apple dock connection for an iPod or original iPhone. Your users will ask for new features and functionality. Device finding functionality is something we take for granted today but was a feature released 3-4 years after the first generation iphone. Hardware and software changes in the future mean your application will need to shift over time. Extensible libraries will help you keep up with the needed updates you will need to make in the future.
- Size: Depending on your application, you will want to consider the strategy of the size of the library you choose. Keeping many small libraries updated can be a big task. The bigger the library, the more processing power is needed to load the full library. The biggest driving factor in choosing whether to use multiple smaller libraries vs fewer larger libraries should be on your tool’s roadmap. Are the features and functionality related today? Are they going to become so in the future? Wise planning at the ground level is something to consider when first developing your application.
So there you have it. Follow this advice and you will be able to find the right library that fits your needs. If you want to chat about development tips and tricks, feel free to reach out to me directly!