Skip to content

Project Plan

ArkadSt edited this page Nov 18, 2024 · 37 revisions

Project Plan

Project Roles

Arkadi: Project Manager, Communication Lead, Developer

Nikita: Developer, Requirements Engineer, Documentation Manager

Artemi: Developer, DevOps Engineer

Alina: Developer, Tester

Iteration 1

  • Arkadi:

    • Write and finalize the product vision document.
    • Set up the version control system (VCS).
    • Initiate project kickoff meetings and establish communication channels.
  • Nikita:

    • Write user stories based on the product vision.
    • Develop initial use cases to define user interactions with the system.
    • Document requirements and project objectives.
  • Artemi:

    • Set up the issue tracker (e.g., Jira, Trello).
    • Write the initial project plan, outlining tasks and timelines.
    • Configure the development environment and ensure team members have access.
  • Alina:

    • Collaborate in writing the project plan.
    • Identify initial testing requirements and outline testing strategies.
    • Conduct research on testing tools and frameworks suitable for the project.

Iteration 2

  • Arkadi:

    • Start implementing core functionality
    • Oversee the development process, ensuring timelines are met.
    • Conduct daily stand-up meetings to track progress.
    • Ensure alignment of coding efforts with the product vision.
  • Nikita:

    • Set up the Continuous Integration/Continuous Deployment (CI/CD) pipeline.
    • Ensure the integration of development and testing environments
    • Begin coding the core functionalities as per the defined user stories.
    • Maintain documentation of development progress and update user stories.
  • Artemi:

    • Write detailed use cases as required for functionality.
    • Continue coding based on the architecture defined.
  • Alina:

    • Collaborate with the development team to begin coding.
    • Outline testing scenarios based on the functionalities being developed.
    • Prepare test data for upcoming testing phases.

Iteration 3

  • Arkadi:

    • Continue coding remaining functionalities.
    • Facilitate communication and coordination among team members.
    • Monitor progress and adjust timelines as necessary.
    • Lead code review sessions to ensure quality and adherence to standards.
  • Nikita:

    • Continue coding remaining functionalities.
    • Collaborate with Arkadi on code reviews and implement feedback.
    • Update documentation to reflect any changes in requirements or implementation.
  • Artemi:

    • Continue coding and begin testing integrations.
    • Monitor the CI/CD pipeline for issues and troubleshoot as necessary.
    • Support the testing team in setting up test environments.
  • Alina:

    • Conduct unit testing on completed features.
    • Collaborate with Nikita to ensure testing aligns with user stories.
    • Document testing results and report any issues to the development team.

Iteration 4

  • Arkadi:

    • Oversee final code development and ensure all tasks are completed.
    • Validate that all acceptance criteria are met.
    • Facilitate the final review meeting with the client for project approval.
  • Nikita:

    • Finalize code development and make necessary adjustments based on feedback.
    • Create and execute test cases based on updated requirements.
    • Prepare release notes and document final project deliverables.
  • Artemi:

    • Conduct final testing of deployment processes and ensure smooth integration.
    • Validate the CI/CD pipeline and address any final issues.
    • Assist in documenting deployment processes for future reference.
  • Alina:

    • Conduct comprehensive testing (system and user acceptance testing).
    • Document and report any final bugs or issues to the development team.
    • Validate that all test cases are executed and passed before the final release.

Communication Means

  • Client Communication:

    • Methods: E-mail, in-person meetings.
    • Frequency: Weekly check-ins via email and in-person meetings when needed to discuss progress and gather feedback.
  • Task Management and Team Communication:

    • Tools: Messenger (for day-to-day communication).
    • Frequency: Daily updates on task progress.

Work Process

Customer Acceptance

  • Approach: Establish formal sign-off processes after each development iteration.
  • Methods: Schedule feedback sessions at the end of each iteration and conduct User Acceptance Testing with the client.

Internal Development Process

  • Workflow:
    • Task Assignment: The Project Manager (Arkadi) assigns tasks based on priority and team member capacity.
    • Code Reviews: Conduct code reviews after each coding task.
    • Testing Integration: Implement unit tests during coding, followed by integration tests at the end of each iteration.

