There was a request from a client to add a new field to the tracking feature. He wanted to be able to include address, title, description, date, and now name. Traditionally, I recommended using the title field for names- it’s easy and the whole tracking category can be sorted by that field (as well as date and address).
But it also seemed useful, so I started on it, thinking “How hard can adding one little text field be?”
It didn’t take long. It wasn’t too hard. But it did teach me that even tiny edits (adding a simple text input field to a form) can have tendrils that snake out all over an application. I added the field, but then it had nowhere to save to, so I had to edit the database. Not hard- thanks phpmyadmin! But then there was the matter of sorting a category. A branching if/else addition, with a little mysql query solved that. Wait- there’s also an import option. A user can import tracking entries via a spreadsheet. New code would have to handle that, as well as the related export option.
In the end, adding one little text input field involved html (adding the field itself), css (styling the field), js (validity checking), php (working with the backend to save/display the content) and mysql (saving/displaying to the database). Now I know why developers are hesitant to give a timeframe on anything- large scale web applications are a bit like icebergs- most of the stuff that’s going to sink you is below the surface.