How to overcome the biggest challenges in software R&D

“Every business is a software business.” Those words were first said by software-quality pioneer Watts Humphrey well over a decade ago. At the time it was a bold statement. Today, it’s table stakes.

No matter your industry, you likely use or produce some combination of interactive websites, mobile apps, digitized services, software-enabled products, and even branded software applications across your business operations. You may also create custom software to optimize your operations and deliver customer-facing capabilities.

This reality places a premium on effective software research and development (R&D) processes. That’s true in a strong economy when resources might not keep up with enterprise growth. It’s even more pertinent in periods of economic weakness when you need to do more with less.

Yet only 25% of CTOs say their development investments are meeting expectations. Reasons behind this can stem from unclear software road maps, uncertainty around priorities, opaque project activities, and poor development execution, the report says.

To address these issues, organizations need a solid understanding of software R&D challenges — and strategies for turning those issues around. The payoff will be improved engagement and productivity for technical teams, as well as better efficiencies and outcomes for development projects.

Understanding business-critical software R&D demands

Software development can be expensive. That’s true not just because technical talent is costly to attract and retain. It’s also because building and maintaining a development capability takes time and effort. Development mistakes are time-consuming to fix. And if software glitches cause services to go down, the lost revenue can hit your bottom line.

So, it’s business-critical to get development right. To achieve that goal, you need to consider four key development challenges:

  • Consistency. Organizations might follow best practices on a single project or with a single team, but they often can’t scale across projects and organizations. You need to make sure every team on every project is executing to the same high standard.
  • Reliability. Getting things right most of the time is no longer good enough. The goal should be to execute each step in the right way at the right time, every time. For that, you need tools and methodologies to track, enforce, and scale.
  • Repeatability. Team members come and go. Organizational structures change. Those realities can wreak havoc on projects and on support and maintenance. You need robust roles, processes, and tools to ensure success is repeatable and services stay up and running.
  • Visibility. Finally, a huge development challenge is the lack of transparency. Project stakeholders – from engineers to project managers to business decision-makers – need clarity on best practices and visibility into who owns project steps and where projects are in the pipeline. With the right project management tools, managing stakeholders effectively is nearly impossible.

Looking to boost productivity? Start by enabling technical collaboration

Achieving consistency, reliability, repeatability, and visibility comes down to how you enable your technical and operational teams — and in particular, how you enable them to collaborate.

You need to optimize every phase of the development lifecycle: plan, code, build, test, release, deploy, and monitor. You need to engage a broad range of people — engineers, designers, programmers, quality managers, project managers, and so on — with many different skill sets. And you need to maintain operating procedures across potentially dozens of teams and projects.

All those objectives involve collaboration. And there’s really no way to operationalize and enforce those goals without an online collaboration tool designed for technical and operational teams. Many tools have collaboration built into the interface, which can often lead to greater miscommunication and gaps in collaboration due to the nested setup of each channel and project. Updates made to one item won’t necessarily carry over across projects, limiting transparency and creating silos.

An effective collaboration platform enables a single-pane-of-glass approach to software R&D. It allows different stakeholders with different skill sets and different organizational cultures to interact — in a single place and as a single unit. Look for a project management tool that provides:

  • Tool integrations. Built-in tool integrations enable team members to use their role-specific tools — Jira for tickets, Asana for ops, Splunk for analytics, and so on — but access them in a single project context. With tools centralized in your collaboration platform, you can avoid the effort of constant context-switching.
  • Shared playbooks. Centralizing handbooks and checklists is a great way to enforce and operationalize best practices. Built-in, customizable playbooks provide digitized, automated checklists that help ensure steps aren’t missed and mistakes aren’t made. When R&D teams release business applications, they run through a checklist of more than 30 steps — Did they sign the build? Did they upload the build? — that saves time, avoids costs, and keeps everyone on the same page.
  • Topic-based messaging. Centralized, customizable channels should organize real-time and asynchronous conversations by projects or topics. That enables all team members to surface relevant content from their systems of record, engage in context-based discussions, and easily track project progress.

5 steps to get the most out of your collaboration platform

While good online collaboration tools will make implementation straightforward, you can optimize outcomes by following these steps:

  1. Inventory roles, tools, and projects. Take inventory of your development ecosystem, including roles and teams, the tech stack that supports those stakeholders, and existing and planned projects.
  2. Map workflows. Assess how your teams work naturally together. Pull in systems of record that teams are already using, like Jira and GitHub. Your collaboration platform should mirror and enhance the workflows that already work well for your organization.
  3. Operationalize best practices. Take advantage of automated playbooks to encode and operationalize best practices throughout teams and projects. This is where a collaboration platform can deliver outsized results.
  4. Establish reporting. Figure out your reporting structure. You might have weekly staff updates, monthly business reviews, and quarterly reporting to the board. Your platform should enable you to layer in visibility throughout the organization.
  5. Continually improve. Once you’re up and running, continue to look for opportunities for improvement. Are you sharing the right content with the right people at the right time? Can you fine-tune playbooks to achieve additional value?

The right collaboration platform will enable you to tangibly improve returns on your development investments. It will help you avoid mistakes — including those errors of omission that typically get overlooked. It will surface your systems of record and unlock the value of previously hidden data. And it will become a project management tool that team members love to use — leading to smoother software R&D processes and better development project outcomes.

Want to learn more about how the right collaboration platform can accelerate productivity for your software R&D organization? Learn more about how Mattermost helps your team move faster and more effectively.

Read more about:

developer productivity software development
mm

Chen-I Lim is Vice President of Product at Mattermost. Chen is the architect and co-creator of Focalboard, an open source alternative to Trello, Notion and Asana now integrated into the Mattermost suite and available to over 100,000 organizations worldwide. Chen holds an MSEE and BSEE in Electrical Engineering from Arizona State University.