Definition of Done

  • Clearly define “DONE” as:
    • Code is complete and peer-reviewed.
    • Unit tests are executed and passed.
    • Documentation is updated.
    • Customer approval has been obtained.

Feedback Gathering

  • Mechanisms:
    • Use direct interviews after each iteration to gather insights from the customer.
    • Establish a feedback loop where insights are documented and discussed in team meetings for iterative improvement.

Project Scope

Iteration 1

1. Product Vision

  • Develop a clear product vision document (#2)
  • Priority: Must-have
  • Estimate: 4 hours
  • Actual: 4 hours

2. Functional Requirements & Use Cases

High-Level User Stories

  • Create high-level user stories for core functionalities (#3)
  • Priority: Must-have
  • Estimate: 5 hours
  • Actual: 7 hours

Use Case Specifications

  • Write detailed use case descriptions for key API functionalities (#4)
  • Priority: Must-have
  • Estimate: 5 hours
  • Actual: 3 hours

3. Non-Functional Requirements

  • Define non-functional requirements (#3)
  • Priority: Must-have
  • Estimate: 3 hours
  • Actual: 2 hours

4. Collaboration Infrastructure

  • Set up Wiki for documentation and GitLab for issue tracking and task management (#1)
  • Link the issue tracker to use cases and functional requirements
  • Priority: Must-have
  • Estimate: 4 hours
  • Actual: 4 hours

5. Project Plan

  • Define project roles, work processes, and communication methods
  • Create and organize tasks in the issue tracker (#42)
  • Priority: Must-have
  • Estimate: 7 hours
  • Actual: 7 hours

Iteration 2

1. Core API Design

  • Create REST API for querying user accounts

    • Design and implement API endpoint for querying Active Directory (AD) user accounts (#5)
      • Estimate: 2 hours
      • Actual: 2 hours
      • Priority: Should-have
  • Implement logic for retrieving user details from AD

    • Develop backend logic for pulling user details from Active Directory (#6)
      • Estimate: 2 hours
      • Actual: 2 hours
      • Priority: Must-have
  • Create REST API endpoint to retrieve the status of command executions

    • Design and implement API endpoint for checking command execution status (#29)
      • Estimate: 3 hours
      • Actual: 2.5 hours
      • Priority: Must-have
  • Implement logic to monitor and retrieve command status

    • Develop logic for monitoring command execution and fetching status (#30)
      • Estimate: 1 hour
      • Actual: 1 hour
      • Priority: Must-have

2. Application Functionality

  • Implement REST API for creating user accounts in AD

    • Design API to create new users in AD (#7)
      • Estimate: 2 hours
      • Actual: 1.5 hour
      • Priority: Should-have
  • Implement logic for adding users to AD

    • Develop logic to execute AD commands for adding users (#8)
      • Estimate: 2 hours
      • Actual: 2 hours
      • Priority: Must-have

3. Command Execution Management

  • Implement logic to write command execution results to the database

    • Develop functionality to store command execution results in the PostgreSQL database (#21)
      • Estimate: 4 hours
      • Actual: 4 hours
      • Priority: Must-have
  • Implement command queuing and ensure execution in the correct order

    • Develop logic to queue commands and manage execution order (#22)
      • Estimate: 2 hours
      • Actual: 3 hours
      • Priority: Must-have
  • Set up Docker containers for isolated PowerShell command execution

    • Configure Docker containers to run PowerShell commands securely (#25)
      • Estimate: 3 hours
      • Actual: 4 hours
      • Priority: Must-have
  • Configure PostgreSQL database for storing command requests and results

    • Set up the database schema and connection for command management (#26, #24)
      • Estimate: 4 hours
      • Actual: 3 hours
      • Priority: Must-have
  • Powershell script for executing commands

    • Develop PowerShell scripts to execute commands from the API (#54)
      • Estimate: 8 hours
      • Actual: 10 hours
      • Priority: Must-have

4. Documentation and Testing

  • Set up Swagger UI for interactive API documentation and testing

    • Configure Swagger UI for API documentation and enable testing (#53)
      • Estimate: 1 hour
      • Actual: 2 hours
      • Priority: Must-have
  • Scope

    • Update scope (#57)
      • Estimate: 2 hour
      • Actual: 4 hours
      • Priority: Must-have
  • Release notes and use cases

    • Prepare release notes and document use cases for the current iteration (#55, #56)
      • Estimate: 9 hours
      • Actual: 8 hours
      • Priority: Must-have

5. Continuous Integration Setup

  • Automate build and deployment process, ensuring continuous integration works smoothly (#52)
  • Priority: Must-have
  • Estimate: 30 minutes
  • Actual: 1 hour

6. UI Wireframes/Examples

  • Create detailed input-output examples for key API endpoints
  • Priority: Must-have
  • Estimate: 5 hours
  • Actual: 1 hour

Iteration 3

Meeting with a customer

  • Estimate: 2 hours
  • Actual: 2 hours

1. Core API Design

  • Design REST API endpoint for deleting user accounts

    • Create the API endpoint to delete user accounts from Active Directory (AD) (#14)
      • Estimate: 3 hours
      • Actual: 1h
      • Priority: Should-have
  • Design REST API endpoint to enable/disable user accounts in AD

    • Create the API endpoint to enable or disable user accounts in AD (#17)
      • Estimate: 3 hours
      • Actual: 20m
      • Priority: Should-have
  • Design REST API endpoint to reset user passwords in AD

    • Create the API endpoint for resetting user passwords (#13)
      • Estimate: 3 hours
      • Actual: 1h
      • Priority: Should-have
  • Design REST API endpoint for updating group details in AD

    • Create the API endpoint to update group information (#31)
      • Estimate: 3 hours
      • Actual: 1h
      • Priority: Should-have
  • Design REST API endpoint for deleting groups in AD

    • Create the API endpoint to delete groups from AD (#33)
      • Estimate: 3 hours
      • Actual: 20m
      • Priority: Should-have
  • Design REST API for updating user details in AD

    • Create the API endpoint for updating user account information (#10)
      • Estimate: 3 hours
      • Actual: 1h
      • Priority: Should-have
  • Implement logic for user detail updates in AD

    • Build logic for updating AD user information and synchronizing changes (#11, #12)
      • Estimate: 8 hours
      • Actual: 1h
      • Priority: Must-have
  • Design REST API endpoint to list members of a group

    • Create the API endpoint to retrieve members of a specific group (#35)
      • Estimate: 3 hours
      • Actual: 1h
      • Priority: Should-have
  • Design REST API endpoint to search for users by attributes

    • Create the API endpoint for searching users based on specific attributes (#40)
      • Estimate: 3 hours
      • Actual: 1h
      • Priority: Should-have
  • Design REST API endpoint for creating groups in AD

    • Create the API endpoint to create new groups in AD (#19)
      • Estimate: 3 hours
      • Actual: 20m
      • Priority: Should-have

2. Application Functionality

  • Implement logic for deleting a user from AD

    • Develop the backend logic to delete user accounts from AD (#15)
      • Estimate: 8 hours
      • Actual: 1h
      • Priority: Must-have
  • Implement logic for password reset in AD

    • Develop the logic to handle password reset requests for users in AD (#16)
      • Estimate: 8 hours
      • Actual: 1h
      • Priority: Must-have
  • Implement logic for enabling/disabling accounts in AD

    • Develop the logic to enable or disable user accounts in AD (#18)
      • Estimate: 8 hours
      • Actual: 20m
      • Priority: Should-have
  • Implement logic for updating group information in AD

    • Develop the logic to update group details in AD (#32)
      • Estimate: 8 hours
      • Actual: 20m
      • Priority: Should-have
  • Implement logic for removing groups from AD

    • Develop the logic to delete groups from AD (#34)
      • Estimate: 8 hours
      • Actual: 20m
      • Priority: Should-have
  • Implement logic to retrieve group members from AD

    • Develop the logic to list members of a specific group in AD (#36)
      • Estimate: 8 hours
      • Actual: 1h
      • Priority: Should-have
  • Implement logic to update user information in AD

    • Develop the logic to update user details in AD (#11)
      • Estimate: 8 hours
      • Actual: 1h
      • Priority: Must-have
  • Implement logic for adding new groups to AD

    • Develop the logic to add new groups to AD (#20)
      • Estimate: 8 hours
      • Actual: 30m
      • Priority: Should-have

3. Validation and Error Handling

  • Implement input validation for AD commands before execution

    • Develop input validation logic for commands executed in AD (#37)
      • Estimate: 5 hours
      • Actual: 30m
      • Priority: Must-have
  • Implement error handling and logging for command execution

    • Develop error handling and logging mechanisms for command executions (#23)
      • Estimate: 6 hours
      • Actual: 5h
      • Priority: Must-have
  • Implement logic to update command status after execution in AD

    • Develop logic to update the status of commands post-execution (#24)
      • Estimate: 4 hours
      • Actual: 1.5h
      • Priority: Must-have
  • Write validation rules for user account creation

    • Develop validation rules to ensure correct user account creation (#9)
      • Estimate: 3 hours
      • Actual: 1h
      • Priority: Must-have
  • Create validation rules for updating user details

    • Develop validation rules for updating user information (#12)
      • Estimate: 3 hours
      • Actual: 1h
      • Priority: Must-have
  • Write test cases for core use cases

    • Develop test cases for core functionality and edge cases (#61)
      • Estimate: 4 hours
      • Actual: 9 hours
      • Priority: Must-have
  • Set up Jenkins pipeline

    • Configure Jenkins pipeline for continuous integration and deployment (#62)
      • Estimate: 4 hours
      • Actual: 8 hours
      • Priority: Must-have

Iteration 4

1. Core API Design

  • Create REST API endpoint for assigning roles to users

    • Create the API endpoint to assign roles to users in Active Directory (AD) (#43)
      • Estimate: 10 hours
      • Priority: Could-have
  • Create REST API endpoint for revoking roles from users

    • Create the API endpoint to revoke roles from users in AD (#45)
      • Estimate: 10 hours
      • Priority: Could-have
  • Create REST API endpoint for querying role assignments

    • Create the API endpoint to retrieve role assignments for users in AD (#47)
      • Estimate: 10 hours
      • Priority: Could-have
  • Design REST API endpoint for adding/removing users from groups in AD

    • Create the API endpoint to manage group memberships for users in AD (#49)
      • Estimate: 10 hours
      • Priority: Should-have

2. Application Functionality

  • Implement logic to assign roles to users in AD

    • Develop the backend logic to assign roles to users in AD (#44)
      • Estimate: 14 hours
      • Priority: Could-have
  • Implement logic to remove roles from users in AD

    • Develop the logic to revoke roles from users in AD (#46)
      • Estimate: 14 hours
      • Priority: Could-have
  • Implement logic to retrieve role assignments from AD

    • Develop the logic to query role assignments for users in AD (#48)
      • Estimate: 14 hours
      • Priority: Could-have
  • Implement logic to modify group memberships in AD

    • Develop the logic to add or remove users from groups in AD (#49)
      • Estimate: 14 hours
      • Priority: Should-have
  • Implement logic for prioritizing urgent commands

    • Develop logic to handle and prioritize urgent command requests (#38)
      • Estimate: 10 hours
      • Priority: Should-have
  • Implement logic to perform user search based on attributes in AD

    • Develop the logic to search users by specified attributes in AD (#41)
      • Estimate: 14 hours
      • Priority: Should-have

3. Automated Testing

  • Automate tests for alluse cases
    • Develop automated tests for core use cases to ensure system reliability (#28)
      • Estimate: 12 hours
      • Priority: Should-have

4. Continuous Integration

  • Improove Continuous Integration (CI) environment
    • Make CI environment more user-friendly.
      • Estimate: 5 hours
      • Priority: Must-have

5. Internal Acceptance Testing

  • Conduct internal acceptance testing
    • Perform manual verification of core functionalities and document test cases in the Wiki.
      • Estimate: 8 hours
      • Priority: Must-have

6. Non-Functional Requirements Verification

  • Verify non-functional requirements

    • Document verification processes for performance and usability requirements.
      • Estimate: 8 hours
      • Priority: Must-have
  • Full documentation for SwaggerUI

    • Write comprehensive SwaggerUI documentation for the API. (#63)
      • Estimate: 5 hours
      • Priority: Must-have

7. Customer Feedback

  • Gather and analyze customer feedback
    • Interact with the customer to gather feedback and assess application performance.
      • Estimate: 4 hours
      • Priority: Must-have

Clone this wiki locally