Setup steps for building a product
This is a non exhaustive list of things you can do to start building a product and to organise your thoughts and ideas. The stages have overlaps and working in an agile way things will evolve over time. However, noting down some of these key points can help give you direction along the way:
- Determine what problem you are looking to solve.
We want to help people to stop wasting their own time.
- [x] Our problem and 'why' in making Time: https://github.com/dwyl/time/issues/222
- [ ] Discovery user research to determine problems in making good use of time:
- How to perform user research: https://github.com/dwyl/learn-user-experience-testing/issues/2
- How this problem has not been solved by others https://github.com/dwyl/product-ux-research/issues/34
1b. And for whom? dwyl/hq#213 https://github.com/dwyl/time/issues/192
- [ ] Create a persona and perform market analysis to understand how many people this persona represents.
-
Prioritise the problems you are looking to solve and choose one to start with. Then create hypotheses for your problem to test.
-
Make a wireframe that you believe will solve your hypotheses. https://github.com/dwyl/learn-wireframing/issues/1
-
Perform usability user testing with your wireframe to see if it proves your hypotheses. If your wireframes do not prove your hypothesis, take the feedback into consideration and reiterate until your hypothesis is proven.
-
Once you've confirmed your hypothesis you can start building your product. Ensure you decide upon metrics/counter metrics to test for to determine how your application should evolve as you go.
I'm going to start reading Hooked by Nir Eyal this weekend:
https://www.goodreads.com/book/show/22668729-hooked
The book might gives us some ideas on the steps you have described above.
Rather than just blindly creating another time tracking app and hoping for the best we want our app to be based on science. Here are a collection of issues we need to organise to collate our learnings on this science:
Efficiency
Concept: Parkinson's Law : "work expands so as to fill the time available for its completion" Method for application: Timeboxing - Elon Musk's Time management method - https://github.com/dwyl/time/issues/208
Concept: before doing a task determine if you can eliminate, automate or delegate the task so that you don't have to do it again in the future/ or it will take you less time in the future Method for application: Multiplier time management approach
Organisation
Concept: Estimate how long things will take you. Doing so sets realistic expectations for others and you avoid the stress of promising too much in too little time. (links to Parkinson's Law) Method for application: Practice estimating how long things will take you - https://github.com/dwyl/time/issues/147
Concept: daily goal setting Method for application: setting 3 things I want to get done today OR just one thing see discussion in: https://github.com/dwyl/time/issues/180
Focus
Concept: flow state - a state of relaxed high performance. Method for application: Quick feedback (eg. code that works) and long term feedback (app launches), challenge tasks offers is both a bit challenging but not too out of reach . Reduce distraction. https://www.youtube.com/watch?v=e1yqvuRoufc
Concept: monotasking, time-boxing, taking breaks, rewarding yourself for concentration Method for application: Working in pomodoros -https://github.com/dwyl/time/issues/161
Concept: eliminate interruptions Method for application: designate interruption free time from colleagues and from your own distractions e.g. notifications, then batch process those small tasks in one go at a designated time so you don't have to keep on context switching throughout the day https://github.com/dwyl/time/issues/204
Habit formation
Concept: start forming new habits on certain days of the year considered best for 'fresh starts' Method for application: https://github.com/dwyl/time/issues/207
General/ All
- Thomas Frank's Youtube channel with videos on multiple topics - https://github.com/dwyl/time/issues/214#issue-405675058
Other reasons to track time
One very common reason for tracking time is employer-led. This kind of time tracking is to do with trust, payslips etc. As mentioned in numerous places: https://github.com/dwyl/time/issues/19#issuecomment-131234993 https://github.com/dwyl/time/issues/170 We should consider this when thinking about time tracking as a whole to see how our own goals may work with or against other key time management motives.
Discovery user research on efficiency and effectiveness:
What things are a poor use of our time? What do we not love doing?
- Repetitive admin tasks e.g. updating github labels/kanban board columns, filling in time sheets, making invoices
- Being distracted by notifications that are not important or not time dependent
- Spending time working out what needs to be done next (understanding where a project is at on github)
- Taking time to solve a problem which someone on your team has already solved before
- Multitasking / context switching
- Feeling like you can't focus - either due to distractions like noise or due to emotional reasons like tiredness, hunger, boredom or a feeling you can't attribute to any particular cause
What makes you feel good when working?
- Feeling productive
- Feeling in a state of flow - not being distracted/interrupted, time passing quickly
- Feeling like you're learning something (but not totally lost of direction)
- Feeling like you've achieved a goal, completed something
- Feeling like you've done a proper job on something (not cut corners, e.g. performed good tests, documentation, robust UI, fulfilled all the asked requirements, no technical debt etc.)