Yet Another Extra Step for becoming a better Software Engineer

A photo of ENIAC: The first programmable, electronic, general-purpose digital computer. (credit: Wikipedia)

Let’s consider a fictional story here.

SELECT
temp, units.symbol
FROM
temperatures
JOIN
units
ON
units.id = unit_id
WHERE
start < GIVEN_DATE()
AND
GIVEN_DATE() < end
SELECT
temp
FROM
america_temps
WHERE
timestamp < GIVENDATE()
ORDER BY
timestamp
LIMIT 1
  1. Instead of converting simple data into a structured one, you designed your app based on what is given. Because otherwise, it would lead to over-engineering. You couldn’t know this if you didn’t take the longer path and talk with your stakeholders.
  2. Instead of creating multiple tables with multiple columns, one-to-many relationships, indexes, etc., you just used two columns in one table. Yes, you lost your chance to make a generic app that can be improved in the future, but that was not asked. Therefore there is no need to go for uber complex structure when it is not needed. You can save up your energy and time for another feature that is worth doing.
  3. Even though you went for simplicity and did not create any entity relationships for temperature units, you are still flexible enough to cover a change e.g. switching from Celsius to Fahrenheit system. When choosing simplicity over complexity, do not forget to base your structure in a flexible position otherwise simplicity can be your enemy as well.
  4. In total, you practically saved half of the workload on the data provider team, your developers, DB admins, QA engineers. Everyone is happy.

So, when to go for that extra step?

Adding more steps

--

--

Articles made by the techiest people at Just Eat Takeaway.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store