In short; build-as-we-fly development is a recipe for development disaster!
Rookie developers will quickly learn that recognising these projects at the outset is a valuable web development soft skill to learn. And learn fast! If discovered early on, the project can be salvaged - however, if allowed to continue unchecked then disaster could strike!
I first came across this term from a client. A client who, in his wisdom, decided that he could redevelop a system that we had developed 6 or 7 years earlier. He gathered an internal team of developers, business analysts and project managers and told us that they would “build-it-as-we-fly”. Needless to say the project failed... dismally and a successful business was destroyed. This client did not understand web development or web development processes, he didn't understand the business case that necessitated the web application and as a result made a number of fundamental blunders!
So what is build-as-we-fly web development? I classify these as projects that have no difinitive requirements or where requirements can change drastically. If a project has no agreed scope then scope-creep can easily be mistaken for bugs and failed features - which is very unfair. You would never build a house with architectural plans — it was be far too costly. It's the same with web development. Over the years the industry has developed a number of processes and procedures that are designed to reduce costs and ensure that the developers deliver what the client expects.
As developers we are always eager to please the client. We will make numerous small concessions on budget and scope, and this is normal. Afterall we are in partnership with our clients. Their success is our success and we'll bend over backwards to keep a client smiling! However, this can set a dangerous precident on a build-as-we-fly project.
Build as we fly development is a very, very bad idea! There is only one scenario where I can see it being used as an absolute last resort. If you attempt to undertake a project of this nature or, worse, suddenly realise that you find yourself knee-deep in a project that has turned (build-as-we-fly) make sure that you are following a web development process. Ensure that any requirements are well documented. Meet the client immediately! Make sure the client understands the implications of a fluid scope. If you can't right the ship then either walk away or make sure that your time is covered. Don't get me wrong - these projects can be completed and delivered, however I have yet to see one of these projects delivered to any kind of budget. Just like the scope... the budget will have a life of its own.
How to spot a potential build-as-we-fly disasters;
When you hear phrases like; "I know we said we agreed on X but I think Y will be better" or "We'll know what we want when we see it, but that's not it" be on your
guard. A client is allowed to change their mind, but when a changing mind becomes "chop 'n change" it's time to be concerned.
It takes strong leadership, project management and client relationships to manage a project of this nature. Make sure you give these areas enough attention.
Tackling a new project is always exciting. Before rushing headlong into development - take care of the administrative side of things. Mare sure the project is adequately understood. Failing to plan is planning to fail!