Do You REALLY Know What You’re Doing?!
What does that mean? Well, have you ever had the experience of learning something new (maybe Model Glue, maybe OO programming, maybe how to use a design pattern like the abstract factory). At first you have no idea what it is about – you are really stupid about that particular topic (and I should know, I’m always amazed that every time I learn one new thing I find three more I’m still stupid about :-<).
Eventually you figure out how to get it working. You’re not really sure how or why. All is good for now, but if someone asked you to explain to them how it worked, you probably wouldn’t be able to. Eventually you work with it more and more until it becomes obvious to you how and where to use it and how to explain it quickly and easily to others. A good test of how well you know something is teaching it to someone else. If they get it quickly, you really understand and can communicate the essence of the concept. If they are confused after your description, you may still be a little confused about it as well.
Well, the ultimate test of how well you understand it is whether you can teach a computer how to do it. Whether it is control logic, business rules, personalization, presentation controls, data access, reporting, imports, exports, authentication, security, object-relational modeling, notification, workflow or any other part of an application, if you really understand it well, you can probably come up with a domain specific language to describe it and a set of script templates to generate all but a few edge cases.
I know the belief isn’t true. I know there will always be more edge cases than I’d like, but I'm currently generating 90-95% of every application I build and I'm aiming for 100% by Christmas! I know I won’t get there, but if I hit 99% I’d still be generating completely custom web applications in minutes instead of months. Not a bad way to spend the next six months!


There are no comments for this entry.
[Add Comment]