Software Development Process

CSI Media follow a structured web development process that has been refined over 24 years to ensure the delivery of high-quality solutions. Please see below for an insight into the process we follow for software builds.

The Discovery Phase

Your project may commence with a Discovery & Requirements Gathering Phase (Discovery). This is usually required for larger, more complex systems. The Discovery involves us “drilling for oil” to decipher your goals, understand your business processes, pain points, capture your specific functional and non-functional requirements at a granular level and, ultimately, agree on the final set of deliverables for your project. As part of the Discovery, we hold several Discovery sessions with your team, each covering a key area of the system. Upon completion of Discovery, we will have identified what your system must do, should do, could do, and won’t do.

Technical Specification

A Technical Specification covers how we will achieve and implement your requirements from a technical perspective. It is usually required for larger projects with several layers of functionality; however, a specification may also be required for integrations and/or planning specific functionality across any project. A specification enables our technical team to plan how we will approach the architecture and build of your solution, helping to ensure we use the best tech for the job. It also provides our development team with a clear set of instructions supporting a smooth, efficient implementation.

The Design Phase

You will be assigned a designated Designer who will work with you closely throughout the design process. The design phase begins with a mini research exercise where we aim to understand your brand, your market and the competitor landscape, and establish your specific design requirements. Once we have sufficient information, we will begin to create design concepts for your new software solution. Your Designer will collaborate with you closely during the design process, where we will share our concepts and request feedback.

HTML Implementation

Once your designs are completed and signed off by you, we will build them in HTML. For the not-so-tech-savvy, HTML is the “front-of-house” facade, whereas “Application Development” (the next step - see below) is the behind-the-scenes operation. We complete QA and browser testing of HTML. Once HTML Implementation is complete, we will deliver a HTML Demo for you where you will get a feel for how your software application responds on various devices. 

Application Development

Application development, also known as “back-end development”, is where we build and implement the behind-the-scenes functionality. For most projects, this is usually the largest phase. Dependent on the nature of your solution, application development may involve connecting your solution with a Content Management System (CMS), the development of custom functionality, and integration with any third-party applications.

Internal Testing

At this point, our Testing team will perform rigorous testing on your solution including browser, QA and functional testing. Any bugs and issues identified will be fixed.

User Acceptance Testing (UAT)

Your solution will be deployed to a UAT environment for you to review and test. Any issues identified by you at this point will be fixed. If applicable, you will be given access to your CMS to upload your content so that you’re ready for launch.

Live Deployment

Once you have signed off the solution on UAT, we will confirm a date with you for live deployment.

Post-Launch Support

A software solution is an ongoing project. Therefore, following the launch of a new solution, most clients sign up for a retainer contract. A retainer gives you a set number of hours per month that can be used on any of our services, whether it’s ongoing maintenance and support, new features and functionality, or design and marketing services.

Further Information

For further information on our software development processes, please either email or, if you are an existing client, please contact your Account Manager.