Review Software Project & SDLC Process

Introduction

 
To develop a successful project, both the project management team and the software development team need to work together. The project management team follows some principles and project management lifecycle process. Similarly, the development team also follows the software development patterns & principles, SDLC process, methodology, and framework to implement the project. The development team usually knows the SDLC process. However, it is also recommended to know the project management lifecycle process.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
 
Topics
  • Project Management Principles
  • The Triple Constraint Theory in Project Management
  • Importance of Project Management Lifecycle Process
  • Project Management Lifecycle Phases
  • Importance of SDLC Process
  • SDLC Phases
  • Importance of a Software Development Methodology
  • Choosing Different SDLC Models
  • SCRUM Framework in Agile Methodology
Prerequisites
 
I'm guessing that you are a professional and already are familiar with the project management and software development lifecycle process. Therefore, you already know how to do analysis and development; anyway, I'll guide you on what to do step-by-step.
 
Do you love to learn? Here are some questions for you!
  • You're a developer, then why do you need knowledge about the project management lifecycle process and which components of a project plan are most important for your development?
  • Are you familiar with the project management documentation, like, project charter/project initiation document, Gantt chart, and work breakdown structure etc.?
  • Practically do you use the requirement analysis document, software architecture document, and software design document?
  • Which SDLC methodology and framework do you use based on your project requirements?

Project Management

 
Project Management Principles
  1. Project Goals Principle
  2. Performance Baseline Principle
  3. Project Risk Principle
  4. Project Lifecycle Principle
  5. Team Role & Responsibilities Principle
  6. Communication Principle
I'll explain only principles 2 and 4. Principle 4 defines the project management lifecycle process and phases. Principle 2 is needed during project planning, which is one of the project management lifecycle phases.
 
Project Management Plan
 
You know that the project plan has few components, for example, project goals, schedules, budget, quality, and resource plan (project manager, stakeholders). According to the performance baseline principle, you need to set up the quality measurement. The concept of the quality introduces the "Triple Constraint Theory".
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
 
The Triple Constraint Theory in Project Management
 
The triple constraint theory is so popular that it still in the project management more than 80 years since the 1940s. The triple constraint represents the project’s scope, time, and cost.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
 
For example, suppose that I need an application to upload and display the images. The project scope defines the features, functionalities, etc. So, I need an image upload page to store it into the relational database. Secondly, I want an image gallery to view the images. The approximate total project cost can be $15,555. The project duration can be 3 weeks. Now the constraint effect depends on where you mainly focus on your project.
  • Pointing on time: If you want a faster delivery, then you may need more resources that can increase your cost and/or you may need to shrink the project features.

    Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
     
  • Pointing on cost: If you want a cheaper budget, then you may shrink the time and/or the project features which may influence the product quality.

    Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
     
  • Pointing on scope: If you want more features, then you may need more time and/or you may need more resources for the additional features which may increase the cost.

    Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
Note, PMBOK considers six constraints: time, cost, scope, quality, resource, and risk.
 

Importance of Project Management Lifecycle Process

 
According to the project lifecycle principle, the project team needs to follow the project lifecycle process; because, this is the well-known high-level structured process for delivering a successful project. So, the project management lifecycle is mainly its phases: initiation, planning, executing, monitor & control, and closure.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
 

Project Management Lifecycle Phases

 
Project Initiation
 
In this phase, project management team/project manager can use either Project Charter (according to PMBOK Guide) or Project Initiation Document (according to Prince2) which defines the project goal, identifies the stakeholders, explains the project purpose & benefits, and analyzes the project’s scope & risks. Finally, they need approval from the stakeholders.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
 
Planning
 
In this phase, the project manager defines the performance baselines, creates the project schedule with time frame, allocates the resources for the team, defines the communication plan, and defines how the project will be executed, monitored, and controlled. The project manager can use the project schedule to create the Gantt chart and Work Breakdown Structure for the project. The Gantt chart mainly focuses on WHEN the tasks will be done, and Work Breakdown Structure focuses on WHAT will be done.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
 
Execution
 
In this phase, project tasks are handover to the development team and they start to implement the tasks according to the software development lifecycle (SDLC) process.
 
Monitoring and Control
 
In this phase, the project manager includes comparing/review the actual completed task against the actual plan and updates the progress status report.
 
Project Closure
 
In this phase, the project tasks are finished. So, the project manager takes approval and delivers the project to the client. Finally, it archives all the project documents and source codes for future use/reference.
 

Software Development

 
Importance of SDLC Process
 
In software engineering, you follow the SDLC because this is a well-known structured process used to develop the software/project from start to end. It mainly contains the high-level design to understand the overall project for the business and technical team.
 
SDLC Phases
 
