Development Time

Everyone has problems. Developers have problems. Thing is, ours are geek problems so no one understands them. If no one understands them, they can’t really exist, right? :)

So, any way, problem with ‘good’ developers is the old magicians secret. They make it look easy so it can’t be hard and anyone can do it, right? Well, boys and girls, if you have ever seen a bad magician, you have gotten a glimpse into how hard it really can be. If a magician looks like it is effortless, you can bet they’ve spent countless hours perfecting the smallest hand gestures. Same with development.

Take a simple item. You have a form and need it saved to a database. Before the developer works on it and after he works on it you don’t really see a differece, do you? The form looks the same. Nothing has changed so it can’t be that hard what was done. Let’s explore it a bit.

This isn’t necessarily a complete example, but shows the important steps.

The actual first step we need to take is planning. Even for a simple example like this we need some planning. How many fields are in the form and what are they named? What type of data will each field hold (names, birtdays, dollar amounts, counts of items, etc)? This is important as we will need this information to create the database. What will we do after we store the data in the database? All these questions need answered and will help with the development and coding later. How? Even though some time is taken for this step it makes the coding faster and less error prone. Plus future planning can be done to ensure that changes and additions in the future won’t break it or cause a total rewrite.

Second the developer creates the database that will hold the information. For this example we’ve got a fairly simple database with 1 table. The fields correspond to the fields in the form. That’s created.

Now we need to have some code written that takes each bit of information in the form fields and stores it all in a database. Ok, still not too bad.

So now we have 3 steps needing done to get the data from the form saved. That must be it, right? If it was, I wouldn’t ask if that was it, now would I?

Step 4 is all important but too often skipped and not thought of: TESTING! Why do we need to worry about that. Oh baby. Without testing properly you can have all sorts of problems. It is very easy to mis-type one of the fields. This would cause any data in that field not to be stored in the database. Not something you want to happen if it is a contacts phone number. So you test to make sure each field to make sure that it stores the information in the database. PLUS, testing needs done to make sure that certain characters don’t ‘break’ the whole thing. So testing isn’t just filling in 1 set of data and you are done. A tester may fill in that form 15 or 20 times with different information to make sure it all is working. And if a bug is found? The developer finds and fixes the bug and testing starts all over.

There you have it, 4 steps just for 1 form. You can imagine what is needed when the requirements involve multiple modules and larger databases! Some can be darn right complicated. One last thing on this - security. We didn’t talk about security for this. Why would we need it for a simple form? Because some malicious person could enter code into the form trying to break it or your web site or even your web server. So the developer needs to try to cover as many bases as possible to check the data being entered. The tester needs to do some things with testing to make sure the form is secure. This adds complexity to the coding and longer test cases.

This is all without talking about an administrative area where the client can view all the stored information in the database! That’s a whole set of these 4 steps to do that!

Hopefully this makes the process a little more understandable. This should also help explain why a simple little change can take so much time. For the above form if they wanted to add a drop down that held a list of categories. They also want the ability to add and edit the list of categories, so it’s dynamic. Complexity and therefore time just went up by almost double. Just for a simple drop down list? Yup, because that’s another database table, coding to have an admin area to update the list, and more testing to make sure the list can be updated and the information is stored when submitted. Not to mention how to handle deleting a category if there is a contact still stored within that category.

Anyway, the whole reason for this blog is because I’ve been in the middle of the above process all day and needed a break! :)

Leave a Reply

You must be logged in to post a comment.