Behind InVEST: Software Engineering for Nature

My name is Doug Denu and I’m the software team lead at the Stanford-based Natural Capital Project. I get to help grow and work with our team of six other talented software engineers on our open source software – including InVEST, our flagship ecosystem service application. We collaborate with NatCap’s science team to make their innovative work accessible and replicable around the world. InVEST now includes more than 20 models for mapping and quantifying ecosystem services, so their value can be factored into decision-making, and gets more than 20,000 downloads/year. Like any useful software it requires constant care, and our community of users are always providing helpful feedback so we can keep making the software better.
Back in the day: developing InVEST as a standalone application
I started with NatCap in 2011, so I have been fortunate to see a lot of innovation over the years. When I first started, InVEST was developed with ArcPy in ArcGIS and ran as an ArcGIS Toolbox. It was very important that our work be free and open source, and for our users, needing an ArcGIS license was a barrier to running InVEST. The ArcGIS environment also hindered what we could do with our models down the road. So we were charged with distributing InVEST independently, as a standalone application, to better reach users and to be as open and accessible as possible. It was an exciting place to start because our team didn’t have a background in GIS (geographic information systems), and were really learning how to develop a geospatial software application as we went. We ultimately settled on developing InVEST as a Python package with a desktop user interface component—but there were a lot of fun API (Application Programming Interface) iterations and algorithm developments in those early days.


Implementing the next generation of our software platform
These days, I’m really excited about our new software platform initiative, which aims to better help us meet the demand we’re seeing for ecosystem service data products and InVEST. More and more people are interested in running complex ecosystem service analysis on a regional or global scale with higher resolution data. InVEST has for a long time been a desktop software and although we have a Python API, it’s not out-of-the-box ready to serve certain demands we’re seeing. So we’re taking a holistic approach – from data to modeling to insights – that will allow users to incorporate InVEST and ecosystem service data into their workflows with as little friction as possible. This means everything from more easily discovering relevant data for study areas, to calling InVEST directly from your own application or to run a global analysis, to getting InVEST outputs closer to report-ready. Similar to when I started at NatCap, we’re getting to solve a suite of new and challenging problems – and that’s a fun place to be.
Engineering for sustainability
When I was in my senior year as an undergrad, I was feeling pretty panicked about what I should do next. I remember asking my advisor, and he said something along the lines of: “Well, you go to Monster.com, submit your application to 500 companies, and hope someone hires you!” Monster.com was the main job site at the time, but this was a pretty disheartening answer. I had just spent four years in college feeling like my opportunities were endless, and was now faced with working at large company X, developing widget Y, which for me, just didn’t excite me. Unfortunately at the time, it was pretty slim pickings to find a software engineering position outside of the traditional tech and hardware space. But through a series of fortunate events, I found my way to NatCap early on. As software becomes more integrated into everything we do, I think there will continue to be more opportunities for software engineers to work in sustainability, the environment, and fields that support those.

There are a few things that excite me about developing software for sustainability. The first is that the problems we’re trying to tackle are extremely complex and require diverse expertise. It’s amazing to work with hydrologists, economists, marine biologists as well as the local stakeholders trying to make real changes in their communities and regions. The second is the ability to bring software engineering to a space where you wouldn’t typically find software engineers. The diverse group of people I just mentioned have so many great ideas that we’re able to bring to life through software. Working with them and seeing them get excited about what is possible is very rewarding.
I grew up in rural Vermont, camping, hiking, and spending the summer on Lake Champlain fishing with my grandfather. Being outside in nature was a big part of my identity growing up, and continues to be. I’m extremely fortunate to work in a place where my efforts are hopefully, in some small way, helping to ensure my kids can have those same experiences.
The Natural Capital Project is based out of the Stanford Doerr School of Sustainability and its Woods Institute for the Environment, and the Stanford School of Humanities and Sciences’ Department of Biology. It is a global partnership of interdisciplinary researchers, professionals, and leaders: its core partners are the Chinese Academy of Sciences, the Royal Swedish Academy of Sciences, the Stockholm Resilience Centre, the University of Minnesota, Natural Capital Insights, The Nature Conservancy, and World Wildlife Fund. NatCap’s work is co-created and implemented through a network of more than 500 collaborators worldwide.