Summary: In today’s always-changing technology landscape, agility trumps size. Your organization’s ability to adapt to changing trends is critical to your success. The problem is, many still struggle with bottlenecks which hurt their agility. In this article, we explore one common bottleneck, and a few ways to address it.
Move quickly.
Do more with less.
Increase agility.
Every business aims for these goals. As technology evolves at an increasing pace, these goals become more important than ever. Agility is now the name of the game. How quickly can your business adapt to change?
Forrester sums it up nicely in this article: “In a world rife with change, dominance is fleeting; only agility creates sustainable advantage. As we move forward, the market must put a premium on agility and companies must measure it along with other key metrics.”
The problem is, most businesses still struggle in this area. They don’t move quickly. Their organization is filled with bottlenecks that hold them back.
What are these bottlenecks?
While I won’t get into every bottleneck in this article, let’s focus on of the more important ones: The application development bottleneck. It’s a problem facing many companies. Application development efforts cannot meet the business demands.
This is a problem for a couple of important reasons. First, it slows down the business. If the business must wait around for solutions, they’ll struggle keeping up with the competition. They can’t react to change as it happens.
Second, it drives business users to other options. If business users wait weeks or months for requested applications, what will they do? They’ll start opting for readily available third-party solutions–a growing problem known as “Shadow IT.”
So, how can you address this problem? Today, let’s explore just a few ways you can reduce the application development bottleneck.
1. Start with communication
One of the easiest ways to reduce development bottlenecks has nothing to do with development at all. It starts with communication.
Unfortunately, this is one of the most common problems–for both sides. Users expect developers to understand what they want, despite giving vague requirements. Developers assume they know what the user wants, without truly understanding their goals.
The result of this communication barrier: The project takes much longer than expected. How many hours are wasted while developers create applications that the users/customers don’t want or need? How many hours are wasted because the users aren’t involved throughout the entire process?
“The craft of business analysis has degenerated into requirements writing and management in many companies,” explains Mike Russell, strategic consultant and best-selling author. “GIGO (Garbage In,Garbage Out) still applies to application development. If businesses don’t make an effort to truly understand who the customers are and what they need, rather than basing products soley on internal thinking (“facts) about what people think customers need, then applications development can speed up 1,000 times and still be a waste. The initial understanding should also be treated as an assumption and tested by market feedback.”
2. Create a roadmap
Let’s take the last point one step further. Communication isn’t just about having meetings to gather requirements. It goes beyond keeping the users in the loop throughout the process–though these points are very important to your project.
Communication also involves setting clear expectations. Users must understand what they’re getting, when they’re getting it, and how mid-project changes will impact the delivery date. They must have a clear roadmap.
“The bottleneck most businesses face is that they try to roll out every application to meet an enterprise standard of development while the solution they’re developing may not be proven,” says John Geletka, EVP of Digital Strategy at Duffy. “The problem is on both sides. More modern forms of development such as prototyping and the development of a minimum viable product are either ignored or bloated by the app team and on the business side, there’s often have a false sense of the outcomes of modern product development. Businesses expect the entire end solution to be perfect, rather than a tool they can learn from and build on. On the IT side, bloat is more of a problem than ignorance. Too often does a simple mvp become a complete solution with complex security requirements. So, how can businesses reduce the bottleneck? One good way is to build a roadmap, that accommodates a lot of change, I know this sounds like a ton of work, but it’s actually simpler than you think. Outline the goals, the audience, the tools and define the questions that need to be answered in an MVP. Start sketching out the product and figure out one feature than can be build fast and tested. Build a prototype, and get that in front of users. Image based prototypes are fine, but plan for something with real data. Find a way to fail fast or at least learn something.”
3. Keep it agile
In the past, businesses used a “waterfall” approach to application development. They gathered requirements and then built the entire application to fit those requirements.
The problem with this method: It lacked communication throughout the project (see point #1). If the finished application didn’t meet the customer’s expectations (which was frequently the result), all of those development hours went to waste.
To avoid these problems, many developers have adopted an agile approach. It involves short development cycles, with feedback from the customer throughout the project. In this way, the developers ensure that they’re not going down the wrong path, and can deliver the project faster.
“Employ Agile development methodology with continuous deployment,” says Natalie Kaminski, Founder and CEO of Nika Consulting Group. “We plan two-week sprints with our clients based on their immediate business needs. As we complete assignments, we deploy them into production without waiting for the entire sprint to be complete. This ensure that we work on the most pressing items and we deliver them quickly.”
4. Prioritize requests
In this book, “The War of Art: Break Through the Blocks & Win Your Inner Creative Battles,” Steven Pressfield states, “The Principle of Priority states (a) you must know the difference between what is urgent and what is important, and (b) you must do what’s important first.”
That statement very much applies to modern application development challenges. For many businesses, the application development bottleneck starts with a lack of prioritization. It’s not that there’s a bottleneck, it’s that high and low priority projects are treated equally. As explained below, your organization’s success depends on how well you prioritize your finite resources.
“Application development speed and capacity are usually NOT the issue,” says Russell. “The issue is that the business users’ requests are not prioritized and valued such that priorities are established and existing capacity is dedicated to higher value work, yielding better use and ROI of scarce development time. Every business has finite resources. If benefits/value are not established, then there is no way the business can rationally make decisions about how to use scarce resources, especially application development. Without valuation and associated prioritization, priorities are usually established by politics and the infamous “who yells the loudest” methods. Also,there are no curbs on “business demands” because no one knows what is reasonable.”
5. Give your developers the right tools
“Anyone facing a bottleneck in their companies’ app development pipeline needs to at least consider utilizing a RAD (Rapid Application Development) platform,” says Chandler Dunklin, Business Analyst at Clutch. “RAD platforms allow companies to quickly develop and deploy any number of apps from a unified platform.”
It’s a problem I see far too often. In an effort to save money, companies give their developers inadequate tools (or none at all). Then they wonder why there’s a development bottleneck.
In reality, any money saved by avoiding tools is lost through inefficiency. The right tools can not only improve productivity, they will also fill gaps in the developer’s skillset–letting them accomplish more than they could coding from scratch
The fact is, with all of the available frameworks, tools, and open-source projects available today, building an application from the ground up is impractical. Instead, look for libraries you can include in your project, or other tools to speed up the development process.
6. Adopt (controlled) citizen development
Driven by the need for faster solutions and combined with the rise of easily available software (and tech savvy workers), citizen development has grown in popularity over the last year.
What does it mean? As defined by Gartner, “A citizen developer is a user who creates new business applications for consumption by others using development and runtime environments sanctioned by corporate IT.”
For example, it means that anyone–from HR managers, to business analysts, to salespeople, and everyone in between–can develop their own applications using IT-sanctioned development software.
Now, this doesn’t mean that your end users can create very complex applications all by themselves. It also doesn’t mean that you give your end users free run of your databases without any restrictions.
It simply means that users have the tools they need to create basic applications on their own. It doesn’t completely eliminate the development burden from IT, but it lessens the load. It gives the IT department more freedom to focus on mission-critical development projects, and reduces the overall bottleneck.
Summary
Now, these are just 6 ways to reduce the development bottleneck, but the list could go on. If you would like to add anything to this list, I’d love to hear it. Feel free to share in the comments.
Nice list, have to say I’ve experienced many of these, but not all. I have some to add:
– Hardware : Make sure your RAID controllers are performing optimally. I ran into an issue where the battery on the RAID controller had drained out and even though the RAID controller was not showing as being down, it severly degraded performance because it stopped using the onboard cache
– DB : Make sure your logs are being written to a different disk subsystem than your data. Helps improve performance and recovery process