A while ago, I wrote Building it Front to Back, where I described the process of developing v1 of Devshop, starting with the user interface and working backwards through business logic and into data storage. It worked REALLY well that way.
Today, on the drive to feed my Starbucks addiction, something else occured to me that might explain why it works so well (in case you're not already a believer).
Most of us in software development know that reverse engineering is WAY easier than forward engineering (building it the first time). That's because when you have a living, breathing model of it already working in front of you, you are free to examine it from any angle and run any kind of behavioral test on it (what does it do when I do this?). And, quantum physics aside, it is fairly consistent and behaves the same way every time for months-on-end (unlike some bosses or customers who love to change their minds daily).
What is really happening when you're reverse engineering something? You're fiddling with the interface (user interface for applications, or API for platforms) on the surface, because the guts of it aren't readily visible to you. You're pushing and pulling screens, always able to see what the "response" from the application is, even though you can't see "how it got there". Now, if you can't see how it got there, "how it got there" might as well not even exist! (It's magic.)
That's kindof like building it front to back. You've got the model there right in front of you, you can at least navigate anywhere you want to go, and with sample data, that's pretty darn close to "real" data that was generated from magic business logic that doesn't actually exist yet (or is hidden from you). So, what's the difference?
See, this clearly proves that building it front to back is LIKE reverse engineering, which we already know is easier (more consistency and less loose ends) and easier is good, therefore building it front to back is good. I don't know a mathematician who could have proved it better ;).
Huh. I wonder if customers changing their minds is a result of quantum leaping?

Comments