SDLC in Practice: Aligning What’s Planned with What Gets Built

A practical look at how structured delivery turns abstract ideas into working systems in enterprise environments.

Subject Matter Expert: Ersa Aditya, Project Management Office (PMO) Senior Officer at Indivara

“The value of SDLC is not in naming phases. It is in making sure each phase produces enough clarity, control, and output for the next phase to proceed with confidence.”

At the start of a software project, alignment often looks stronger than it really is.

There is a proposal. A scope has been discussed. Initial assumptions are documented. People feel they are talking about the same thing.

But software projects do not fail because people never met or never wrote anything down. They fail because the thing being built does not yet exist. It is still abstract. Each stakeholder, each business user, and even each delivery team member can hold a slightly different interpretation of the same future system. By the time those differences surface in development, testing, or deployment, the cost of correction is already much higher.

This is where SDLC matters.

SDLC, or the Software Development Life Cycle, is not valuable simply because it divides a project into phases. Its real value lies in forcing teams to make assumptions visible early, produce the right outputs at the right time, and carry alignment forward from one phase to the next. In enterprise projects, that discipline matters even more because the systems involved are rarely simple. They support real business operations, involve multiple delivery roles, and require technical, functional, and organizational coordination to move from idea to production safely.

In theory, SDLC is often described through broad phases such as requirement, design, development, testing, deployment, and maintenance. In practice, enterprise delivery usually needs more explicit control points than that. At Indivara, the procedure is operationalized through structured stages that begin even before detailed requirement elicitation and continue through readiness, validation, migration, and go-live. That is what turns SDLC from a concept into a working delivery system.

Why SDLC Discipline Matters in Enterprise Projects

Most enterprise projects are not just software builds. They are efforts to translate business processes, operational rules, approvals, integrations, data dependencies, and user expectations into a functioning system. That requires more than development capability. It requires business understanding, architectural thinking, delivery governance, and disciplined execution across phases. Enterprise projects depend on understanding the business process flows, building a strong solution architecture, and running robust software delivery processes with the right structure around them.

That is why weak early alignment becomes expensive later.

A requirement gap does not stay in the requirement phase. It becomes a design flaw. A design flaw does not stay in design. It becomes rework in development or defects in testing. A testing gap does not stay in SIT or UAT. It becomes an operational pain at go-live.

This is the real point of SDLC discipline: not to produce paperwork for its own sake, but to reduce abstraction early, make handoffs more reliable, and prevent misunderstanding from hardening into the system. The phases matter because they interlock. Each one must leave behind outputs strong enough for the next phase to proceed with confidence.

From Conceptual SDLC to Operational SDLC

A simplified SDLC model is useful for explanation, but it is too broad for actual enterprise execution.

In real delivery, teams need clearer gates. Work begins before detailed business requirements are finalized. Testing is not one undifferentiated activity but is split into internal system validation and business acceptance. Migration is often substantial enough to require its own planning, tooling, and quality controls. Go-live is more than deployment; it is a coordinated production transition.

That is why the SDLC operating model reflected in our procedure is better understood through the following stages:

  • Initiation
  • Planning and Preparation
  • UREQ (User Requirements)
  • Design
  • Development
  • SIT
  • UAT
  • Data Migration
  • Go-Live
  • Maintenance

This structure is more practical because it makes deliverables, ownership, and readiness conditions explicit.

The Key Phases of SDLC

Phase 1 – Initiation

The initiation phase exists to determine whether an opportunity is viable, shape the proposal, and create the commercial and delivery foundation needed before formal project execution begins.

This phase is often overlooked in generic SDLC discussions, but that is a mistake. Projects do not begin the moment requirement workshops start. By the time a delivery team is asked to execute, a number of earlier decisions have already influenced the project’s direction: whether the opportunity is feasible, what level of estimation is realistic, what kind of solution is being proposed, who will manage the project, and whether the proposed scope is coherent enough to move forward.

In practice, this stage includes reviewing the request, understanding proposal scope, nominating a project manager, preparing initial estimation and schedule, creating the initial EFM (Engagement Financial Management) and supporting proposal materials, conducting solution presentations, submitting the proposal, updating the pipeline, and preparing the contract basis.

