When you engage us to carry out a project for you, we want to make sure that you are happy at the end of the process. Software projects are no different from anything else in that respect: satisfaction comes from setting clear objectives and then meeting them.
The "clear objectives" part can be a problem though, because in many projects objectives don't become clear until the client has had an opportunity to review some initial progress. This has led to the evolution of what has been called "agile development" which emphasizes close interaction between the developer(s) and the client(s), rapid delivery of working software, and adaptation to changing requirements.
Agile development doesn't mean careless development. Adapting to changing requirements is easier, faster and cheaper when work is based on sound fundamentals. For that reason we advocate data structures that provide for "one in a thousand" situations and coding methods that can be extended as necessary. North Cove has been working on that basis for nearly two decades and found it to be very satisfactory, as have our clients.