Managing Projects: Basics

Absolute minimum to get you started

@Management #beginner #free

Feeling lost halfway through the project? Starting to lose hope in handling your work? Many of us has felt that conflicting pressure when working on projects.

Before thinking about how you can handle people or handle stress better, take these easy steps to ensure that you have the right preparations to sustain a healthy project lifecycle. We tend to create blame from a personal perspective, but personality and skill may play a smaller role than you think.

Read on and don't repeat these mistakes...

Watch This Before Starting A New Project

Useful links

Jira - Roadmap and release planning collaboration tool

Git SCM - Git GUI and CLI client for Windows

Git Cola - Git GUI for Linux

Make a README - Markdown editor, template and FAQ

Choose a License - Open source licensing template selection

But wait, that's not enough..

You're right, there are many strategies important to maintaining the efficiency of your project management. We must not only know the factors involved, but also make a lot of adjustments to stay on top of the game. With just a task list, there are already numerous methods to work and manage it, but also thousands of ways to do it wrong.

Here are some important guidelines to writing a good to-do task list.

  1. Break it down
    Always have tasks that are immediately performable, instead of a complicated description of what needs to happen. If you have to sit down and figure out what is your next step for each task, it is not a task list but goal list.
  2. Keep it short
    I can't stress enough of how important it is to avoid putting too much on your plate. You can always add more to your plate when you need to, but biting more than you can chew will most definitely end up with rushed and poor quality work, if not incomplete. Make sure that the list can be understood with one look, without flipping through multiple pages.
  3. Arrange to priority
    Important and urgent tasks first, according to priority. Don't end up finishing up all the irrelevant tasks and leaving the important ones last. It is best to keep all the important tasks in the top 3 of the list, and keep the rest to a minimum.
  4. Keep a backlog
    Never use your task list as a reminder for all the things that you need to do. Keep the non-immediate tasks in another separate list, including those that can be delayed or must be delayed due to external dependencies. Again, if you can't identify the things that you can do within one glance, the list is useless to you.
  5. Start anew
    Don't hesitate to clean up and abandon tasks that are stuck for too long. Sometimes, it may be necessary to rethink and redo your planning from the ground up. We all fear abrupt changes, but forced changes like this can form a healthy cycle and recycle the energies blocking your workflow. When your task list and backlog becomes a flood that even you cannot explain, it may be time to look back and refresh.

General Technical Terminology

For new programmers or engineers with zero experience, you may come across various technical terms which you understand, yet cannot fully differentiate. Comprehending the existence of these terms becomes crucial as they are the things to constantly consider in the process of managing a project. Slight misunderstandings can cause developers to become stuck in their mistakes without awareness.

  1. Local vs Remote
    Refers to the location of files or program, being accessible offline (local) or over the internet (remote).
  2. Local vs Staging vs Production
    Difference in access environment to the software system, from running at a local environment, to a staged environment to simulate the actual product for testing, and finally the real product.
  3. Development vs Live
    Referring to the release status of a software system, being in the preparation process (development) or used directly by the users (live).
  4. Deliverable vs Feature vs Requirement
    A feature describes what functionality can be performed, while requirement describes the method to perform it. Deliverables are written based on requirement, which describes the steps to achieve it.
    Feature: Pigs can fly
    Requirement: Pigs grow wings to fly at low altitudes
    Deliverable: Pigs can grow natural wings behind the neck so that it enables flight for a short period (~15s)
  5. Stash vs Stage vs Commit vs Push
    Modified files are staged before being added to a commit in local repository. All committed changes will then be sent to the remote repository by pushing, and any overwriting conflicts between two commit histories will normally be rejected by the remote server. Local changes can be stashed to be put aside temporarily, so that the repository can revert back to last recorded remote state.
  6. Fetch vs Pull vs Merge
    Fetching means to only download the latest information from the remote repository, nothing is applied to the local repository yet. The information can then be merged into the local repository and any conflicts must be resolved manually by combining the difference, or choosing the version of file to retain. Pull combines fetch and merge into one action.
  7. Clone vs Fork vs Branch
    When downloading a copy of the repository to the local machine, clone is used. Fork is the creation of a copy of the original repository in another location, allowing modifications to connect from the original without directly affecting it. Branches are deviations from the master branch of code inside the same repository, a copy of the repository can contain all its branches. All forks and branches share the same commit history at some point.
  8. Pull request vs Merge request
    Generally means the same thing, to request a combination of another branch or fork history back to the main repository. Usually comes with a series of commits that may bring major change or cause conflict between two histories, thus must be checked and discussed carefully before eventually merging after confirmation.


Become a Programmer: Python Series

The tactics to develop your passion

Start programming NOW, and learn the very fundamentals which will …

@Programming #beginner #free

Frontend Development: Elm Basics

Deterministic code, predictable experience

Elm is a programming language for frontend applications that uses …

@Programming #beginner #free