-
Notifications
You must be signed in to change notification settings - Fork 0
Design Document
Feature Creature is a project management tool designed to take feature creep and turn it from a problem to an asset.
- Feature Creature should have a visualization of the entire project from start to end with the ability to view sub portions of the project. The object with this is to be able to at once see progress towards the ultimate end goal, while still keeping track of daily level work to do and accomplishments. It also provides a sort of direction mind map to allow the user to put down paths of investigation that can either become critical, or atrophy and become vestigial
a. Each node under the project will have children and siblings which will enable visualization of a "feature's" importance. As it has more connections, the more important it becomes thus enabling the user to visualize when a feature isn't critical and should be left to a later time
b. Each node should be able to have its own sub items, allowing for a node to contain more specific tasks that relate to its progress towards completion
-
Feature Creature should have individual task level time tracking to enable the user to see where they are spending their time and adjust appropriately
-
Feature Creature should be able to transform between many different forms of project visualization, including GANTT, PERT, and KANBAN to take advantage of each of their strengths. Kanban providing daily (or larger) task viewing and checkout; gantt, for long term planning; and pert, for identification of critical paths etc.
-
Along with the visualization, the user should be able to log tasks with notes associated with nodes or tasks that allow for tracking of the thought process and evolution of ideas. This can make it that ideas that initially seem incomplete but where headed in the right direction can have time to percolate and be reincorporated into a later state.
-
Feature creature should be set up in such a way that the project can be either distributed, or centralized (if using sql, set up to use either sqlite or postgresql, whichever the user prefers). It should thus also allow for permission levels and administrative control of the project files if using a centralized model. The reason for this is to allow for individual or small projects to be set up and started with little to no overhead, but as things evolve/progress, it can grow to meet the needs or larger teams.
-
Feature creature should be display agnostic. That is to say, all calculations (like computing the nodes' relationships, edges etc. should be done in such a way that it is possible to swap out different display methods.
One of the questions we need to answer is how is a user going to interact with the tool. Is it purely a command line tool with a visualization which cannot be modified? Or are we going to allow the user to modify things in the visualization tool for example by adding a new node. Or do we have both?
- Ease of use
- Having consistency across the visualization and cmdline application
The toolboxes thought to enable the above are D3.js, for the visualization; python, for the backend; and postgresql and/or sqlite (or maybe dqlite by canonical for distributed sqlite), as the storage unit for the data.
- Electron - This is in pure javascript but has the benefit of working natively with HTML, CSS quite easily. It is also a tried and tested tool.
- Flexxui - Pure python. Not sure on the robustness of the tool.
- Paths are direction and can diverge after a path, or outcomes, and converge to an outcome or path
- Objectives have no parents or children, all relationships are defined by paths
- Objectives can be made to encompass arbitrarily many other objectives (grouping)
- Encompassing objects start at objective starts and end at ojective ends. A grouping must have
a path between it and the surrounding objectives
- Paths
- Notes
- Parents/children
- Genesis Date
- Status
- Description
- Tasks
- Progress (computed from tasks)
- Creator
- Terminating objectives
- enclosing objective
- Objectives
- Status
- Description
- Task total above and within (computed)
- Tasks total completed above and within (computed)
- Progress (computed)
- Creator
- Tasks (actionable items)
- Create date
- Start date (theorectically assigned by parents)
- Due date
- Time spent
- Sessions
- Parents/children
- Status
- Description
- Progress (if a parent)
- Creator
- Asset required
- Team (assigned to)
- Urgency
- Objective relation
- Recurrence
- Rate
- Time info
- Optimitic Completion
- Probable Completion
- Pessimistic Completion
- Slack
- Lightning
- Gantt
- Kanban
- Pert
- Burndown