Wednesday, September 16, 2015

The SDLC is *NOT* a Project Management Methodology

We need to institutionalize the SDLC as our organizational project management methodology” – The Ill-Informed, Buzzword-Loving Senior Executive
A common misperception amongst project stakeholders is the erroneous belief that the Software Development Life Cycle (SDLC) is a project management methodology.  There are even some who believe the inverse, that the SDLC is contained within traditional project management methodologies.  In truth, neither are quite correct, and it’s more than just semantics.  Here’s why…
The Software/Systems Development Life Cycle is a methodology that forms the framework for planning and controlling the creation, testing, and delivery of an information system.  More specifically, the SDLC process is composed of a number of clearly defined and distinct work phases which are used by information technology resources, such as systems engineers and systems developers to plan for, design, build, test, and deliver information systems.  The SDLC is about quality, consistency and product delivery in the realization of a product’s requirements.  In recent years, SDLC methodology has been modified to become more streamlined and less “waterfall” based, with the popular Agile approach being one example.  In most circumstances, the SDLC process is managed by a AppDev Manager, Business Analyst, Systems Analyst, SDLC Team or other systems development professionals.
Project Management Methodology on the other hand, is the application of knowledge, skills, tools and techniques to meet project requirements through planning, organizing, measuring, controlling and reporting upon resources (human, financial and time).  Best practices within traditional project management discipline list five main phases or “process groups” that include Initiating, Planning, Executing, Monitoring & Controlling, and Closing. The management of a project includes identification of requirements, balancing stakeholder needs/expectations/concerns and balancing competing constraints (scope, quality, schedule, budget, resources, and risk).  Within each phase, tasks are defined to move from one phase to another until the project is closed.  More recently, modifications to the traditional five-phase process have been developed to more appropriately address specific project management needs such as Prince2, Critical Chain, Lean and Benefit Realization.  Again, in most circumstances, the PM methodology is managed by a Project Manager or other project management professional.
In reading the last two paragraphs, you can immediately see the cause for stakeholder confusion can’t you?  Both methodologies use the same language:
  • Planning
  • Controlling
  • Phases of Work
  • Tasks
  • Requirements
Despite the similar language, care should always be taken to distinguish between the project life cycle and the product life cycle.  The important distinction being that the SDLC is completely focused on the phases, tasks, resources and plans needed to deliver information systems.  Project management methodology is more agnostic.  It’s process set and approach can be applied to any temporary endeavor with a defined beginning and end, whether it’s a construction project, a school research project, planning a move from one city to another or even an IT infrastructure upgrade project.
Now that the differences have been established, let’s spend some time on how and why the two can, and should, co-exist on any information system delivery project.

The project kicks off in the Project Management Initiation Phase.  The initiating processes determine the nature and scope of the project and produce the Project Charter, which serves as the project’s guidepost of what is expected to be delivered, in what timeframe, under what constraints (schedule, budget or quality) and leveraging which key resources. The Initiation Phase is also commonly where projects are reviewed and approved by a larger project portfolio or governance board.
With some kind of approval to proceed secured, the project enters the Planning Phase in the PM methodology.  Early in this phase, the project is planned to an appropriate level of detail, with the main purpose being the identification of project deliverables, establishment of key milestones and the assignment of resources to the effort.  Running in parallel on the SDLC process track, work activities focus on analyzing user needs and developing business and system requirements.
While the PM process progresses into breaking down the deliverables into tasks, sequencing those tasks and estimating resource effort vs. capacity, the SDLC track is busy with the System Design phase where the requirements that have been gathered are used to outline the desired features and system operations in detail, including screen layouts, business rules, process diagrams, code templates and other documentation.
Once the project plan is in place, the schedule set and the budget established, the project enters the Execution & Control Phase on the PM Life Cycle.  Here, actual coding and development tasks are started and test plans are documented.  Blocks of code are gradually completed and unit tested, leading to system functionality being delivered.  Issues are tracked and worked, while risk begins to decrease as more key milestones are met.
As the bulk of the coding and development tasks begin to wind down, testing activity starts in the SDLC Test Phase.  There is commonly an iterative relationship between Development and Testing as coding defects are discovered and sent back to development for fixes, which are then tested again until approved.  The project phases of Execution and Control also become iterative, continuously looping between tracking the execution plan and making adjustments based on the actual results via control mechanisms like earned value management, task completion, budget and schedule tracking and stakeholder management.  At the conclusion of these parallel tracks in both the SDLC and Project Management methodologies is the implementation/deployment of the final, tested solution.
Finally, the project management process wraps up the project by confirming that the delivered solution meets the scope parameters and requirements identified at the beginning of the effort.  Lessons learned are captured, documents are closed out and filed, resource recognition and celebrations are held, the system is handed off to the operations team and the project is officially closed.   But the SDLC process takes one more step (not shown above), starting with that hand-off to the operations team.  Known as the Maintenance Phase, the implemented solution is managed in a day-to-day operational state, where changes, enhancements, fixes and end-of-life planning considerations are made.
So remember, the SDLC is *NOT* a Project Management Methodology.  The two should never compete against each other during the life of a project initiative.  In fact, the two are completely complimentary to each other for information systems development projects.  In a perfect world, the PM processes should be led by a Project Manager and the SDLC processes should be overseen by a Systems Manager.  In an imperfect world, the Project Manager should at least solicit the help of a systems developer to ensure the SDLC best practices are defined and tracked on the systems development side of the effort.

No comments:

Post a Comment