diff --git a/source/_daily_emails/2024-02-10.md b/source/_daily_emails/2024-02-10.md new file mode 100644 index 000000000..aa36987e9 --- /dev/null +++ b/source/_daily_emails/2024-02-10.md @@ -0,0 +1,43 @@ +--- +title: Do you really need it? +date: 2024-02-10 +permalink: archive/2024/02/10/do-you-really-need-it +snippet: | + Do you really need that new feature? What are the long-term implications of adding it? +tags: + - software-development +--- + +{% block content %} +Before adding a new feature or change to a codebase, ask if it's really needed and consider its long-term implications. + +Code is easy to write, but needs to be maintained as newer language or framework features are added or have breaking changes. + +Something I've added recently to Build Configs was an option to use an [inclusive or exclusive .gitignore file][gitignore]. + +Whilst it's only adding an if condition based on a value, it adds a separate path in my code and both need to be maintained. + +I've been thinking of adding `just` again to some projects instead of a `run` file, which would add separate files that need to be maintained and kept up-to-date with each other so both offer the same features. + +Is this something I want to maintain going forward? Does it add enough value to justify its maintenance? + +Different to a feature flag, which usually has a known lifespan, this could need be maintained for the whole lifespan of the application. + +On a client project, this could be having two sets of buttons with rounded and square corners. + +Do we need both? + +It could be the positioning of a title in a header. Fewer options mean there is less code to write and maintain. + +In a Drupal project, each choice could mean adding a different field, taxonomy term, or content or block type to achieve the desired result. + +The more we can achieve with fewer options means the application will be easier to maintain and work on in the future. + +[gitignore]: {{site.url}}/archive/2024/01/27/gitignore-inclusive-or-exclusive +{% endblock %} + +{% block cta %} +P.S. Do you need immediate access to an expert Drupal Developer? [With my Drupal development subscription][subscription], make unlimited requests for a fixed monthly price in less time than posting to a job board! + +[subscription]: {{site.url}}/subscription +{% endblock %}