There are multiple ways of making a project* and we will talk today about them. About productivity, and about planning. Everything that is needed to finish my side, “for me”, pet, projects.
* – project – personal, coding/diy/tinker projects, sometimes code only, sometimes including electronics. But personal ones. I do not touch here topic of commercial stuff that i do on my contract.
Also sidenote: this is first post tagged with DATE OF WRITING. As it is important to me to add this date into a posts, and i have wrote about it two days ago… And i do not know if it was already posted when it goes alive 😉
CODE!
Oh i know this tactic. You have an idea of nice thing to do… and you sat onto your text editor or IDE and CODE! Just pure invention goes from idea into code. You can smell smoke of burning keys under your fingers, ideas goes directly to computer. You feel like a young God and it is so great when you push Compile button …
And it is great for things that you can finish in less then two hours. Everything from idea to working properly stuff. Then this way is OK. Otherwise you will end struggling in the ocean of Lava, with nightmares and devils dancing on your grave.
Sorry but it is truth.
When you come back from work next day you will have no fucking idea what was your ideas “at the moment” and you will loose it forever. You have not noted your ideas, you have noted only implementation of that in code. And if it is faulty… then you cannot go back. You cannot reverse this process to get ideas.
DIAGRAM!
I was there Gandalf… four thousand years ago… Drawing diagrams and models of what i want to do on first place. And it is good when you want to create a new LEGO set… or tool to be printed or cutted… but not for software.
Will you remember what THAT arrow was about after a week? Or why there is connection between database and frontend directly? Even when your thought was “there will be simple CRUD API between” you will not remember it afterwards… So why the hell are we all making that mistake and draw diagrams?
Because we see them everywhere. TV shows about “great IT ideas” tells us “we draw it on a napkin” and they show us napkin with algorythm. On the IT conferences we all see diagrams of how tools work underhood, on tutorials, on docs… diagrams everywhere.
BUT we have to remember -> diagrams comes FROM code, not FOR code. Diagrams are great way to show how something works. They are not blueprints to build sth, they are photos of working mechanism.
NOVEL
So why not to write (or even record?) a novel about our invention? Why not start on with words
I want an solution for: not beeing tracked by bigCorps when riding a bicycle and making my routes viewable for friends. I want to put there photos on the map of my ride, and notes about rides and even places (Points of interest?). I want ability to make my friend a place to comment my rides.
So? Yup this is a strava or garmin connect or anything like that clone description. And when we start from here -> WHY and WHAT, we can follow it by
So I need: website like a blog that i can put there gpx file with description and comments. Later on i will need to add photos as a gallery and then point them onto map. Also comments onto map pointers will be needed later.
Here we have a User Stories and their order to make -> most important to less important. Simple? Maybe we will need sth in addition? Like an upload management, API to use existing apps to upload gpx directly from somewhere or to upload them from pc because we are making tracks on a physical device like garmin?
And so on with stories. AFTER we create this big novel of “why i am writing” and “what i want and what i need” you can write another text:
So i need a simple react frontend with a list of links, that will be a mainpage. Then ill create a single page template that will contain map with static gpx, text and section for photos and section for comments. Next stage will be adding linked gpxes, and panel for adding these all data in one structured way (admin panel?). Then when i will know what i need from frontend i will create an api and DB for them to store. TBD about what kind of DB i will need when i have examples of data to store.
Looks simple? Then you can create tasks from that, and code … knowing even after few weeks of not looking at code and project WHY are you doing it, WHAT are you doing and… how to do them in a way that you wanted.
Lodz. 2.02.2023