From 1a4da54f43450752bba67a862159abcefeb51d1b Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Mon, 29 Jul 2019 12:48:06 -0300 Subject: [PATCH] New chapter: Temporary/Permanent Solution --- content/books/things-i-learnt/_index.md | 1 + .../things-i-learnt/config-file/index.md | 2 +- .../permanent-solution/index.md | 41 +++++++++++++++++++ .../things-i-learnt/run-locally/index.md | 2 +- 4 files changed, 44 insertions(+), 2 deletions(-) create mode 100644 content/books/things-i-learnt/permanent-solution/index.md diff --git a/content/books/things-i-learnt/_index.md b/content/books/things-i-learnt/_index.md index 6d0e876..d633f1b 100644 --- a/content/books/things-i-learnt/_index.md +++ b/content/books/things-i-learnt/_index.md @@ -56,6 +56,7 @@ template = "section-contentless.html" * [Optimization Is For Compilers](optimization) * [Units Makes Things Clear](units) * [If It Doesn't Run On Your Computer, You Have A Problem](run-locally) + * [Nothing More Permanent Than A Temporary Solution](permanent-solution) * Making Things Go * [The Config File Is Friend](config-file) * [Command Line Options Are Weird, But Helpful](command-line-options) diff --git a/content/books/things-i-learnt/config-file/index.md b/content/books/things-i-learnt/config-file/index.md index 5805823..4d51e11 100644 --- a/content/books/things-i-learnt/config-file/index.md +++ b/content/books/things-i-learnt/config-file/index.md @@ -52,4 +52,4 @@ you'll find that you're half-way through it. [^1]: In other words, they have a [time to live](https://en.wikipedia.org/wiki/Time_to_live). -{{ chapters(prev_chapter_link="/books/things-i-learnt/run-locally", prev_chapter_title="If It Doesn't Run On Your Computer, You Have A Problem", next_chapter_link="/books/things-i-learnt/command-line-options", next_chapter_title="Command Line Options Are Weird, But Helpful") }} +{{ chapters(prev_chapter_link="/books/things-i-learnt/permanent-solution", prev_chapter_title="Nothing More Permanent Than A Temporary Solution", next_chapter_link="/books/things-i-learnt/command-line-options", next_chapter_title="Command Line Options Are Weird, But Helpful") }} diff --git a/content/books/things-i-learnt/permanent-solution/index.md b/content/books/things-i-learnt/permanent-solution/index.md new file mode 100644 index 0000000..2df46c8 --- /dev/null +++ b/content/books/things-i-learnt/permanent-solution/index.md @@ -0,0 +1,41 @@ ++++ +title = "Things I Learnt The Hard Way - Nothing More Permanent Than A Temporary Solution" +date = 2019-07-29 + +[taxonomies] +tags = ["en-au", "books", "things i learnt", "code", "writing code", "temporary solutions"] ++++ + +Depending on where you look, "Nothing more permanent than a temporary +solution" is either an old Russian proverb or a quote by Milton Friedman. +Thing is, temporary solutions, unless you think about the future to fix them, +will become permanent. + + + +A temporary solution may appear either as a proof-of-concept or due some +restrained deadline. You may create perfect [system +specs](/books/things-i-learnt/spec-first), you may have a perfect +understanding of the whole [in your Gherkin +files](/books/things-i-learnt/gherkin) but, at some point, you'll put some +small script to fix a minor problem, or do a "not so good" solution to a point +due to deadlines. + +This happens and unless you take steps to get rid of those, you'll end up with +a bunch of spaghetti code pretty fast. And that will snowball to a point that +you won't be able to manage the project. + +Once a scrum master suggested that we came with an idea to our product manager +to do something akin to "Every three sprints, we'll focus on product value; +the fourth one is ours to fix the things that are annoying us". I don't think +we ever talking to the product manager about this, but we managed to open +issues on our ticket system about the small warts we left behind, specially +due deadlines. So there we had, a specially crafted bug type for "technical +debt" which we never actually took the time to fix. + +Unless you have a pretty good safety net to fix those, they will life forever. +And it may be a better option to tell "we can't deliver in time" than adding +(yet another) temporary solution, as hard as it is to convince the higher ups +that you can't deliver the product with a temporary solution. + +{{ chapters(prev_chapter_link="/books/things-i-learnt/run-locally", prev_chapter_title="If It Doesn't Run On Your Computer, You Have A Problem", next_chapter_link="/books/things-i-learnt/config-file", next_chapter_title="The Config File Is Friend") }} diff --git a/content/books/things-i-learnt/run-locally/index.md b/content/books/things-i-learnt/run-locally/index.md index 9442b01..b073d15 100644 --- a/content/books/things-i-learnt/run-locally/index.md +++ b/content/books/things-i-learnt/run-locally/index.md @@ -39,4 +39,4 @@ If we had the chance to not use it and run all the development and tests on our own computers, I have the feeling we could deliver the product 2-3 months earlier. -{{ chapters(prev_chapter_link="/books/things-i-learnt/units", prev_chapter_title="Units Makes Things Clear", next_chapter_link="/books/things-i-learnt/config-file", next_chapter_title="The Config File Is Friend") }} +{{ chapters(prev_chapter_link="/books/things-i-learnt/units", prev_chapter_title="Units Makes Things Clear", next_chapter_link="/books/things-i-learnt/permanent-solution", next_chapter_title="Nothing More Permanent Than A Temporary Solution") }}