In software development, there’s a concept called “future-proofing.” As the name suggests, it’s a strategic approach to designing and building software applications focused on adaptability and longevity. It involves anticipating and mitigating potential challenges that may arise over time, such as evolving technology trends, changing user requirements, and unforeseen issues. In doing so, software developers can also ensure they’re ready to implement emerging opportunities to improve their technology stack and user experience.
This year’s Peer Review Week theme, “Peer Review and The Future of Publishing,” got Scholastica’s co-founders thinking about how we’re working to future-proof our peer review software and support efforts to future-proof the complex and growing ecosystem of scholarly communication tools and technologies more broadly. Here’s what they had to say.
Cory Schires, Scholastica Co-Founder and CTO
Future-proofing software requires, first and foremost, a solid technological foundation. That means following design conventions, updating libraries, writing documentation, and doing everything possible to avoid software rot.
But let’s assume your vendor is following these general principles. What can we do additionally to future-proof the scholarly ecosystem?
It’s essential that we focus on future-proofing our data rather than our software. I think about future-proofing data as a multi-step endeavor:
- At the most basic level, vendors must provide publishers, journals, and individual scholars direct access to their data (e.g., data export, API, etc.).
- Going one level deeper, it’s critical that vendors provide data in a conventional, industry-standard format (e.g., JATS) — this enables interoperability.
- Next, we need vendors to ensure data is as rich and accurate as possible — this means, for example, including unique PIDs (e.g., ORCiD, DOIs, etc.).
- Finally, vendors must share that data in as many locations as possible (e.g., Crossref, DOAJ, etc.) to help ensure it will be available to future generations.
At Scholastica, we certainly do all these steps – but there’s always room to improve. For example, we’re currently adding the ability for authors to authenticate their ORCiD IDs. With this in place, authors can not only input their ORCiD IDs but also formally authenticate that the ID belongs to them. That’s one small but very concrete example of how vendors can strengthen the ecosystem by ensuring data is accurate and complete.
Brian Cody, Scholastica Co-Founder and CEO
When I think of “future-proofing,” I think of risks, including the risk of designing software in a way that makes it harder to build what’s needed down the road and the risk of building more slowly now to maintain potential future flexibility that might not be needed or used. Here are a few strategies for balancing those risks:
Consider future proofing in your development process
Future proofing can be a discrete project that a company works on to identify and execute opportunities for making their software more nimble and adaptable. But it can also be integrated into the day-to-day development process. Much in the way other benefits like speed and ease-of-use and leveraging existing architecture are considered as code is written, future proofing can be introduced throughout the code development process, including during planning meetings and during code review.
Some examples of questions that we ask at Scholastica to support future proofing include:
- What have we heard from customers that might be coming down the pike that we could potentially include in this feature without it also introducing too much feature creep?
- Are there any low-hanging fruit opportunities to better future-proof this area of the code while we’re in there?
How expensive would it be time-wise to build a more future-proofed version of this? - Are there any dependencies we could remove so there’s less to maintain in the future?
Utilize an Agile approach
Taking an Agile approach to software development can itself help future-proof software. Compared to the waterfall method, where specifications are defined at the outset, often years ahead of product delivery and hence far removed from future conditions, an Agile approach utilizes short and frequent software development iterations to deliver value. Agile allows new information to enter the development process as each iteration begins, so, in a way, it makes the future become part of the current development process little by little. An Agile approach also allows teams to learn as they build and encourages re-evaluating priorities and approaches over time, putting them in a flexible and adaptable position. An Agile approach enables you to hedge your bets and not overcommit far in advance to a particular path that might not resonate well with future conditions.
Focus on integrations and interoperability
We’ve seen an explosion of software tools leveraging LLMs such as ChatGPT, and this points to a critical way to future-proof: ensure your software design will allow you to integrate new tools quickly and without having to build them all yourself. Assuming your software will need to move information out of your platform and integrate with third-party services is a pretty safe bet nowadays.
At Scholastica, in addition to following Agile development processes, we’re working to optimize our software’s ability to integrate with and support the flow of information between third-party tools and systems. In doing so, we’re able to provide our customers with more immediate value while making our software more flexible and adaptable, which is at the heart of future proofing.
Wrapping it up: Future-proofing is a community activity
By its nature, software future-proofing cannot happen in a vacuum. It requires constant vigilance of, participation in, and cooperation with the latest technical and industry standards.
For team Scholastica, this year’s Peer Review Week theme is a welcome reminder that our software future-proofing strategy is a community activity. It involves listening, responding to, and collaborating with our customers, integration partners, standard-setting bodies, and countless other scholarly communication stakeholders as we work toward the collective vision of a “research nexus.”
With that, we want to open this conversation to the research community. What opportunities do you see to apply future-proofing strategies in scholarly publishing software development and even that of standards and best practices?
We invite you to share thoughts and questions in the blog comments below and on social media. You can find Scholastica on LinkedIn, X (formerly Twitter), and Facebook. And be sure to follow this year’s Peer Review Week hashtags: #PeerReviewWeek and #FutureofPublishing.