Skip to main content

Development team workflow

What is kanban?

Kanban is a visual framework used in project management and software development to manage and track work as it moves through various stages of a process. The term "Kanban" originated from Japanese manufacturing and translates to "signboard" or "billboard."

Kanban can be used as any format, as long as it is a board with columns and names on it. It can be on a whiteboard, or digital board like Trello, Jira

What information on a card?

Steps in procedure

We will walk through all the major step in the Kanban workflow that you need to follow during the process of Avada SasS development with:

  • What is the step?
  • What should be happening?
  • What should you be doing?

Todo

This step means that the task or card is ready for the development process. Tasks should be assigned and prioritized by PM or Techlead.

Once you got assigned with the task here is what you should do:

  • Break down tasks into smaller subtasks if necessary for better management using checklist
  • Try to foresee technical hindrance beforehand, if there is something you are unsure, ask your Techlead for guidance.
  • Try to come up with proper story points for the task to know the expected workload you gotta take.

Doing

This step means you has begun to work with the coding step, you should create your own branch following our standard here and start working with your development process following the checklist setup from the previous step.

The most important part that you should always keep in mind that your coding should follow our coding standard. This means you need constantly check for your current code if matching the standard. If not yet followed, implement it right away, you must not wait until all done to implement coding standard, which will take time, and break you code.

Waiting to test

After completing development work, the task moves into this Testing phase, indicating that it's ready for testing on the staging environment. You should configure your gitlab.yaml to deploy your staging environment and test your feature on Avada Development Shopify partner account to make sure that most basic feature works just as your local machine. See this guide

If you skip testing on staging environment, you will eventually have to fix these issues at the end of the day anyways. So there is no hiding from this. Try your best to make sure things work as expected in this environment before handing over to Testers. Testers have no mercy. Testers have their own responsibility to make sure things working as described, there is no arguing over something simply is not working.

When you move the card to this step, you need to make sure these things:

  • You have deployed the staging correctly, note the Staging information on your card.
  • Manually test it
  • Notify the testing team or QA personnel about the completion of the task and readiness for testing via Trello or Slack.

Testing

This step involves rigorous testing of the developed code to ensure that it functions correctly and meets the specified requirements. It includes various types of testing such as unit testing, integration testing, and user acceptance testing (UAT).

In this step, testers will manually test your features on the Staging environment. You should be doing these:

  • Collaborate with the testing team to ensure proper testing of your code.
  • Address any bugs or issues identified during testing promptly, do not delay this bug fixing step. If thing can be done quickly, do it now.
  • Make necessary adjustments based on feedback from the testing team. The testing team follow the product closely, they see things from user perspectives , they have good reasons to give feedbacks. If you find their feedback somehow improper, collaborate with BA or PM for final output.

Waiting to review

After addressing most or all issues found during testing, mark the task as "Waiting to review.". Notify the code reviewer or team lead about the completion of the task and readiness for review.

Before the submission for code review, you should create Merge Request regarding your feature and note it inside the feature card so that the reviewer can quickly know the difference you made during your development step.

Also, you need to manually check your code again for previous mentioned code review from previous task, if already committed that fouls, you should update it before next submission.

Reviewing

In this step, code is reviewed by peers or senior developers to ensure its quality, maintainability, and alignment with project standards. It's an opportunity for constructive feedback and knowledge sharing among team members.

Here are things that you should be doing in this step:

  • Participate actively in code reviews, whether as the reviewer or the one being reviewed.
  • Provide constructive feedback and suggestions for improvement.
  • Incorporate feedback received from code reviews into your codebase promptly. Just like bug fixing, this requires your response and action promptly.
  • Merge your code from master branch to make sure things are up-to-date and ready for a merge

QA/QC

Quality assurance (QA) and quality control (QC) are performed in this step to verify that the software meets the desired quality standards and functions as intended. It involves final checks before deployment to ensure that the product is ready for release.

In this step, normally anyone can give feedbacks on products for the sake of high quality output. This can involve Designers, BA, PM and even CTO can join. They would make sure that any minor changes, final touches to make this perfect, need doing.

In the worst scenario, all of your work can be undone because of a wrong approach, implementation or false business logic.

Waiting to live

After passing all testing, review, and quality checks, the task is ready to be deployed to the live production environment. Developers are waiting for the deployment team to initiate the deployment process, making the changes available to users.

There are some final steps you need to do here:

  • Make sure if there is a go live checklist you need to perform like: running commands for migrating data in production, deploying Shopify extensions, etc
  • Merge your code from master branch to make sure things are up-to-date and ready for a merge (again)

Testing prod

After the techlead has followed the Go live procedure and deploying the tasks online. If there is any bugs happening at this stage, it requires your attention promptly to troubleshoot and resolve as soon as possible.

If the issues is affecting a lot of customers, the team will proceed a rollback for this release if needed.