3 Ways ENVI & IDL Contribute to Successful Agile Product Development
Our engineering team has been using an Agile Software Development philosophy for a number of years now. So, we are excited to see our customers demand Agile methods to get better results faster. Building next-generation architectures for GEOINT analytics requires greater productivity and responsiveness than ever. One recent example is the eXploit Program at NGA.
As system integrators respond to programs like eXploit, they'll need to demonstrate how they will use an Agile process to rapidly deliver web-based software applications that satisfy a variety of complex GEOINT exploitation problems. They will also need to show how their development methodology is flexible enough to rapidly adapt to changing missions so that new GEOINT solutions can be inserted as fast as warfighters need them.
When it comes to rapid capability development and quick reaction to changing needs, ENVI and IDL, represent real value. There are three ways I see them contributing to successful product development using Agile.
First, ENVI contains a robust library of image processing routines that form the building blocks for more complex algorithms and workflows. Each of these routines would take days or weeks to develop with traditional languages like C or JAVA. With ENVI, you're not starting from scratch to build foundational components like file format readers or tools to perform basic raster management like subsetting, reprojection and calibration. The ENVI library also contains robust methods for analyzing multi-dimensional data sets to extract unique signatures and locate features of interest. These building blocks allow developers to focus on solving intelligence problems instead of spending their time in the weeds recreating what already exists. ENVI can get you out of the starting blocks quick and showing real progress in your first few development sprints.
Second, ENVI exposes these building blocks through a user friendly application programming interface (API) we call ENVITask. ENVITask provides the programmer with a uniform and consistent method for executing analytical processes. ENVITask is also self documenting which minimizes the need for a developer to consult the API documentation to discover what parameters the routine expects as inputs and produces as outputs. Using ENVITask, developers will spend less time iterating on code to resolve bugs or validation errors. They will also produce clean, easy-to-read, code that can quickly be modified and extended by the next person. This is important to Agile development as multiple programmers may touch the code as the program evolves.
Third, complex algorithms developed, validated and tested in the ENVI desktop development environment can easily be published as web services. Since ENVITasks share a common and consistent set of parameters and data types, it is straightforward for our ENVI Services Engine software to recognize the task and automatically generates a REST endpoint accessible by web clients. This provides great flexibility as tradecraft can be designed and perfected by small teams in the desktop environment but quickly deployed to benefit enterprise users as web applications.
Have you developed a software application using ENVI or IDL? Please chime in here to share any advantages you found with regard to your software development process.