Determining Requirement Feasibility
Complete the full lesson to earn 25 points
Work through each section, then tap “Mark as Complete” on the last one.
Determining Requirement Feasibility: A Deep Dive into Fit-Gap Analysis
Introduction: Why Feasibility Matters
In the world of systems development and solution architecture, the most common reason for project failure is not poor coding, but poor decision-making during the initial discovery phases. Before a single line of code is written or a configuration setting is toggled, you must determine whether the business requirements you have gathered are actually achievable within the constraints of your environment. This process is known as determining requirement feasibility, and it is the bedrock of a successful Fit-Gap analysis.
Fit-Gap analysis is the structured process of comparing the functionality of a proposed solution (often an off-the-shelf software product or a legacy system) against the specific requirements of the business. When we talk about "feasibility," we are asking a series of hard questions: Can this system handle the volume of data? Does the technical architecture support the security protocols required by the business? Is the customization cost-effective, or are we better off changing the business process to match the software?
Understanding feasibility is critical because it prevents the "scope creep" trap. If you promise a client that a system can do something that is technically impossible or prohibitively expensive, you set the project up for failure from day one. By mastering the art of feasibility analysis, you protect your team’s time, your client’s budget, and your organization’s reputation. This lesson will guide you through the technical and practical steps of evaluating requirements, ensuring that every feature you commit to building is grounded in reality.
The Core Dimensions of Feasibility
When evaluating whether a requirement is feasible, you cannot look at it through a single lens. You must analyze the request from four primary perspectives: Technical, Operational, Economic, and Schedule-based.
1. Technical Feasibility
Technical feasibility is about capability. Does the system have the underlying architecture to support the requirement? For example, if a client asks for real-time data synchronization across three different global data centers, you must evaluate the latency constraints, the bandwidth limitations, and the conflict resolution protocols of your chosen database technology. If the technology stack cannot handle the load, the requirement is technically unfeasible.
2. Operational Feasibility
Operational feasibility assesses whether the system will work within the context of the user’s daily workflow. Even if a feature is technically possible to build, it might be operationally disastrous if it requires six extra clicks to complete a simple task. You must consider user adoption, training requirements, and whether the proposed solution actually solves the business problem or just moves the bottleneck to another part of the organization.
3. Economic Feasibility
Economic feasibility is the calculation of Return on Investment (ROI). It involves comparing the total cost of ownership (TCO)—including development, maintenance, and training—against the projected value the feature provides. If a requirement costs $50,000 to implement but only saves the company $2,000 per year in labor, it is economically unfeasible, regardless of how "cool" or technically impressive the solution might be.
4. Schedule Feasibility
Schedule feasibility is the most frequently ignored dimension. Can we build this in the time we have? Many projects fail because they underestimate the time required for testing, bug fixing, and user acceptance. If a requirement is technically sound but requires six months of development in a project that only has a three-month runway, it is not feasible.
Callout: The "Build vs. Buy" Decision A central part of Fit-Gap analysis is deciding whether to modify the software (customization) or modify the business process (configuration). A "Fit" means the software does what is needed out-of-the-box. A "Gap" means the software lacks the capability. When you find a Gap, your feasibility analysis should always start by asking: "Can the business change their process to fit the software?" rather than "Can we code a change to the software to fit the process?"
Conducting the Fit-Gap Analysis: A Step-by-Step Approach
To perform a thorough Fit-Gap analysis, you need a systematic method. Do not rely on intuition; rely on data and documentation. Follow these steps to ensure you are accurately assessing the feasibility of every requirement.
Step 1: Requirements Cataloging
Begin by creating a master list of all requirements. Categorize them into "Must-Have," "Should-Have," "Could-Have," and "Won't-Have" (the MoSCoW method). This helps you prioritize your feasibility efforts. You do not need to spend as much time analyzing the feasibility of a "Could-Have" feature as you do a "Must-Have" foundational requirement.
Step 2: Mapping to System Capabilities
For each "Must-Have" requirement, map it against the existing system’s capabilities. Create a matrix with the following columns:
- Requirement ID: A unique identifier for the business need.
- Requirement Description: A clear, plain-language description of the need.
- System Capability: Does the system do this natively? (Yes/No/Partial).
- Gap Type: If No/Partial, is it a configuration change, a customization, or an external integration?
- Feasibility Score: A high/medium/low rating based on the four dimensions discussed earlier.
Step 3: Deep-Dive Technical Validation
For any requirement marked as "Customization" or "High Complexity," perform a technical spike. A "spike" is a time-boxed period of research or prototyping intended to answer a specific technical question.
For example, if you need to integrate with a legacy API that uses an outdated security protocol, your spike might look like this:
# Pseudo-code for a technical spike to test legacy API connectivity
import requests
from requests.adapters import HTTPAdapter
from ssl import create_default_context
def test_legacy_connection(url):
"""
Testing the feasibility of connecting to a legacy system
that uses deprecated TLS versions.
"""
try:
# Create a custom context to allow outdated protocols
context = create_default_context()
context.options |= 0x4 # Allowing legacy TLS support
adapter = HTTPAdapter()
# Attempt a connection to the legacy endpoint
response = requests.get(url, timeout=5)
if response.status_code == 200:
return True, "Connection Successful"
else:
return False, f"Server returned {response.status_code}"
except Exception as e:
return False, str(e)
# Execute the test
is_feasible, message = test_legacy_connection("https://legacy-system.local/api")
print(f"Feasibility: {is_feasible}, Details: {message}")
This code snippet represents a practical way to prove feasibility. Instead of guessing if you can connect to the legacy system, you write a small script to test the interaction. If it fails, you know immediately that you have a high-risk gap.
Step 4: The Impact Assessment
Once you have identified the gaps, assess the impact of closing them. What will this change break? If you modify a core module to support a custom requirement, will it prevent future software updates? This is a common pitfall: building a custom solution that makes it impossible to upgrade the software later.
Common Pitfalls and How to Avoid Them
Even experienced architects fall into traps during feasibility analysis. Here are the most common mistakes and how to steer clear of them.
1. The "Yes-Man" Syndrome
Stakeholders often ask for features that sound simple but are architecturally complex. An example is "real-time reporting." To the stakeholder, it means seeing the data updated instantly. To the developer, it means complex database triggers, caching strategies, and potential performance degradation.
- Avoidance: Always push back with "Why?" and "What is the consequence of a 15-minute delay?" Often, the business requirement is not actually "real-time" but "up-to-date enough to make decisions."
2. Ignoring Non-Functional Requirements (NFRs)
NFRs—like performance, scalability, security, and maintainability—are often left out of the Fit-Gap analysis. If you focus only on functional requirements (e.g., "the user can click a button"), you might end up with a system that works in testing but crashes under production load.
- Avoidance: Include a "Performance & Scalability" column in your Fit-Gap matrix. If a requirement involves large data sets, explicitly test for feasibility under load.
3. Underestimating Maintenance Costs
A common error is calculating only the cost of initial development. However, every custom modification you add to a system carries a "tax" in the form of maintenance, regression testing, and documentation.
- Avoidance: Use a formula for total cost. Total Cost = Development Hours + (Estimated Maintenance Hours per year × Project Lifespan). If this number exceeds the value of the feature, advise the stakeholders against it.
Note: Always document the "Why" behind a feasibility decision. If you mark a requirement as unfeasible, record the specific technical or economic reason. This documentation is your best defense when a stakeholder later asks why a feature was not included.
Comparison Table: Fit-Gap Outcomes
When you evaluate a requirement, it will typically fall into one of four categories. Use this table to decide how to handle each gap.
| Outcome | Definition | Action Required |
|---|---|---|
| Standard Fit | System does it out-of-the-box. | Use standard functionality; no code required. |
| Configuration | System has a setting to enable it. | Toggle settings; document the change. |
| Customization | Requires new code or custom logic. | High effort/cost; requires business justification. |
| Workaround | System cannot do it; process must change. | Redesign business process to match system. |
Practical Examples: Evaluating Feasibility in the Real World
Let's look at three scenarios to see how feasibility analysis works in practice.
Scenario A: The Custom Reporting Tool
A retail client wants a "Dynamic Dashboard" that pulls data from five different disconnected systems and displays it in real-time.
- Technical Feasibility: Low. The latency between the five systems varies wildly, and there is no unified data schema.
- Economic Feasibility: Low. The cost of building a data warehouse to aggregate this information exceeds the budget.
- Recommendation: Move to a "Could-Have" status. Propose a manual daily export process as a short-term, low-cost alternative while the company works on a long-term data strategy.
Scenario B: The Legacy Integration
An insurance company wants to integrate their modern CRM with an AS/400 mainframe to fetch customer policy data.
- Technical Feasibility: Medium. It requires a middleware layer (an API wrapper) to bridge the gap between modern JSON requests and the mainframe’s proprietary format.
- Operational Feasibility: High. This will save agents 10 minutes per call.
- Recommendation: Proceed, but include the cost of the middleware development in the primary budget. This is a "Must-Have" that is technically achievable with the right tooling.
Scenario C: The Complex Approval Workflow
A manufacturing client wants a 15-step approval process for every purchase order, involving different managers based on the specific SKU being ordered.
- Technical Feasibility: High. The system supports complex workflow branching.
- Operational Feasibility: Low. This will create a massive bottleneck and slow down the supply chain significantly.
- Recommendation: Challenge the requirement. Ask the client if they can simplify to a 3-step process for items under a certain dollar value. This is a case where the system can do it, but the business shouldn't do it.
Best Practices for Requirement Feasibility
To maintain high standards in your analysis, adopt these industry-proven habits:
- Involve the Technical Team Early: Do not perform Fit-Gap analysis in a vacuum. Include your lead developers and system architects. They will spot technical blockers that a business analyst might miss.
- Use Prototyping for Ambiguity: If a requirement is vague, do not guess at its feasibility. Build a quick prototype or "wireframe" to confirm with the users exactly what they expect. Ambiguity is the enemy of feasibility.
- The "Rule of Three": For every gap you find, offer three options:
- The "Gold" option (custom coding, high cost, perfect fit).
- The "Silver" option (process change, low cost, decent fit).
- The "Bronze" option (deferred, no cost, no fit). Let the business stakeholders choose the path based on their budget and timeline.
- Maintain Traceability: Keep your requirements and your feasibility notes linked. If a requirement changes halfway through the project, you must re-evaluate its feasibility immediately.
- Focus on Business Value: Always bring the conversation back to the business problem. If a feature is "technically feasible" but provides zero business value, it is not a project requirement; it is a distraction.
Callout: The Danger of "Gold-Plating" Gold-plating is the practice of adding features that were not requested or are unnecessary, often because a developer or designer thinks they are "nice to have." This is the ultimate enemy of feasibility. Every line of code added to a project increases the surface area for bugs and the burden of future maintenance. If it isn't a core requirement, do not build it.
Advanced Considerations: Dealing with Stakeholder Pushback
One of the most difficult aspects of feasibility analysis is telling a client that their "must-have" feature is not feasible. This requires a mix of diplomacy and hard data. When you have to deliver bad news, follow these steps:
- Lead with the Data: Do not say, "We can't do that." Say, "Based on our analysis of the system architecture, implementing this feature would increase the project timeline by four weeks and introduce significant risk to the stability of the core database."
- Offer Alternatives: Never present a problem without a solution. "While we cannot implement the 15-step workflow, we can implement an automated notification system that alerts managers when a purchase order is pending, which achieves your goal of faster oversight."
- Frame it as Risk Management: Reframe the conversation from "We are saying no" to "We are protecting the project budget and timeline." Stakeholders are generally supportive of decisions that protect their investment.
- Confirm Understanding: Ask the stakeholder to explain the business impact of the feature one more time. Sometimes, in the process of explaining it, they realize the feature is not as critical as they originally thought.
Summary and Key Takeaways
Determining the feasibility of requirements is a continuous, iterative process. It begins at the project kickoff and continues until the final sign-off. By performing a rigorous Fit-Gap analysis, you transform from a passive "order taker" into a strategic partner who ensures the project is built on a solid foundation.
Key Takeaways:
- Feasibility is Multidimensional: Always evaluate requirements through the lenses of Technical, Operational, Economic, and Schedule viability. Ignoring any one of these will lead to project failure.
- Challenge the Requirement: Never assume a requested feature is necessary. Ask "Why?" to uncover the underlying business need. Often, the best solution is to change the business process rather than the software code.
- Use Data to Support Decisions: Whether it is a technical spike or a cost-benefit analysis, use empirical evidence to support your feasibility conclusions. Do not rely on "gut feelings."
- Prioritize Maintenance: Remember that the cost of a requirement includes its entire lifecycle. If a customization makes future updates impossible, it is almost never worth the cost.
- Be Transparent with Stakeholders: When a requirement is unfeasible, communicate it early and provide alternatives. Transparency builds trust, even when you have to deliver difficult news.
- Document Everything: Your Fit-Gap matrix and feasibility notes are essential project assets. They explain the "why" behind your architecture and protect the team from scope creep.
- Keep it Simple: The most successful projects are those that do the basics perfectly. Avoid the temptation to over-engineer solutions; focus on the core requirements that drive the most value for the organization.
By following these principles, you will become significantly more effective at managing project requirements and delivering solutions that are both technically sound and business-aligned. Feasibility analysis is not just a task on a checklist; it is the core discipline of successful solution delivery.
Frequently Asked Questions (FAQ)
Q: How do I know if a "gap" should be closed by custom code or a process change? A: Generally, if a process change is possible and achieves 80% of the desired outcome, choose the process change. Custom code should be reserved for gaps where the business process is a unique competitive advantage that cannot be replicated by standard software logic.
Q: What is the most common reason for a project to fail feasibility? A: Underestimating the complexity of integrations and data migration. Even if the core system is feasible, the "pipes" connecting it to other systems are often where projects break.
Q: Should I perform feasibility analysis for every minor requirement? A: Use your judgment. Spend the most time on high-priority, high-risk requirements. For minor UI tweaks or low-impact requests, a quick sanity check with the development lead is usually sufficient.
Q: Can a requirement be "technically feasible" but "economically unfeasible"? A: Absolutely. You might be able to build a custom AI-driven engine to automate a manual task, but if the cost of the engine is $100,000 and the task only costs $5,000 a year in human labor, it makes no economic sense to build it.
Q: How do I handle stakeholders who demand features regardless of feasibility? A: Escalate the conversation to the project sponsor. Present the data: "We can build this, but it will require cutting these other three features and extending the deadline by two months. What is your preference?" This puts the choice back in the hands of the person responsible for the project's success.
Enjoying the courses?
Everything stays free. Pro shows fewer ads, doubles your daily points limit so you progress twice as fast, and lets you read each lesson on one page.
- ✓ Fewer advertisements
- ✓ 2× daily points limit
- ✓ Distraction-free lessons