First contact with the customerThis is the first step where we get to know each other, and initiate a working contract where all parties agree to policies including the consultancy term and termination, communication methods and periodicity, intellectual data protection, among others. Also, the discovery and analysis of the customer's requirements is performed.
Implementation phaseDevelopment starts, following a test-driven approach, testing right from the beginning whether each of the requirements are met. This ensures each of the requirements will be properly dealt with.
The first deliveryA first delivery shall be made to the customer within a previously agreed time frame. The idea is that the customer can count with a working product on the early stages to receive feedback as soon as possible. This way the satisfaction of requirements can be ensured. Many times a client does not know what is really needed in the application until a working version is finally seen.
IterationsFurther iterations are performed, delivering new versions of the product, each time complying with more requirement checks from the tests (unittests).
Additional meetings if necessaryAny change of requirements during the development phase might be discussed in meetings (e.g. personally, by Skype and/or email)
Further iterationsIterations are done until the client finds that the product complies with all requirements and no bugs are found.
Production PhaseCode is optimized and refactored to ensure it is kept readable, and properly documented to facilitate any future code extensions be it by Bandieramonte or by other software consultants.