The output of initiation is not a finished delivery plan. It is something earlier and more fundamental: a project opportunity that has been shaped well enough to move from business pursuit into structured preparation.

Outputs of Initiation Phase

  • reviewed RFQ (Request for Quotation) or opportunity basis,
  • initial scope understanding for the proposal,
  • nominated PM (Project Manager),
  • initial project estimation and schedule,
  • initial EFM and supporting proposal inputs,
  • approved proposal and commercial basis,
  • contract preparation readiness.

Why it matters to the next phase
If initiation is weak, the project enters preparation with unstable assumptions. That creates downstream confusion long before design or development begins.

Phase 2 – Planning

If initiation determines that the project should move forward, planning and preparation turn that decision into a controllable delivery setup.

This stage is where the project stops being only a business commitment and starts becoming an executable program of work. It includes analyzing the system architecture at a high level, developing high-level business guidelines or process understanding, creating the project plan, conducting internal and external kickoffs, updating and locking EFM, documenting initiation notes and exceptions, setting up version control and bug tracking, updating schedules based on scope and dependencies, and confirming resources.

This phase is operationally critical because it establishes how the project will be run. It is where expectations, cadence, controls, responsibilities, tools, and baseline planning start becoming concrete.

The phase emphasizes that enterprise delivery depends on the right organizational structure and on disciplined coordination across teams. This phase is where that structure begins to operate in practice. It is also where the hybrid delivery logic becomes visible: before development accelerates, the project needs enough clarity in planning, governance, and setup to avoid chaos later. 

Outputs of the planning phase

  • high-level business guideline or process documentation,
  • analyzed high-level architecture input,
  • project plan covering delivery components,
  • kickoff alignment internally and externally,
  • updated and locked EFM,
  • documented exceptions and project notes,
  • initialized project controls such as version control, bug tracking, and schedule baseline,
  • confirmed resources and working setup.

Why it matters to the next phase

Without this phase, requirement work tends to happen in a weak operating environment: unclear project controls, unstable schedules, and insufficient team alignment.

Phase 3 – UREQ

UREQ (User Requirements) is where business understanding is formalized into an agreed requirement baseline.

This is not just a documentation phase. It is the phase where the project team works to reduce ambiguity in the business problem itself. Requirement work should go beyond interviewing users and should focus on fundamentals such as inputs, processes, outputs, interfaces, and end-of-day considerations. It also stresses that the internal team must consolidate understanding, not merely record what SMEs say. That is one of the most important ideas in the whole deck.

In UREQ, teams gather and analyze detailed requirements, create the requirement traceability baseline, develop wireframes, produce the User Requirements documentation, perform system architecture analysis at this stage as required by the procedure, and secure external sign-off. Risk, resource, scheduling, and EFM updates are also brought forward where needed.

This means UREQ is doing two things at once:
First, making business needs concrete enough to be understood consistently; second, creating the formal baseline from which design can proceed.

Outputs of UREQ phase

  • User Requirements Document,
  • Wireframe,
  • Requirement Traceability Matrix,
  • System Architecture Document,
  • external sign-off on requirements,
  • updated risk, resource, schedule, and EFM inputs where applicable.

Why it matters to the next phase

Design cannot be strong if requirement outputs are weak. If this phase produces ambiguity disguised as documentation, that ambiguity will simply move forward and become more expensive.

Phase 4 – Design

Design is where business requirements are translated into a buildable solution baseline.

This phase carries more weight than many teams admit. Many downstream issues are not truly “found later”; they were already planted here. If the system is not thought through properly during design, later phases pay for it. Teams must walk through the future system before it exists, simulate key transactions, understand how modules interact, and examine how information flows from start to finish. That is the real work of design.

The design phase includes project solution submission and approval, FSD (Functional Specification Document) creation, TSD (Technical Specification Document) creation, review, walkthrough, and RTM (Requirement Traceability Matrix) updates. This is a phase that teams need to “see the elephant” before build begins. It is also the point where functional clarity and technical structure must meet. If they diverge here, development inherits confusion.