According to the lifecycle principle, you know that the software development lifecycle has phases & each phase maintains a precedence sequence when to start.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
  1. Requirement Analysis
    In this phase, the business-analyst communicates with the clients to know, what they need. The requirements are documented as the Business Requirement Specification (BRS). Business-analyst uses the Project Charter or Project Initiation Document (PID) as an input for the BRS. Now, system-analyst/technical-writer describes the externally visible behaviors of the system using the use-cases and it is documented as Functional Requirement Specification (FRS). After that, the system-analyst describes what the proposed system needs to do, and it is documented as Software Requirement Specification (SRS). SRS includes detailed functionality, interfaces, security, etc.
     
    Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
  2. Architectural Design
    In this phase, the application architect will prepare the Software Architecture Document (SAD) and Software Design Document (SDD) based on the FRS.
     

    Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process


    SAD includes the structure of the application (component-based or layered architecture), how the components will be communicated each other (service-oriented architecture or message bus), how components will be deployed (client/server or n-tier), which frameworks, development tools, front-end/back-end/database technologies, programming languages/scripts, etc. will be appropriated.

    SDD consists of the High-Level Design (HLD) Document, Mid-Level Design (MLD) Document, and Low-Level Design (LLD) Document.

    • The HLD Document includes how all the components of the application will be designed (onion architecture), how they will be implemented (domain-driven-design), how the communication channel will be implanted, need to define all the components/modules of the application, etc.
    • MLD Documents include the database schema design, class diagram/sequence diagram of the components/modules, etc.
    • LLD Documents include the implantation guidelines, algorithm, functional logics for each component/module according to the design pattern/principles, etc.
     
  3. Implementation
    In this phase, UI/UX developers, software developers & database designers start to build the application according to the architectural design. For example, if it is a web-based application, then the UI/UX developers start to implement the graphical user interfaces (GUI) and GUI related logics; software developers start to implement the programming logic for each of the components/modules; database designers start to set up the database related permissions/securities and/or schema design-related SQL/No-SQL scripts.
     
  4. Verification
    In this stage, the developer team starts to write the unit test for each of the methods of the component/module. They also integrate all the components and verify the communication between each of the components into the integrating testing. Quality Assurance (QA) team starts the functional and performance test into the system testing. Finally, they verify all the client requirements into acceptance testing.
     

    Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
     

  5. Deployment & Maintenance
    In the deployment phase, the application is deployed to the production environment; so that the end-user can start to use it. Now if end-users find any bug into the system, then developers need to fix it in the maintenance phase; sometimes developers receive the change requests (CR) to update the functionalities and they need to implement these CR.
Importance of a Software Development Methodology
 
There're many SDLC methodologies and you have to select one of the methodologies according to your situation considering the team size, technical skills of the resources, project duration, cost, project size, and complexity, etc. Once you select the SDLC methodology, then you have to follow a particular model and phases. So, each methodology will provide you justified theoretical guidelines to organize your project development from start to end. If you know where you're going, then you'll know when you've got there. Anyway, some of the popular SDLC methodologies are Agile, Waterfall, Iterative, Rapid Application Development (RAD), etc.
 

Choosing Different SDLC Models

 
Waterfall Model
 
The phases of the Waterfall model are sequential, where the output of one phase is the input to the next phase.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process 
  • It's good for one big project
  • Project Duration: Very long or 6/12/18 months
  • Team size: 15 members or more/less
  • Documentation: The documents are required; analysis documents => Business Requirement Specification (BRS), Functional Requirement Specification (FRS) and Software Requirement Specification (SRS); design documents => Software Architecture Documentation (SAD) and Software Design Document (SDD)
  • Deployment: Final and single release to the production environment.
Iterative Model
 
It is an iterative software development approach, where you need to split your one big project into smaller portions (iterations), then you need to implement one by one portion.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process 
  • Splits one big project into smaller iterations
  • Project Duration: 2-4 weeks for each iteration
  • Team size: 9 members or less
  • Documentation: You need a Business Requirement Specification (BRS) document; but analysis documents, Software Architecture documents and Software Design Document are optional.
  • Deployment: Multiple releases
Rapid Application Development Model
 
It is similar to the agile process; but it mainly focuses on prototyping. It iterates the prototyping based on the user feedback and finalize the product.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
  • If your project is small and you need the prototype based on the user feedback and finalize the product, then RAD is good for you
  • Project Duration: Short/2-3 months
  • Team size: 5 members or less
  • Documentation: You need only a Business Requirement Specification (BRS) document
  • Deployment: Final release after getting the user feedback
SCRUM Framework in Agile Methodology
 
Once you can select the SDLC methodology according to your requirement, then you need to implement the methodology based on the framework. Say, you choose the agile methodology, then you can implement it by either Scrum or Extreme Programming (XP) framework. In the SCRUM, the whole project splits into more than one iterations. Each iteration is known as a sprint.
 
Developers Professional Practice Guidelines For Project Management And Software Development Lifecycle Process
 
SCRUM Artifacts
  • Product Backlog: It contains a list of the tasks that need to be done.
  • Sprint: Each sprint contains 6-10 user stories and its 2-4 weeks long.
  • Burn-Down Chart: It monitors the progress of the given tasks in the sprint.
SCRUM Roles & Responsibilities
  • The product owner collects the requirements and communicates with the client. The requirements contain user-stories.
  • Development team implements and tests the software.
  • Scrum master arranges 15 minutes daily standup meeting.
SCRUM Events
  • Sprint Planning: What can be done in the sprint and how will the tasks get done.
  • Daily Scrum/Standup Meeting: It happens daily 15 minutes to communicate with the team. The team explains what they did yesterday and what they will do today.
  • Sprint Review: Stakeholders and scrum teams review the Tasks.
  • Sprint Retrospective: Reviews how the team works during the sprint and takes suggestions for getting better to the next sprint.
XP Framework for Agile
 
XP is similar to the Scrum. But the XP team allows changes into the sprint and each sprint 2 weeks long.