The Right Dev Tools for the Job

Three Software Development Tools Worth Considering

 

Think of a software developer’s toolkit as your handyman’s tool belt. There are many types of wrenches and screwdrivers, and in some cases even the “wrong” tool will ultimately get the job done. The problem is that it’ll take longer and might not be built as sturdy as you would like. The same goes for software development tools. You’re not likely to dictate to your handyman what tool they need to complete a job, and similarly you shouldn’t hamstring your engineers by dictating the software development tools they use to build your software.

Digital Foundry is constantly evolving and adding more software development tools to our belt. We evaluate your project and determine which tools will make us more efficient on your project, thereby getting you more software features developed more quickly. Following are just a few tools Digital Foundry has in its toolbelt.

 


 

NPM 

npm
Source: http://www.braveterry.com/

What is it? NPM (Node Package Manager) is the default package manager for the JavaScript runtime environment Node.js. It is the largest ecosystem of open-source libraries in the world and falls under the Artistic License 2.0.

Why Digital Foundry uses it: NPM promotes modular development by using small building blocks to solve one specific problem well. Developers then continue to build and use that component as a stepping stone to work through the larger challenge. It allows our developers to reuse and share code within the team and/or with developers across the world, thereby making us more efficient.

How can it help you? Developing software in a modular fashion and reusing code whenever possible allows your development team to work more efficiently and provide more functionality for your end user. NPM also offers many options for front-end packaging in an attempt to speed up the user experience, so not only will your users see more functionality in your web application, but it will be perform better.

Great, but aren’t there risks? There are. NPM is a public repository, and as with anything publicly available on the Internet, there is no guarantee that someone will not attempt something malicious with a package. Identifying security vulnerabilities and keeping packages up to date can be challenging, but being diligent with security monitoring and frequently checking package versioning can help mitigate these risks. It’s also important to be aware of the dependencies of any package that you select and what licenses those dependent packages use.

Learn more @ at http://www.npmjs.com

Webpack

webpack Module Bundler
Source: https://camo.githubusercontent.com

What is it? Webpack is a relatively new front-end bundler for JavaScript that packs multiple modules into a few bundled assets. It is an open-source project that falls under the MIT license.

Why Digital Foundry uses it: Websites are evolving into web apps that benefit from bundling. DF uses Webpack because it has significantly improved on previously existing module bundlers.

How can it help you? Webpack increases the efficiency of your software by allowing developers to split bundles, package static assets, and load content asynchronously. It’s also possible to use Webpack as a build tool, thereby removing the need for your development team to have a separate build tool, all while providing a consistent build process to ensure quality. The big winner though, is the end user, as Webpack decreases load times by allowing the user to wait to download items only once they’re required.

Great, but aren’t there risks? Not really. The one complaint we’ve found is that since Webpack is relatively new, it doesn’t have the depth of documentation that some of the more mature projects have.

Learn more @ http://webpack.github.io/docs

Gulp

Gulp
Source: https://github.com/gulpjs/artwork/blob/master/gulp-3x.png

What is it? Gulp is a fast, intuitive streaming build tool built on Node.js. The open-source community supports gulp and it falls under the MIT license. Gulp has gained significant market share in the past two years and continues to grow. Many in the community now say gulp has “officially” overtaken grunt as the preferred build tool.

Why Digital Foundry uses it: Digital Foundry used to use grunt. We no longer do, because from an engineering perspective gulp is preferable since it promotes “code over configuration.” Gulp’s file is written in pure JavaScript and doesn’t require any duplicate configuration values (as does grunt). Speed is also a large factor for our team using gulp because file manipulation and management is processed in memory, removing the need to create temporary files.

How can it help you? As a product owner, your software developers are able to work more quickly thereby, theoretically, providing you more output. Also, by providing a consistent build process, gulp can help improve the quality of your product.

Great, but aren’t there risks? There is some  risk but it can be overcome. Gulp requires plug-ins to call other tools, and in some instances a gulp plug-in may not exist for the tool you’d like to use. Others may have insufficient documentation for your required use case or only expose a portion of the API you need. Also, if a particular tool you are using is no longer commonly used, the plug-in may no longer be supported.

Learn more @ http://www.gulpjs.com