From 426cf6e240ebb5c500b658e29c601c59772627b2 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Mon, 14 Nov 2022 00:15:29 +0000 Subject: [PATCH] docs(daily-email): add 2022-11-12 --- website/src/daily-emails/2022-11-12.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 website/src/daily-emails/2022-11-12.md diff --git a/website/src/daily-emails/2022-11-12.md b/website/src/daily-emails/2022-11-12.md new file mode 100644 index 00000000..82f71a56 --- /dev/null +++ b/website/src/daily-emails/2022-11-12.md @@ -0,0 +1,26 @@ +--- +title: > + Building a minimum viable product and managing technical debt +pubDate: 2022-11-12 +permalink: > + archive/2022/11/12/building-a-minimum-viable-product-and-managing-technical-debt +# tags: +# - a +# - b +--- + +Yesterday's email was about a proof-of-concept application that I’d quickly built to validate an idea and explore some initial approaches. + +Today, I’ve been working on a client project that I’ve improved and maintained for a few years. + +When I started working with this client, they had one website, built with Drupal 7 and Drupal Commerce. Now, there are x websites using the same codebase due to Drupal’s multi-site functionality. + +My main task for the last few months has been to get one of their sites onto Drupal 9 (which I did, it went live in October). + +This first site was the "minimum viable product" (MVP) - the least amount of functionality required to make it releasable to customers. This is different to a proof of concept which is to validate the idea and start a conversation about requirements and scope - where we define the MVP. + +For example, there is the ability to create products and product variations from a CSV file. It loads the file from disk and creates the products, but it doesn't update a product variation if a row with an existing SKU is changed, or disable the variation if a row is removed from the file. There is no admin UI for the client to upload a file - the only file that it'll use is the one that's path is hard-coded within the module. + +There are user stories for this, but we decided that we didn't need it for the initial launch and that we were happy to take on some technical debt, knowing that we can address it later when the original solutions are no longer sufficient. + +Now the minimum viable solution has been released, we can continue to iterate and enhance it based on customers' feedback, add more functionality, and address the technical debt as needed and as requirements require us to do so.