Ideas for the development of my blog site
Purpose
The purpose of this document is to state quite clearly the idea that will be further developed into a project.
Logline
Describe in as single sentance the purpose of this project.
I wish to create an elegant blog that can hold all my project ideas, plans, specifications, and progress.
Progress
| Id: | Name: | Summary: | Due: |
|---|---|---|---|
| id-001 | Initial Concept | Begin the process | 2006, Apr 27 |
Expand the Idea
Take each key idea and move it into a section with a heading. Take all the small related ideas and move them under that heading.
Break the ideas into major and minor features. State each feature clearly and concisely.
Make a new feature Kanban for each major feature.
Stage
- design
- develop
- test
- review
- deploy
- done
Status
- pending
- in-progress
- done
Grid View
X,y labels and types for kanban are stored in data folder.
Can i have a standard one in the themes folder and override in my local project?
Recipes
Move the ingredients into the front matter. You can use the site to help convert them to JSON and an online converter to get that into YAML format.
Recipes with two parts can be split into two .md files. Add a ‘weight’ field if one doesn’t exist to allow sorting by an arbitrary value.
Swimlanes
Priority value sorts kanban card into swimlane buckets with highest priority at the top.
Keep the bucket ranges in hugo configuration files:
Names can be set by the blog owner using a set of ranges in hugo.params e.g.
swimlanes:
broken-in-production:
name: Broken-in Production
minimum: 0
maximum: 99
weight: 1
critical:
name: Critical
minimum: 100
maximum: 199
weight: 2
high-priority:
name: High Priority
minimum: 200
maximum: 299
weight: 3
medium-priority:
name: Medium Priority
minimum: 300
maximum: 399
weight: 4
low-priority:
name: Low Priority
minimum: 400
maximum: 499
weight: 5
very-low-priority:
name: Very Low Priority
minimum: 500
maximum: 599
weight: 6Convert priority field from number in range 0 to 1000 into list e.g. very low, low, mid, high, very high, urgent, etc
This let’s have a grid view with axes of priority vs status / completion / stage e.g. 350 high priority lane, in-progess with x offset from completion value
Grouping requirements into features and epic i.e. major and minor milestones
Review as a stage, but not shown for my usual flow Others as well e.g waiting, halted / blocked / on-hold, code review, acceptance or rejection from completion Intermediate stages maybe as tags e.g. started, finished, ship it (to next stage)
Feature: limits of how many may be in each stage, flag overflow
Continuous Integration (CI)
- eslint on push to github / commit to repo
Prettier on push. Make it all the same…is that possible? Seems like a pre-hook is needed on git repo for this. Same for lint. Run build command too to ensure most up to date deliverables e,g. Make .pdf files from the docs and put them in /static.
Hugo taxonomies exported as json for use by js components. Rss feeds. Kanban progress in the rss if possible. Any way to call hooks on Discord and the like?
Kanban Card Short Names / Ids
Steps to make project. Every single deliverable, action, or step should have a kanban card and ID.
- Meta: mt-001 - capture initial steps as well, short list
of things to remember to get started
- Ideation: id-001
- Specification: sp-001
- Deliverables: dl-001
- Scaffold: sc-001 - online services,repo, skeleton code, scaffolding
- Features: ft-001
- Acceptance: ac-001 - criteria needed for acceptance of work
- Deployment: dp-001 - steps required to deploy the app
- Bugs: bg-001 - link to guthub issues
- Releases: rl-001 versioned releases, tie in with
github releases
- Testing: ts-001
- Requests: rq-001 - feature requests and changes to spec
- User Stories: us-001
Figure out this list as a tree of dependencies
Base cycle on github features and bug tracking / issues needs
Kanban should be idempotent and immutable, no reusing ids.
Are user stories dependencies? One card for each? A card per requirement and thus each requirement must have a short identification
If this is all written into the documentation with shortcodes the whole thing should be verifiable when in progress or completed.
Sort by priority, due date, status enum if available.
Shortcode to embed kanban card link and maybe mini kanban, with a search through the folders to locate it e.g. {{ kanban “kb-001” }}, {{ kanban-tiny “kb-001” }}
Search works with partial name globbing to make the name shorter and easier to type and remember.
Bonus points if you make embedded svg graphic icons of the kanban.
Each document has its own card, maybe multiple e.g. tech spec
Categories:
- Deliverable
- Document
- Specification
Tags:
- example tag
Expect some overlap with the tags and categories, though in general we should aim to make them mutally exclusive.
One card for each major milestone.
Milestones:
- ideation
- refinement
- gather requirements
- write specs
- coding
- testing / qa
- deployment
- staging
- production
Board sort order selected by buttons or tabs. Link through taxonomies. Should there be a master list of cards somewhere and is that just generated or the docs spec it out and flag missing ones.
Identify blockers and dependencies Ensure that your kanban board enables immediate identification of blockers and dependencies.
Hours spent vs estimated.
User Stories
- User
- Wants
- Because
- End result / benefit
- User - action - benefit
Give the user a name (androgynous) to make it more prose-like e.g.
- Robin wants / needs / must
- keep a list of things to do
- So they can be more productive
- Robin is more productive
Functional Requirements
Functional requirements use precise “The system shall” language to eliminate ambiguity and provide clear criteria.
Non-Functional Requirements
Non-functional requirements define how well the system performs rather than what it does.
Is that the best definition? Search for more.
Swimlanes
Support and maintenance
Dashboard
Make small static dashboard as a single page showing project health, stat’s, how many are behind, number of issues, everything at a glance.
Create a dashboard taxonomy. Like bare pages but with a little navigation available. Not restricted to prose width screen, can use whole monitor if needed for wide kanban board viewing.
Eat you own dog food ASAP. Start making kanban cards to plan out stages, put in very basic requirements specs, and deliverables, features, etc.
Scan the files to make the docs
Use file scanning code to see which kanbans exist, and pull metadata from them. Use the metadata in the specifications to lay out a list of actions.
e.g. Summary page - scans every kanban, prints out their name, summary, completion, lateness into a document. Use a shortcode to place in lists of them broken down by category e.g. features, documentation deliverables.
Quick Wins
Find or make svg collection for priority levels
NodeJS REST Service
Write a service that tracks the serial numbers for each category so teams can work together without grabbing the same ID.
Solo developers can run it locally or skip using it entirely.
More Ideas
Should have its kanbans at the top, and under that a loose assortment of ideas.
If an idea is good and actionable it becomes a kanban
You should eventually have no loose ideas left, only kanban and the ideas not worth making, those get deleted.
Same pattern for requirements, tech spec, etc
Bugs can just go straight in as cards, but nice to track them.
Can have a /Meta folder which serves json files of usefully munged Meta data.
Only add this and its parts when it is unavoidable
Card short summary and derivatives need to handle blank prefix by setting it to (.*) or similar. Add file extension list to the query, md / json / yaml only accepted, but only after testing those as pages.
Cycle
Create idea, add to end of page. Turn good ideas into cards. Action the cards. Complete the list.
Tools
Idea 1
JS page that can take a list of titles and provides code windows to copy the shell commands needed to make them. Has drop down for each type, and serial number, doesn’t save context, just quick and dirty.
Idea 2
cheap todo app copy that takes a couple of params instead of 1.
stores the fields in an array in local storage
formats a command to run in shell to make all the new files and put in their contents
hugo new content xxx or just the raw text
saves counters for each type of kanban card so it can auto number them
ivan wants to create a big stack of cards fast with minimum typing
sensible defaults
could be hosted as part of the site under construction
Layouts
Default view is tabbed, full screen, overdue open
Overdue, Pending, in progress, done, priority , etc Smaller cards Filename for Tag, save typing it twice Title at top Tag might be an on hover popup icon on title bar Icon indicators: Late Urgent High priority
Use colours for indicators
Grid layout or swimlanes? Grid is easier
Scrumm
Try to fit in with scrumm model, though probably a lite version.
Status: renamed to stage instead
Status: position within a stage
Each step has a check to see if it’s needed and can skip to next step in cycle.
Discovery Pending Assignment In progress Done
Planning
Development Pending In progress Done
Sidebar - 90% off to the side, in feed Bug reports New customer requirements
Review Pending In progress Done - back to dev or on to ship
Retrospective What we done book learned
Ship Pending In progress Done
Sprint Planning
Read cards, sun up all the time estimates, 4 hours per day is likely Max you can do. Show cards that match the Sprint. Add Sprint as a field to each card e.g. sprint-01.
Sum up at end of Sprint, compare estimates to actual.
Thoughts
Requirements Design / document Development Test Deployment Retrospective
Grid View
X, - horizontal - stage Ideation Requirements Etc
y - vertical - status Pending In progress Done
More
Defaukt kanban view is ‘my view’..only stuff assigned to me. Show them all, with emphasis on late and high priority
Use score system to rank for sorting
Late, 100 points Priority, divide by 5 and add to score Assigned to me, 300 points, let’s us show others too, maybe not useful for this
I can use longer filename for the cards if I use a regex to trim them for display. E.g. ft-001-find-the-wumpus
Easier to pick out the right one in file manager.
Bkuesky goals
Typescript utility command available from npm which munges the emitted taxonomies and Meta from hugo.
Solving problems which are too hard for templates alone. Runs on node.js, can be package.json dependency.
Charts that I generate using svg e.g. candlestick for progress…could be an npm module based on some charting library. Just feed my taxonomies into it and save the output as usable media.
Move a bunch of stuff out of my todoist list and into projects with this as a way to manage their creation.
Does the theme have to be in the themes folder? Can it be named and served from a default location?
Npx command to scaffold / create new empty project with this theme installed. Another that can update it inside hugo…not in the node_modules, because there is no way hugo can access it like that.
That said, I should make this as a theme that can be brought in as a github submodule.
Json output files need bare base of that sets the content-type header attribute
Google analytics?
Hugo config merge code might be perfect for my single source of truth merge code - types of merge: none, shallow, deep.
Js utility that uses real file path from hugo as a stem, and performs system calls on it from kanban pages to add interactivity like:
Mark a card complete, move to next stage, using ‘git mv src dst’ To preserve git history. Dangerous.
Simple edits e.g. priority setting via a drop down menu.
Might be able to run small node.js service with router and http server. It runs in the background, you put the addr into config file and the js makes calls on it for dangerous shell services like ‘git mv’ and file edits on the front matter.
- Documentation
- ⏺ Concept
- ⏺ Idea