My first official OO ColdFusion project found it's way "on the grid" as it were with a sudden business need to have it completed ASAP.  That works for me!  But would all the sudden meetings and new people in the mix require me to refactor what I've developed so far?  As it turns out, no!

I am probably about 85% complete writing my ColdFusion objects and their DAO components.  From there, I'll move on to their validation objects which I intend to use to ensure all business requirements are met before records are saved or updated.  I intend to implement my validators by overriding my save() method where validation is required.  When this is complete, I'll have complete functionality available to me without any implementation of a user interface.  My options are open in that respect.  I can integrate into an existing application via web services.  I can write a whole new UI from scratch as a standalone app.  Or, I can do a combination of both.

When the folks at work begin scheduling urgent meetings to discuss their needs, I was concerned.  Would my weeks of silent effort be overturned due to suddenly new and urgent needs that would require code rewrites?  I attended these meetings with anticipation and planned to scribble notes furiously.  Sure enough, questions flew about wildly and other people answered these questions with ideas.  They'd drop an idea on the table and look at me cautiously, asking, "Can we do that?"

They wanted reports, scheduled alerts, options for batch uploading in addition to single file uploading, "ticklers," integration within the existing front office application, and more, all of which were items specific to what I'm referring to as the "service" layer of UI layer.  The data access layer and object structures currently developed remain in tact.  The good news was I didn't have to change a single thing.  I love you, Object Oriented Programming!

On another note, I've been able to breeze through my development by drafting my model and its dependencies BEFORE writing any code.  Admittedly, I used old school tools like Excel to do this due to my lack of familiarity on Visio, but I got a good primer on how to do things more traditionally thanks to a quick tutorial from Micky.  He's since elaborated on his blog with a very thorough walkthrough on application design that I highly recommend.