Design is not successful just because documents exist. It is successful when the future system has become concrete enough that different teams can build and test against the same mental model.

Outputs of Design Phase

  • approved project solution,
  • Functional Specification Document,
  • Technical Specification Document,
  • walkthrough and review results,
  • updated Requirement Traceability Matrix,
  • agreed design baseline for development.

Why it matters to the next phase
Development scales interpretation. If the design baseline is weak, development does not fix that weakness; it multiplies it.

Phase 5 – Development

Development is where the solution starts becoming tangible.

This is also where alignment becomes hardest to preserve because resource loading increases and work runs in parallel. Development often has the largest buildup of resources, with different experience levels and different understandings of the system, so maintaining a single shared view becomes essential. Regular alignment, knowledge sharing, active leadership, and continued verification against the intended design all matter here. 

Our concrete activities: development environment setup, CI/CD (Continuous Integration / Continuous Deployment) setup, backlog grooming, sprint or WBS (Work Breakdown Structure)  planning, coding, unit testing, code quality checks, merge requests, reviews, release note creation, and deployment into SIT.

Requirement and design rely more heavily on structured alignment and sign-off, while development proceeds through iterative execution once the baseline is stable enough. That balance is realistic. Enterprise delivery needs both stability and iteration. 

Outputs of Development Phase

  • configured development environment,
  • CI/CD readiness,
  • planned sprint or task execution in Jira,
  • implemented code,
  • unit testing evidence,
  • code quality results,
  • reviewed and approved merge requests,
  • release notes,
  • build deployed into SIT.

Why it matters to the next phase
SIT is only as effective as the quality and consistency of what development hands over. Poor discipline in build execution creates noisy testing and wasted cycles.

Phase 6 – SIT

SIT, or System Integration Testing, is where the built solution is validated at system and integrated-process level.

SIT explains that testing brings components together and reveals whether earlier decisions actually hold under execution. That is exactly what SIT is for. It is where integrated behavior becomes visible and where many “new” issues turn out to be old misunderstandings finally exposed.

SIT includes creating and reviewing test cases, reviewing RTM, conducting functional testing, creating and updating SIT reports, logging bugs in Jira, uploading evidence, updating testing status, updating bug ticket status, and conducting root cause analysis with BA (Business Analyst) involvement.

This matters because testing is not just execution; it is traceability and learning. Bugs should not only be logged. Teams should understand why they occurred.

Outputs of the SIT phase

  • completed and approved test cases,
  • reviewed RTM for testing coverage,
  • executed functional testing evidence,
  • SIT report and testing progress status,
  • logged bugs and updated bug workflow,
  • root cause analysis records,
  • uploaded evidence across Jira, repositories, and test reporting artifacts.

Why it matters to the next phase
UAT should not become the place where the team discovers basic system instability. SIT exists to remove that risk before business users are asked to validate the solution.

Phase 7 – UAT

UAT, or User Acceptance Testing, validates whether the solution is ready from a business-use perspective.

This stage includes preparing and reviewing the user manual, conducting functional user training, handling bug assignment, performing unit testing on bug fixes, going through merge request and code review flow for fixes, and updating ticket status until the solution is ready for business acceptance.

UAT formalizes user manual creation and user-facing preparation later, during UAT. That distinction should be preserved because it reflects how your company really operates, not an abstract ideal.

UAT matters because passing SIT does not automatically mean the system is usable, understandable, or acceptable in real operations. This is where the business perspective becomes decisive.

Outputs of UAT Phase

  • completed user manual,
  • reviewed and approved user manual,
  • user training completion evidence,
  • bug assignment and fix workflow,
  • validated bug fix cycle through test and review,
  • business-facing readiness for production transition.

Why it matters to the next phase
A system that is technically functional but not operationally accepted is not ready for go-live.

Phase 8 – Data Migration

Data migration is not a side task. In enterprise projects, it is often a delivery track in its own right.

