Awesome
<div align="center">Product Roadmap
</div> <br />- Product Roadmap
- Why? 🤷♀️
- What?
- Who?
- When?
- How?
Why? 🤷♀️
Having a clear Product Roadmap is essential to help everyone focus on our collective goal.
<br />Note: this document is a "work-in-progress", it's definitely not "finished". <br /> A good product roadmap evolves over time in response to feedback; by definition it's never "complete". <br /> What you are reading is a snapshot of the roadmap as it is right now. If you ⭐ (bookmark) the repo and return to it in future, it will definitely be different because we update it fairly regularly. We use a Git repo so that we (and anyone
else
in the community) can track the changes/evolution as we Learn, Build and Measure. <br /> We welcome any/all feedback on it especially from people who arenew
to the@dwyl
community. <br /> Please open an issue if you have any ideas/questions. Thanks! ✨ <br />
Why Are We Building An App?
If there was an existing (Open Source Cross-platform Real-time Collaborative) system that allowed us to achieve everything we have in mind for the dwyl App, we would use it without hesitation. Sadly, we have not found any platform that has a systematic, goal oriented and collaborative way to effectively let individuals and/or teams:
-
Set goals that are "SMART" either freeform or using the OKR framework.
-
Capture everything on one's mind as (plaintext)
items
, (voice)recordings
orimages
to declutter thoughts and think more clearly/creatively -
Categorise the
items
into logical categories usingtags
(ideally linked to specific goals). -
Transform
items
of text into actionableitems
such as: "Task" (with context, deadline, progress, dependencies, etc.), "Reminder", "Calendar" (Meeting, Date, Event, Travel, etc.), "Ingredient" (Shopping listitem
), etc. We want complete versatility in thetags
that can be applied to items so that our App can be used for any purpose that helps people organise their lives. -
Track tasks and goal progress visually.
-
Communicate with others what task we are focussing on so we can all avoid interrupting/distracting each other during "Deep Work" Avoiding the "what you doing" type questions, or general interruptions is essential for focus work.
-
Delegate specific tasks to people in one's family/team/org with built-in tracking to eliminate "status update requests"
There are plenty of "productivity" apps that partially solve these problems. Most of the Apps you/we can list are Closed Source, which rules them out (for us) for the reasons described in "Why Open Source?" (below). We have scoured GitHub/GitLab/etc. to find an Open Source App/system we can use and nothing comes close to solving the problem. We have extensively studied the UI/UX of the Closed Source Apps see: https://github.com/dwyl/product-ux-research/issues and none of them have the workflow (UX) we want or they focus on the wrong things!
We want to help people focus on the one task
they need to be doing right now,
and easily hide/show the rest when needed.
We want to apply both the science and art of distraction-free focus
we have read about in books such as
"Deep Work",
"Indistractable",
"Digital Minimalism",
"Make Time",
"Tools of Titans",
"Hyperfocus"
and many others.
The fact is this:
none of the existing closed source Apps
help you to prioritise and focus
on your highest value/impact items
.
We are fixing that!
What?
<!-- In "Phase One" of dwyl we are building a software application to solve a _specific_ set of ***7 Universal Human Needs***: 1. **Communication** 2. **_Personal_ Effectiveness** through **Task and Time Management** 3. **Teamwork** 4. [***Self-Actualisation***](https://en.wikipedia.org/wiki/Self-actualization) Later, once we have an _excellent_ UX for our core app, we will strategically expand our app to cover other areas including: 4. **Life-long Learning** 5. **Nutrition, Health and Fitness** 6. **Personal Finance Management** > _**Note**: we don't expect a **single** app to magically "**solve**" all of these problems, and we are **not** going to "tackle" all the problems at **once**; we may end up only having time/resources to solve **one** of these challenges. This list is intended as a guide not a "gospel"._ -->dwyl's mission is to:
Empower people to maximise effectiveness, creativity and happiness.
Although Tony Robbins is a somewhat polarising character, we unreservedly agree with this thought:
"The secret to happiness is one word: progress. <br />Progress equals happiness." ~ Tony Robbins
We believe that by helping people effectively keep track of their progress toward their goals, <br /> they will naturally be happier. Happiness is almost a byproduct of personal effectiveness!
"Happiness is not something ready made. <br />It comes from your own actions." ~ Dalai Lama
By helping people to focus their efforts on their highest priority items, we are helping people be happy. <br /> That's a mission we can all get on board with!
Our immediate plan is to build a single app that satisfies several human needs focussed on the theme of "personal effectiveness".
The @dwyl App will be a "hybrid" containing several features that together help the individual achieve all of their personal goals through a systematic workflow.
<br />What Problem Are We Solving?
We are building an App that creates a systematic approach to solve the problem we all face every day: <br />
- Staying focussed on the highest priority
item
. - Capturing everything that comes in to one's mind/inbox/messages/etc. but not allowing it to distract us from what we are currently working on.
- Prioritising regularly to ensure that
nothing important is forgotten
and we aren't wasting time on low-priority/value
items
. See: dwyl/app/issues/283 - Sharing our list with relevant people in our team/family so they are aware of what we are thinking.
- Knowing what other people in our team/family are working on so that we never interrupt their flow.
What do you think of when you see/read/hear/think of the following words:
"I don't have enough time to..."
How many times have you heard a friend, family member or work colleague say these words?
"I don't have enough time to:" <br />
exercise
- prepare
healthy
food- get a full night's
sleep
read
a bookdeclutter
andclean
- learn a
language
- learn/practice a
skill
that will get me the job I will love doing- spend with all my
family
andfriends
- meet
new
people- try
new experiences
- pursue a
creative hobby
that brings me joy- play a
musical instrument
- go outdoors and enjoy
nature
travel
... the list of things we think we don't have enough time for is infinite. <br /> These are just the ones people most frequently mention.
Even if we don't say the words out loud, we have all thought them at some point. <br /> We all forego doing things that we really want/need to do because we feel like there isn't enough time. <br />
Whatever your mindset regarding the amount of time you have available to do everything you want in life, one thing is certain: without a systematic approach we are all ineffective in how we spend/invest our time.
You may have seen the following quote online:
"Lack of direction, not lack of time, is the problem. <br /> We all have 24-hour days." ~ Zig Ziglar
or
"The bad news is time flies. The good news is you’re the pilot” ~ Michael Altshuler
or the most cliché of all:
"You have the same number of hours in a day as Beyonce" ~ Instagram
The problem with these "motivational" quotes often repeated on social media is that they can make us feel worse about our time-management - self "productivity shaming" - and don't actually help us move forward! Queen Bey has an army of people helping her get the most out of her day. The rest of us don't have personal assistants and entourages of people to help us maximise our time. The rest of us need a system!
<!-- Whenever you hear a self-proclaimed life coach or time management guru giving _anyone_ advice without providing a system, _run_! They are just trying to take your money and make you dependent on them. You don't need to pay five thousand dollars to attend a week-long semminar on time management. You need a _basic_ 7-step system that works and you can use for _free_! -->Each person has their own reasons for not having enough time, but the universal fact is that very few people are living their best life. For most people it's not their fault. The existing systems for keeping us "on track" are fundamentally broken. The pull of distraction is overwhelming to most people.
Billions of people have been lured into burning time on low-value entertainment activities such as watching TV or endlessly scrolling through social media apps instead of working on their personal goals.
<!-- > For the single mom with 2 kids and 3 jobs to make ends meet who doesn't spend a single _second_ on entertainment, our App will _still_ be able to help! TODO: Create Persona for this person: https://github.com/dwyl/app/issues/213 -->As former Facebook President, Sean Parker put it: Facebook's goal is to <br /> "consume as much of your time and conscious attention as possible". <br /> The more time you spend on their platforms the more money they all make. <br /> They don't care that they are systematically wasting the lives of millions of people.
The reason most people are ineffective at focussing on tasks that move them toward a specific goal is that they don't have adequate systems for focussing on what matters and maximising personal effectiveness. Meanwhile the system Mark & Pals have created has an army of Social/Computer Science PhDs whose job it is to make their time-wasting Apps as psychologically addictive as possible. The average person without a systematic approach doesn't stand a chance!
System
"You do not rise to the level of your goals. <br /> You fall to the level of your systems." <br /> ~ James Clear, Atomic Habits
The system we are building
is designed to help ourselves and others
move towards our
(life/health/fitness/career/etc.)
goals.
We haven't found a catchy one-line phrase
to summarise it yet. (#HelpWanted
)
Instead we can describe the App as a means
to answer the following 10 questions:
- What are my goals in life? (personal/professional/family/financial/fitness/etc.)
- Is what I'm doing right now moving me towards one of my goals?
- What is the highest priority task that I should be working on right now?
- Is the highest priority task well defined or does it need more detail before I can start on it?
- What is the smallest thing I can do to make progress toward one of my goals?
- Am I effectively communicating what I'm working on with other people so they know when I am focussing?
- Is there anything requiring my attention right now that cannot wait until the end of my current highest priority task or focus time interval?
- Who in my team/family needs me in order to make progress on their current (or next) task?
- Which task on my list can I delegate to someone else so that I can focus on the item that only I can do.
- What should I avoid doing or say "no" to now so that I can focus on my highest priority item?
"The difference between successful people and really successful people is that really successful people say no to almost everything." ~ Warren Buffet
What do you need to (politely and plainly) say "no" to so you can focus on your goals?
<!-- https://zenhabits.net/enough-time https://www.lifehack.org/articles/productivity/10-reasons-why-some-people-feel-like-they-dont-have-enough-time.html --> <br />3 Stages of Our Roadmap
1. Individual Person Experience -> Single Player
If the App is not immediately useful to an individual person and relies on "network effects" it will be DOA. <br /> We need to optimise for the individual first and then once we are able to use the App individually ourselves, we can move on to the "Team" experience (see below).
In the individual person experience, the person uses the dwyl App to:
-
capture > brain-dump everything they have in their head so that they can think clearly (without a cluttered mind) and prioritise. 📝
Capturing text (and later voice memos and images) as "items" which can then be categorised/organised using tags is the most intuitive and versatile way of storing data. We only need one field or data type (
text
). We can then applytags
to anitem
to make it into anything else. And then the UI renders the item with the appropriate UX for anitem
with thetag
"task"
, displaying a checkbox next to it. -
define individual goals so they can be more systematic about achieving them. e.g:
-
Health: exercise for (at least) 1 minute each day so I can get/stay fit ❤️
-
Money: save at least 1% of my income each week/month for a rainy day/retirement 💰
-
Family: spend at least 1 minute of quality time with a family member each day 💑
-
Sleep: get a full night's restful sleep each night as the foundation for all other goals. 🛌
-
Career: practice/learn core work skill(s) for 1 minute each day to achieve mastery. 👩💻
-
etc ...
There are many areas where people can have life goals. Eventually our app will encourage people to have goals defined for each area of a person's life. We will have an on-boarding questionnaire to guide them, a visualisation of "progress" toward each one of the goals and reminders to review them regularly. All features to be added to the backlog and worked on in due course! For now, we need the basic Personas for individuals using the App to guide our discussions.
-
-
categorise the
items
(oftext
) they brain-dumped into meaningful categories usingtags
Ideally people should tie each
item
to a specific goal so that it's clear to them why they need to do something or why a particularitem
of information is relevant to them. However we aren't ever going to force any particular "system" on people. If someone wants to use our app just to take randomplaintext
notes that's 100% OK. We will write Blog posts (product release notes) for the features we build in the future that will guide people toward having a more systematic approach. e.g: set goals, write everything down, tie all tasks to specific goals, etc. But until we build those features into our App, we must make it useful inplaintext
mode. -
prioritise the
items
that need to be done first, those that can be differed or delegated."If You Don’t Prioritize Your Life, Someone Else Will". ~ Greg McKeown, Essentialism
-
Use the App to stay "on track" toward personal goals and get the most important things done.
While we feel the individual experience of the App needs to be flawless as we want anyone to be able to use the app in isolation, we feel the App becomes exponentially more useful/powerful in teams.
<br />2. Small Team Experience -> Co-op Mode
We feel that our App will be incredibly helpful to small "teams" of people who need to collaborate on getting things done. Small teams will not be limited to "work" colleagues. Rather we will have personas for families, groups of friends and other associations. We will focus on this "team" use-case as soon as we have the basic individual UX working.
If you are keen on helping us with the Colab features, please take a look at our existing backlog: https://github.com/dwyl/app/issues If there is a feature you don't see and want to help us describe, please open an issue!
3. Big Company/Org Experience -> MMORPG!
There is no reason why a "Big" company or organisation cannot use the dwyl App. But this is not our focus right now. We need to crawl, walk & run before we attempt to fly.
<br />Basic Workflow
The @dwyl App Will have the following basic workflow: Capture, Categorise Complete.
- Capture - capture everything that is on your mind
in a "brain dump" of one or more
items
of text. - Categorise - split out blocks of text
into distinct items and categorise them. <br />
a) What type of info/item is it?
e.g: Todo Item, Reading list item, shopping list,
random thought, bucket list? <br />
b) Do you have an existing category/tag for the item
or is it
new
? <br /> c) Contextualise the item in terms of time/space: a shopping list item context could be "grocery store" whereas a reading list item could be "daily commute"<br /> d) Add any additional detail you can think of at the time. e.g: acceptance criteria, deadline, dependencies <br /> e) If the item is a task that has sub-tasks, create and link them. - Complete - do the work to complete the item/task.<br /> a) Re-read the original description and determine if you have everything you need to start the task. If not, write down what is missing. <br /> b) Delegate if necessary/possible <br /> c) Track progress of the task. <br /> d) Confirm it was completed to expected standard. <br /> e) Review & Reflect - confirm the task was completed and all the original criteria were met by the assignee. Leave a brief feedback comment with any thoughts. Check the item off as "Done" if appropriate.
For the first step (Capture),
we will build an ultra-simple interface
to allow people to
input plaintext
and save it to a backend as text
in one or more items
.
For details, please see:
brain-dump.md
Once the text input is working, we will iterate and improve it in several interesting and innovative ways in response to feedback from people using the MVP. <br /> We will add additional methods to help people "capture" information. e.g:
- Linking to external sources of information
- Photo/image uploads
- Optical Character Recognition (OCR)
- Image/object recognition
- Voice/audio recording
- Speech transcription and indexing
These are complex features that have formed the basis for entire companies. So in order to make progress with them, we will need to significantly leverage the Open Source work of many brilliant people. But we are getting ahead of ourselves; we need to first focus on creating "MVP" versions of each step in the workflow.
For the second step, Categorise, we will need a tagging system that allows people to apply textual labels to items. The UX for this is still "TBD". We will need to sketch it out ahead of sprint planning. See: https://github.com/dwyl/app/issues/235
And finally for the third step, Complete,
we will build a simple checklist system.
See: checklists.md
USP: What is different about the @dwyl App?
A valid/relevant question is: what makes the @dwyl App unique?
i.e. What is our "unique selling point"?<br /> The answer is: initially it may appear that our App does not differ much from existing apps that partially solve the personal effectiveness challenge.
The major differences will become apparent in due course:
-
People Not Profits - We are playing an "infinite game" where our mission is to "Empower people to maximise effectiveness, creativity and happiness." See: What is dwyl's mission? We will not rest until we have created a system/app that is universally accessible to every human being that allows everyone a fair opportunity to live their best life. We will cooperate with many people/organisations to build a comprehensive solution that anyone can use.
-
Open Source - All of our code will always be Open Source. That means anyone can modify/extend/improve it. And if people feel we are not doing a good enough job of stewarding the App/community, they can tell us! Of the many "productivity" apps out there, almost none are Open Source. This means that your usage is locked-in to their system for better or worse. Your data is bound by their "terms and conditions" (including being visible to 3<sup>rd</sup> party "analytics" providers i.e. Google) and you are a hostage to their whims. If they decide to have a UI re-write that completely changes how you interact with the App, you have no control and are forced to use the "new version"; their way or the highway. We are going to eliminate forced updates by implementing a UX/UI innovation we call Progressive UI.
-
Progressive UX/UI - the UX/UI for each person using the app, will be personalised to the individual based on the features they (most) use. If the person does not use a particular function, they won't see it.
Note: This might not feel relevant during "MVP", but it will be an amazing feature once our app has lots of functionality.
- Best-in-Class Engineering Practices - Focus on high quality software product with best-in-class engineering practices. We are building a robust and reliable app with a focus on end-to-end testing to ensure a consistent UX on as many devices as possible. There shouldn't be any surprises or inconsistent UX (bugs), and if there are, they can be reported and fixed fast.
Familiar UX?
In some cases the features and UX we are building may appear familiar because several other people/teams/companies have attempted to solve this challenge before. If you are well-versed in existing software/apps or curious about UI/Design in general, you might find certain features familiar. You may think: "note-taking similar to Evernote", "collaborative editing like Google Docs" or "offline reading like Pocket". In most cases the app(s) that already has/have a certain feature(s) (e.g. nested note-taking, collaborative editing or offline distraction-free reading) did not invent the feature, they merely have a memorable implementation of it. Our intention is never to "copy" the feature/UX of another App, but we will draw inspiration from many sources.
Who?
Who is this product roadmap intended for?
- Everyone using the dwyl application.
- Everyone contributing to the various project(s) that make up the dwyl app.
Real People
Personas
<img width="1504" alt="busy working mum persona" src="https://user-images.githubusercontent.com/194400/214538321-b80e762e-e6f7-4507-bf52-b52500d8d874.png">
<img width="1536" alt="nelson notime persona" src="https://user-images.githubusercontent.com/194400/214541196-0580e31c-579e-46e3-be44-24611859750c.png">
As you can tell,
these people
are not only real
they are "us"!!
@iteles
&
@nelsonic
We are building the App
that we need for ourselves!
If you have a similar pain in your life. Join us! Create a persona: dwyl/process-handbook/personas
<br />Who NOT?
Who should not be reading this product roadmap?
Anyone who:
- believes the World (or themself) "cannot be improved". If you already have everything in your life figured out, you probably won't be reading this.
- thinks the challenges listed above are "already solved" by "XYZ Company" ...
- is not obsessed by working on solving a problem that benefits all of humanity.
- does not want to learn the skills required to build something meaningful.
When?
We started a laying the groundwork for building the dwyl app while ago ... <br /> The app is undergoing constant/ongoing improvement, we don't expect the app to be "finished" because there are so many useful features we want to build.
Get involved today and help us prioritize which features get built next!
How?
If you want to get involved in helping us with the App, there are 4 ways to help:
- Please Use the Beta App:
mvp.fly.dev
- Give us feedback on the existing UX
dwyl/mvp/issues
- Read the issues and help us answer questions if you can.
- Write some
code
! See: https://github.com/dwyl/technology-stack
Tech & Features Roadmap
This list will evolve over time. <br /> and check them off this list as we go We will insert links to specific features
MVP Basic Workflow
- Mobile First UI/UX to Capture
plaintext
Our reasoning for mobile-first is that - Save
plaintext
data to Phoenix backend see: dwyl/app/milestone/2 - Simple UX to Categorise (Transform)
the
plaintext
into actionable items. <br /> UI/UXhelp wanted
: https://github.com/dwyl/app/issues/235 - Start working on task (start timer for item) see: https://github.com/nelsonic/time-mvp-phoenix#create-schemas
- Check a task off as done.
After the MVP workflow is complete, we will hold a sprint demo to showcase the state of the App. The sprint demo will be recorded on our Zoom call. Following the sprint demo call we will do a backlog grooming session to discuss the features/ideas list:
Offline Support
- Create Progressive Web App using Elm. see: dwyl/learn-elm#54 and dwyl/app#254
- Save data on device if offline.
Image Capture
-
Capture (upload) images from mobile+web
-
Categorise (tag) the images for findability.
Authentication
- Create accounts to allow people to own their content/items.
- Authenticate with GitHub OAuth
- Associate person record with GitHub username + token.
- Associate
items
withperson
Audit Logging and Record History
- We need a way of preserving the history of certain records.
Phoenix does not offer this by default.
The Phoenix "CRUD" overwrites records and
deletes
data permanently, this is undesirable if a person ever wants to undo an action. See: https://github.com/dwyl/postgres-history-spike/issues/1
Note: while the App Store might categorise the App we are building as "Productivity", we don't refer to it as
Why Open Source?
Public?
From a "commercial" perspective, making our
Product Roadmap public
can be viewed as
"giving away all our secrets" by those who follow
traditional (competition-focussed) capitalism.
We don't think we are "competing" with anyone, rather we are trying to serve the people using our app and listen to their feedback. If there are other people/teams/companies trying to solve the same challenge as us and they are not open-sourcing their code and/or guarding the user-feedback, they are stuck in a fixed mindset. We believe that radical transparency and openness both in what we do and how we do it is essential for succeeding in our mission.
Only time will tell if making our product roadmap Public on GitHub is a good or bad idea, we think it's worth the experiment just to discover the outcome.
<br />Why Do So Few Companies Make Their "Road Map" Public?
Most companies/organisations are deliberately "guarded" with their Product Roadmap for a number of reasons that can be summarised as "FUD":
- Fear that a "competitor" will "steal" their ideas (and get to "market" faster thus "capturing" the "users" and market share)
Note: In some cases this fear is justified e.g: where an innovation is easy to replicate and difficult to differentiate.<br /> However we hypothesize that being open and transparent with our roadmap will foster a more collaborative culture.
-
Fear that members of their own team will leave and "steal" their secrets; <br /> this does happen but only because the knowledge is not shared openly.
-
Uncertainty about the future of their product/industry. <br /> Committing to a long-range map implies a fixed/inflexible destination.
-
Doubt in their own ability to deliver the plan.
<br /><hr />
Final Note
The purpose of this document is to share the "Vision" for what we are building. No map is a complete representation of the world; it's just a "model" that allows us to think about it. When you open Google Maps on your phone it does not show you all the street lights and advertising billboards. It's the same thing with a Software Product Roadmap. Including everything would be totally overwhelming to the reader.
Just because a feature is not on this roadmap does not mean we have not thought of it. In some cases ideas are only in the Backlog: app/issues and are not reflected here. In many cases the features/ideas are added to and discussed on the backlog and never added to Roadmap because they don't need to be on the map.
Our long-term objective is to build a "Platform" for Personal Effectiveness that other people can add their own features to. That is not described here because it's too "grandiose" at this stage. Instead, that part of our long-term vision is summarised as "API". Having a REST+Realtime API will allow anyone to interact with their data and build their own UI/UX. Building a Platform will allow any developer/team to build entire features and make them available to the entire base of people using the @dwyl app. That's a much bigger undertaking, which is why we are not discussing it until we have traction (10K+ people using the app each day).
<br />Further Reading
- "How we built a product vision and roadmap": https://wildbit.com/blog/2016/05/11/how-we-built-a-product-vision-and-roadmap (a really good read! also image credit!)