Application Development

Superior application development involves a carefully planned process that incorporates business goals, constructs carefully designed solutions, and ensures that those solutions meet both the intended goals and the needs of the user.

At CityMind, we employ a software development process known as "Interface Driven Architecture" or IDA. A successful software project depends on the successful completion of a number of steps, each with its own objectives and deliverables. We separate the project into two phases, Architecture and Fabrication. For each phase, a separate bid is given.

Phase A: Architecture

The key to any software project begins with the architecture. Identifying needs, analyzing theories, and testing solutions before coding, are all critical in preventing costly budget overruns during the actual construction of the application.


During this phase of the project, we step through each of the following milestones, only moving on to the next milestone when the current milestone is completed to the satisfaction of both you and CityMind. These include:


  • Project briefing - the first step in every project, we identify goals and constraints while actively listening to your needs and explaining the risks involved.

  • Analysis – this is where the project begins to take shape. This step includes activities such as studying the business environment and analyzing the needs and goals of each user that will utilize the application.

  • Interactive Blueprint – a step involving the creation of a mock application that mimics the actual application, in order to study user interaction, ensure that requirements are met, and to eliminate potential problems before the actual application is created. This step distinguishes our methodology from others and drives out the risk of project failure.

  • Usability Testing – whereas the above step answers the question, “Does the application meet the requirements?”, usability testing answers the question, “Is the application easy to use?” One source of project failure is user rejection due to frustration. This step aims to eliminate this threat.

Phase B: Fabrication

Once the architecture phase is complete, the actual construction can begin. However, constructing a piece of software is about much more than sitting down in front of a computer and writing lines of code. A careful process must be followed to ensure that the application is robust, scalable, and maintainable for years to come. Our process involves the following:

  • Component Modeling – just as a builder would not swing a hammer without having a blueprint, component modeling involves modeling each and every component that will comprise the whole, before coding the components. Tasks involved with this step include design patterns, diagrams, and database modeling.

  • Coding – once the components have been identified and modeled, coding can begin. The payoff in Interface Driven Architecture and all of the previous tasks are seen during this step, since it is far easier, faster, and less expensive when the business rules and requirements have been firmly established.

  • Beta Testing – developers do their best to build robust code. During the Beta Testing phase, dedicated testers do their best to break that code. Just as editors help writers produce the best possible product, testers work with coders to ensure that annoying and possibly costly bugs are discovered and “squashed” before the software is launched.

  • Deployment – with all of the forgoing steps implemented correctly, deployment is a simple process of moving the software into a live environment (such as on the web or within your place of business) and snapping the software into place. With other methodologies, this is where the problems surface. In Interface Driven Architecture, problems rarely surface during this step, since they have already been identified and eliminated.

  • Monitoring – a critical factor in many application development projects is in testing how the system handles the new application. Success demands that the system is continually monitored for warning signs, requiring adjustments. This step includes a monthly report on the health of the system and any recommended adjustments.

If you would like a more detailed summary of our application development process, click here. If you would like to a complimentary PDF of our 30-page booklet, "Successful Software Projects: From Architecture to Fabrication", explaining Interface Driven Architecture more fully, please click this link.