Not too long ago a scholar requested me:
Might you describe one occasion the place you had to make use of a diagramming device (eg. Google Slides Drawings, Lucidcharts, Miro, Whimsical, Gliffy and many others) to perform a job?
In addition they offered an instance reply I might comply with, which consisted of making a chart to map a consumer stream, presenting it, getting suggestions, including it to a different bigger doc, and creating Jira tickets.
I used to be a bit shocked (although concurrently not shocked) — is that this how software program improvement continues to be being taught?
With out being crucial of academia, this appeared like a superb alternative to attempt to shatter by-the-book software program improvement concepts for some future engineers by sharing a distinct approach — our approach.
Right here was my reply (barely edited for readability and typos):
I hope this reply is useful, however I truly don’t use a whole lot of diagramming instruments, and I feel it’s secure to say they’re not generally used at Basecamp. We don’t write specs and stuff like that as they’re not “actual” sufficient. We’ll do excessive degree sketches and tough drawings (often pen and paper or an iPad and a sketching app), however that’s usually it. So extra typically I’ll seize a pen and paper and sketch out a tough stream of what I have to do, or write out pseudo code of the steps that I have to take.
The explanation we don’t get too formal about diagramming is as a result of they’re typically not shut sufficient to actuality. You possibly can draw and draw, however the actuality is till you begin writing some code or implementing a design, you don’t know what you’re going to hit. Possibly you’ll hit a technical limitation or perhaps one thing simply flat out doesn’t work. All of the diagrams on this planet don’t get you nearer to discovering out that stuff. So the earlier you get to actual code, the earlier you‘ll get to seeing what’s doable. Quick and iterative in actual code is the place you need to be, not locked right into a doc.
As regards to frequency, I’d say I try this about daily. As a result of it’s so light-weight, there’s no barrier to entry. I’ll draw out what I have to do or write out the steps after which get to it. Fairly often I’ll hit one thing sudden after which redraw what I have to do. It’s quick and iterative, and nothing is written in stone (as a result of in software program nothing is ever written in stone!)
Whether or not you agree or disagree with our approach of software program improvement, it’s an trustworthy evaluation of how we’ve performed issues at Basecamp for a very long time. And I’d say all issues being equal, it’s labored out fairly properly for us. 😉