I am working as a support in a big multinational company. It would not be so surprising if there is a lot of error showed up. That’s my job. Somehow recent errors take my attention to a certain level, making me wanted to write this post so much.
Designing is one of a process in system development. It happened after analysis of the system. Usually what happened is someone got the description about something (analysis result) then translate it into diagrams, pictures, descriptions that would make developer team understand what to do and how to do it. All parts is important, but this time I will only talk about design because design is also matters!
So, let’s say a system is exist. It handles values inserted by user. Analysis result shows that the values is strict to certain format. Design result will have an object that will check whether inputted values is suitable to that format or not. That is one example to a design process.
But what would happened if it became more complex? Let’s say there is a field that should be made. The values are inputted manually my typing by user. Of course this will need to be validated whether the input is correct or not. The current system only have four values inputted into the table, and it has been like that for three decades. Would you, as a designer, make the validation to check the value into using a reference table or you would normally put four hard-coded values to validate the fields? Right now, you will get the idea of this post.
There will be two possibilities. One, the fields will always contains four values, never changed, never grow. This is a big chance since it has been happened in three decades. This will resulted in you making the idea of four hard-coded values to validate the field okay. But there is also another possibility, the field will grow and new values should be able to be inserted in the field. Those hard-coded values seemed to be less reliable right now.
Making a reference table to validate the input would be really useful. Not only that user will have a power to add or remove validation values, it also let the values grow. To tune the application would not take the effort as hard as getting the latest code, checking it, and change the code, but only user open a window, add a value and submit. Looks like it is the most agreeable. Now, would you as a designer consider this a good idea? Even if the second possibility is small, there is still a non zero value to that probability.
Somewhat, the application that I handle in my company have their validation checked against hard-coded values. Working in a big company, it is not easy to enhance a system. It would take several months in agreement and discussion on how to do it and who will do it. The cost, its feasibility, the affected forms, is also a problem to discuss.
The question is, would you as a programmer make the future of your system like what happened to me, or you would be so good to make it easy to use and maintainable?