Julio Biason
6 years ago
3 changed files with 49 additions and 0 deletions
@ -0,0 +1,40 @@ |
|||||||
|
+++ |
||||||
|
title = "Things I Learnt The Hard Way - Spec First, Then Code" |
||||||
|
date = 2019-06-18 |
||||||
|
|
||||||
|
[taxonomies] |
||||||
|
tags = ["en-au", "books", "things i learnt", "specs", "code"] |
||||||
|
+++ |
||||||
|
|
||||||
|
"Without requirements or design, programming is the art of adding bugs to an |
||||||
|
empty text file." -- Louis Srygley |
||||||
|
|
||||||
|
<!-- more --> |
||||||
|
|
||||||
|
If you don't know what you're trying to solve, you don't know what to code. |
||||||
|
|
||||||
|
A lot of times we have this feeling of "let me jump straight to the code". But |
||||||
|
without understanding what problem you're trying to solve, you'd end up |
||||||
|
writing a bunch of things that doesn't solve anything -- or, at least, |
||||||
|
anything that _should_ be solved. |
||||||
|
|
||||||
|
So here is the point: Try to get a small spec on whatever you want to solve. |
||||||
|
But be aware that even that spec may have to be thrown out, as the |
||||||
|
understanding of the problem tend to grow as long as the project continue. |
||||||
|
|
||||||
|
Yes, it's paradoxical: You need a spec to know what to code to avoid coding |
||||||
|
the wrong solution, but the spec may be wrong, so you _end up_ solving the |
||||||
|
wrong solution anyway. So what's the point? The point is, the spec reflects |
||||||
|
the understanding of a problem _at a certain point_: All you (and your team) |
||||||
|
know is _there_. |
||||||
|
|
||||||
|
The times I stood longer looking at my own code wondering what to do next were |
||||||
|
when we didn't have the next step defined: It was missing some point of the |
||||||
|
solution or we didn't have the communication structures defined or something |
||||||
|
of sorts. Usually, when that happened, I stumbled upon Twitter or Mastodon |
||||||
|
instead of trying to solve the problem. So when you see yourself doing this |
||||||
|
kind of stuff -- "I don't know what to do next, and I'm not sure if I'm done |
||||||
|
with the current problem" -- then maybe it's time to stop and talk to other |
||||||
|
people in the project to figure that out. |
||||||
|
|
||||||
|
{{ chapters(prev_chapter_link="intro", prev_chapter_title="Intro") }} |
Loading…
Reference in new issue