Kashif Wahaj's Blog

Standard Developer Workflow

By Kashif Wahaj on Feb 5, 2024
Image post 6

Workflow for Improved Productivity and Quality ☁️ πŸ˜Άβ€πŸŒ«οΈ

🟑 For Managers

πŸ”΅ For Developers

Step 1: Create JIRA Ticket 🟑 πŸ”΅

create ticket from navbar create ticket

Provide detailed information in the ticket with screenshots (where needed) and document links.

By default, newly created tickets will be in the Todo/Backlog block group.

Step 2: Assign Story Points* and Set a Due Date 🟑

Avoid Getting Story Points to beginners (just a suggestion)

Story Point: An approximate estimate of the hours required to complete a task.

  1. Assign the ticket to the developer.
  2. Request the developer to estimate Story Points.
  3. Discuss and agree on a deadline/Due Date.
  4. The assigner updates the ticket with Story Points.
  5. The assigner sets the Due Date for the ticket.
  6. The assigner sets the priority for the ticket.

Step 3: Create a New Branch α›˜ πŸ”΅

Before starting work/coding,

  1. Create Subtasks if required and assign Subtasks with help of manager/supervisor.
  2. Move the ticket to the in-progress block.

Create a new branch for the issue from the dev branch.

Use a standard naming convention for creating a new branch.

example if ticket is a feature and number is 878 so branch name feat-878

if ticket is a bug and number is 122 so branch name is bug-122

Pull the Git repository from the local machine using a terminal or code editor and then switch to the newly created branch.

Before commencing coding, the developer may need to discuss the ticket for clarity with the supervisor/manager, etc.

For communication, developers should create a channel based on the ticket and discussions should occur only within this channel for clarity or questions regarding the ticket.

Step 4: Coding… πŸ”΅

Complete the ticket with best coding practices:

  1. Avoid unnecessary comments.
  2. Refrain from using console logs or loggers.
  3. Maintain proper indentation.
  4. Keep individual files to no more than 100 lines of code.
  5. Optimize code for reusability wherever possible.

Additional Coding Practices for Laravel Developers:

  1. Use migrations for database table operations.
  2. Employ Form Requests for each controller function with permission rules.
  3. Follow proper route naming conventions and API versioning.
  4. Implement service/helper classes where necessary.
  5. Include filters and search functionality by default in index functions.
  6. Provide proper API responses with response codes.
  7. Store all keys and sensitive data in config and .env files.
  8. Limit function code to 20-30 lines maximum.

Step 5: Commit and reassign ticket if needed πŸ”΅

if ticket has Subtasks

If story ticket developer completed the Subtasks, then developer can reassign the story ticket to remaining Subtasks developer.

Commit Name and Description

Commit Name:

  1. feat: For new features added to an application.
  2. fix: For bug fixes.

Include the ticket number inside the commit name.

Example: feat: 123-added-auth-system

fix: 213-fixed-navbar-shadow-issue

Commit Description:

  1. Always include the ticket link in the description.
  2. Briefly explain how you resolved the issue.

Step 6: Create a PR πŸ”΅

Before creating the PR developer needs to verify and cross check with ticket description/detail.

Create a PR with the issue number.

Initiate a pull request from your created branch into the dev branch.

Include the ticket link in the PR description.

Also, add the PR link to the ticket comment section.

Step 7: Inform about PR πŸ”΅

Share the PR link in the pull-request Slack channel.

Step 8: Check Linting, Testing, etc. πŸ”΅ 🟑

Automated linting, testing, etc., will run.

If any unit tests are written, they should run automatically before merging.

The developer should review and address any issues if they occur.

Step 9: Update Status to Pending 🟑

The supervisor begins with a pending status and assigns a PR code reviewer.

Step 10: Reviewer 🟑

The reviewer should thoroughly check all code practices and identify potential future bug creators. They should ask the developer to improve the code and raise a new PR if necessary.

The reviewer communicates through the GitHub PR comment section and can create a new channel on Slack to discuss future issues or connect one-to-one.

Cycle of Correction and Feedback Loop.

Step 11: PR Merge and Deployment 🟑

After all corrections and updates, the reviewer approves or disapproves the PR. If approved, they will merge the PR.

After the PR is merged, automatic deployment to the dev server should occur.

Step 12: PR Completion 🟑 πŸ”΅

The developer verifies the changes on deployed dev server.

The reviewer/supervisor marks the PR as complete with a green tick in Slack.

Step 13: Tester Work Begins πŸ”΅ 🟑

Now, the ticket moves to the testing/review block.

The tester performs manual testing confirmation.

Tester needs to follow below guidlines:

  1. Tester needs to understand the ticket and test thoroughly according to ticket details/description or acceptance criteria.
  2. If tester founds any issue he should have screenshot and have the steps to reproduce the issue.
  3. if tester and developer found a conflicting opinion about a issue then discuss with supervisor to solve the problem.

Step 14: Ticket Closure 🟑

After the tester verifies the ticket, it moves to the completed/closed block. If the tester finds any issues, they update the ticket and inform the developer, and the ticket returns to the in-progress block.

Step 15: Clean Up πŸ”΅

After the ticket is completed/closed, the developer should delete the Git branch created for the ticket.

Report an Issue or Bug πŸ”΅ 🟑

if any team member found any bug or issue or new improvement, a ticket needs to be created and let manager/supervisor know about about this ticket and also this ticket must be linked to relevent story ticket.

Image post 6

Client Server Architecture

Mar 11, 2024
Checklist for better code quality of React / Javascript Code.
Image post 6

React JS Code Quality Checklist before PR

Mar 11, 2024
Checklist for better code quality of React / Javascript Code.
Image post 6

Laravel Inertia Admin Panel using Shadcn UI and Tailwind CSS

Feb 18, 2024
Easy Steps to setup a laravel admin panel using latest inertia, Shadcn UI and Tailwind CSS.