This stage includes designing the migration plan and methodology, defining mapping and conversion rules, designing conversion tools, developing and testing conversion scripts, preparing and approving data, performing migration testing, generating quality reports, conducting data smoke testing, executing final migration, and reviewing final quality reports.

What makes this phase serious is that it treats data as something that must be planned, transformed, tested, validated, and signed off. That is mature delivery practice. Too many teams talk about migration only near deployment, which is usually a sign that they are underestimating it.

Outputs of Data Migration Phase

  • approved data migration plan and methodology,
  • completed field mapping and conversion rules,
  • designed conversion tools or frameworks,
  • developed and tested conversion scripts,
  • prepared and approved data set,
  • migration testing results,
  • quality reports and reviewed findings,
  • smoke-testing evidence,
  • final migration execution logs and completion evidence.

Why it matters to the next phase
Go-live depends not only on application readiness, but also on trustworthy data in the target environment.

Phase 9 – Go-Live

Go-live is where the validated solution enters real operation.

Deployment should not be reduced to a code release. Real users, real data, real environments, and real constraints change the risk profile immediately. That is why go-live must be treated as a coordinated transition, not a technical afterthought.

Our procedure reflects that reality through go-live preparation, production deployment, post-deployment checks, sign-off, and hypercare support. This is the point where all prior phases are tested in the most unforgiving environment: actual use.

Go-live is not the moment the project becomes perfect. It is the moment the project proves whether its preparation was disciplined enough.

Typical outputs

  • go-live readiness confirmation,
  • deployed production solution,
  • post-deployment validation results,
  • formal go-live sign-off,
  • active hypercare support.

Why it matters after transition
A controlled go-live reduces the shock of moving from project execution into live operations and creates a safer path into ongoing support and enhancement.

Phase 10 – Maintenance

Maintenance begins after the system has gone live and entered actual operation.

This phase exists because production use always reveals something new. Some issues are technical defects that only appear under real conditions. Some are minor gaps in process handling that were not fully visible during testing. Others are not defects at all, but changes in business needs, operational priorities, or scale that require the system to evolve.

This is why SDLC does not end at deployment. Once the system is live, work continues through issue resolution, enhancement, and adjustment to changing business requirements. A system that functioned correctly at launch can still lose relevance over time if it does not continue to evolve with the business.

In practice, maintenance covers post-go-live issue handling, production support, controlled fixes, performance or stability improvements, minor enhancement requests, and ongoing adjustments needed to keep the system aligned with real operations.

Maintenance is not just about keeping the application running. It is about preserving fit between the system and the business after the project has formally transitioned into operations.

Outputs of Maintenance Phase

  • production issue resolution,
  • bug fixes and support updates,
  • minor enhancements and controlled change implementations,
  • improved system stability and operational performance,
  • continued alignment between the live system and business needs.

Why it matters
A successful go-live proves the system can enter production. Strong maintenance is what ensures it remains useful, stable, and relevant afterward.

What SDLC in Practice Actually Means

A simplified SDLC model is still useful for explanation. It tells us that projects move from understanding the problem to designing the solution, building it, testing it, deploying it, and then sustaining it.

But real enterprise delivery requires more precision than that.

In practice, the project needs to be initiated properly before planning begins. Planning must prepare the operating environment before detailed requirement work starts. Requirement work must produce a stable enough baseline for design. Design must be concrete enough for development. Development must be disciplined enough for SIT. SIT must remove enough instability before UAT. UAT must confirm real user readiness. Data migration must ensure operational trust in the target system. Go-live must move all of that into real use without losing control.

That is what SDLC looks like when it is treated as an operating model instead of a diagram.

Closing

Software projects are difficult because they ask teams to build something abstract, align many people around it, and translate business reality into a working system before that system exists. In enterprise environments, the challenge is even greater because the consequences of misalignment are operational, not just technical. 

This is why SDLC discipline matters. It creates continuity across the lifecycle, ensuring that what begins as an idea is gradually turned into requirements, then design, then implementation, then validated behavior, then production readiness, and finally into a system that can be sustained and improved in real operation.

And that is how enterprise projects stay aligned from initiation to go-live.