February 4, 2008

Planned programming precepts of positive proportions in PHP

I’ve had the pleasure over the last year to be the sole creator and implementer of a web-based production tracking system at my work. Written in PHP the system handles tracking of an order through production from production scheduling to delivery. I think the most salient point of all I’ve learned from this experience is to always plan things out. I spent quite a bit of time and mental energy doing the MySQL database design, and am quite proud of the result. However I was very excited to start coding and I must admit in retrospect I should have spent more time doing a design and planning phase of the coding process as well. But the great thing in learning is that you learn how to do something better the next time. Wrestling with spaghetti code is also I’m sure, a very marketable skill, so I’m glad to do it.

It’s funny how a project like this can really grow and morph into so much more. This rapid pace of growth has come to be deprecatingly labeled “feature creep”. But at odds with that dislike of expansion beyond the original plan, is the concept of “release early, release often” which has proven invaluable to many of the most successful startups of this decade. And I’ve come to see that with sufficient planning and a willingness to listen to the good ideas of many others, great features can be added without the “code bloat”. The programmer must know the program. It sound so obvious, but I think the biggest problems enter in, when you go to add a new section of code, and you either forget that you’ve done this same thing before or forget that aspects of the code you are writing could be better unified with other code already existing. So I’ll try to remember and you do it too, that each aspect of your programming task is as important to think first, give some good mental energy to, before you embark on implementation.

If you’re like me sometimes your inspiration comes during implementation, which is fine, but when you come across those gems, those little nuggets of genius; take some time to go back to your original outlined plan, and try to visualize where this new feature is going to take your entire project. Don’t think it will just be as it is now. Realize that your project is really alive and growing outward in different directions (well as long as you’re working on it, that is). Keep going back to the plan, you do it, and I promise I will too.

Wow! You are phenomenal! I am most impressed.

Comment by Lindsay — February 5, 2008 @ 1:04 pm

Leave a comment