Any project has a certain amount of planning that's required before a single line of code can be written. As I've learned more about the craft, the scope and complexity of my personal projects have increased to the point where my usual of M.O. of "scribbles in a legal pad" isn't going to cut it anymore. What are some tools that you've found helpful in organizing your thoughts around a new project, either on your own or with a team? Are UML-style diagrams or prototypes a must, regardless of project?
When a brand new brilliant idea hits, what's step one towards realizing the goal?
Top comments (19)
At least for me, if it is a small project I use the GitHub projects tab. I divide the project in 2-5 sections and define everything that I need there. For example for a web server, one section would be manage HTTP requests, another the Database and finally the public folder.
It isn't the best option by far, but it can be a complement to other resources.
Great suggestion! That system does look easy to use. I'd personally prefer a tool that wasn't tied intrinsically to GitHub, but as I find myself using it more practically everything anyway it's probably worth a shot. Thank you!
Oh, they are called kanban, a quick search will give you millions of services almost equal
Ah, that's what I needed! Thanks, I think that's exactly the word I didn't know.
Trello was used on a number of my projects in the past.
Has a decent app as well, if you fancy that kind of thing.
This seems like a great solution, I think it's the route I'll explore first.
I'd start with an outline of my project in an Org mode document. orgmode.org/.
I wrote a bit about my journey in this blog post.
TLDR: I use Emacs for everything. Project + task management, reminders, code, journaling, writing, email and even a bit of web browsing. This response is being written in Org mode.
The starter-kit Scimax provides many nifty features out of the box to enable project management. Typically, I start a new project (within 2-3 key strokes max โ could be 1 if I want!), supply a name - thats it. Functions are in-built to create a sub-folder in a specified project directory, as a git repo. I have the parent project folder as a repo as well, with each project / sub-folder as a sub-module.
This is amazing, thank you!! I've been neglecting Emacs, I know there's a ridiculous amount of untapped power and flexibility there.
Oh yeah!! Emacs is pretty much a black hole in terms of getting sucked into perfecting workflows (more than actually getting work done :D). A balance is required.. as I've learnt the hard way.
In general, if you can weather through the relatively steep learning curve - the benefits will grow exponentially. That has been my experience too.
As such - it is very easy to get started with an org-mode document. The learning curve is about getting very specific things done via customisation and understanding some archaic terminology like 'buffers' , 'yank' and so on.
Note: there are other starter-kits out there too. Prelude, Spacemacs, Doom-Emacs and so on. The philosophies are quite different.
I started with spacemacs and eventually just started over from scratch with ivy/which-key, but never got too much deeper into customization.
Org mode has been on my "to-try" list for altogether too many years - maybe it's finally time to break the damn seal :)
Prototypes are a good idea. They're invaluable regardless of the methodology you subscribe to; waterfall, agile, or anything in between. Especially if you have external people/non-engineers/"customers" or aren't 100% sure of what you're doing.
Every time I start new projects/jobs I like to try out new things. We experimented with a few different processes and tools (trello, hansoft, post-it-notes) before settling where we are now (jira).
I've not had much need for UML. I think Visual Studio (and probably other tools) can generate interfaces from UML diagrams and that definitely appeals to me. But more often than not the requirements (business/technical/other) are too unclear to invest in relatively heavy up-front planning like that. Was useful on some projects using waterfall, though. I'd only recommend it if you're extremely comfortable playing architect and doing up-front design in the problem space.
That said, I still do lots of planning/design/problem solving with pen and paper or whiteboard with others. It's often a first step for me to quickly think "out loud" to myself before moving to a "real" tool.
Honestly, I've worked on enough small/medium/large projects at enough small/medium/large companies that I don't think it really matters what you use. Everyone just needs to agree on what to use, and then actually do it. You're going to under-estimate how hard it is and things probably won't go "according to plan". If there were any silver bullets everyone would do the same thing. If you're by yourself (or just a couple of people), pick whatever is fun/easy/low-overhead. If it's not working out, learn from the experience and try something else. The goal is to make things, not make how to make things. ;)
This is a phenomenal answer, thanks for writing out!
Interesting perspective about UML. My only exposure was at my first paid development gig, where it was...valued quite highly, and I'm not convinced it was always a good use of our time. I see the merit, but will probably steer clear at least for personal projects.
That's a great point about consistency being more important than the specifics. Some good food for thought here, much appreciated.
Recently I have been using notion and loving it! Donโt use the web client though, try the app.
Thanks for the tip! I'll give it a whirl.
Trello, scrivener to write SDD, regular ole notepad for initial ideas, XMind occasionally for brainstorming. I like my pocket notepad for writing rough ideas with pen and paper.
First I've heard of XMind, looks quite powerful. Thanks!
None? :P
Sounds messy!
Some comments may only be visible to logged-in visitors. Sign in to view all comments.