Dividing task for better performance in programming.

As a startup employee, the task I receive usually kind of too big or lack of detail, which lead me to using kanban and note-taking app a lot. In this article, I will share with you how I’m managing my workload by dividing the requirement as small and detail as possible with realistic example.

Requirement

Build a video chat component in VueJS using firebase realtime-database with exist user and frontend template.
After discussion I have do some research and list out the technology we gonna need to make it works:

  • Socket.io: a library that enables low-latency, bidirectional and event-based communication between a client and a server.
  • Peerjs.com: PeerJS simplifies WebRTC (which is the technology I must use in this project) peer-to-peer data, video, and audio calls. PeerJS wraps the browser’s WebRTC implementation to provide a complete, configurable, and easy-to-use peer-to-peer connection API.
  • uuid: a javascript library that generate random unique ID for user or chat room.
  • expressJS: environment for connection and run demo.
  • mdi-icon: for the calling function button which also is the icon library that we using in current project.

Mindset

Following the technology I look up I really feel overwhelming because I have never heard about Web-RTC or uuid, etc…

As the job need to have some progress report daily, I decide to follow a tutorial on youtube to get the big picture and understood the code flow of video chat component. If you want to know what was that tutorial, checkout the link below:

https://www.youtube.com/watch?v=DvlyzDZDEq4

After that I decide to make a step by step Kanban board of what I need to do.

Solution

Take a look at my Kanban board example:

kanban-video-chat
Kanban for Video-Chat-Component

I separate the task to front-end and back-end then write down tasks from my thought below:

  • I need to create a template that have handling event buttons for caller and receiver.
  • Design the structure of the database that allows receiver to know who is calling and get the peer to peer connection (stream) from caller.
  • Allow the caller to predict that will the receiver available for the call.
  • Handling a stream to answer from receiver back to caller.
  • Modify the template after testing.
  • Optimize the flow of the code to be easy to read by dividing into functions (refactoring).
  • Adjust and update more feature such as only call then wait for 20s, turn on the ring bell when have a outcome call,…

Conclusion

There are several ways for you to manage your workload and dividing project into small tasks, this is just one way that I doing well with my work and just a simplified and small version of step that I do. If you think my work flow have any shortage please comment below maybe we both can grow together and produce a better solution!

Addition

For you guys who is looking for what tool Im using to create such a beautiful Kanban board, is it Obsidian you can check it out by simply click at the name.

Its have many more plugins to take note as a developer such as calendar, todo, data table, etc… If you looking for more passive income you can also come there and write down some plugins for the developer community!

And please stay tuned for another article about that tool I will place the link right here whenever I have time to write a good-to-read about it!

Follow Me

github: https://github.com/thanhduy1512
gitlab: https://gitlab.com/duydt1512
mail: duy@localhost

Leave a Comment

Your email address will not be published. Required fields are marked *