Our Services

Software Development Methodology

At DragonPoint, we have a systematic approach to our software development process that has been refined over our 20 years in business. This standardized approach is through a 9 step process we refer to as "CodeRight." Our software development model looks like this:

  • Define the Requirements
  • System Design and Architecture
  • Development of Software
  • Iterative Software Testing
  • Beta Software Installation
  • Customer Beta Testing and Feedback
  • Final Changes / Documentation
  • Installation of Final Software
  • Ongoing Support

Define the Requirements

While many software development companies begin the process with a cursory overview of the requirements with their customer and then jump right into coding, DragonPoint places a heavy emphasis on clearly defining your requirements up-front. In especially large projects, this helps to ensure that the foundation of your software design is solid before any coding begins. So how do we begin the process? We do so by talking to the stakeholders of your software in a process known as requirements gathering. Requirements gathering involves several meetings with managers and users, some one-on-one, and some in group sessions, to identify the critical functions of the software. For large software projects, these sessions may involve many users across the functional areas of the system.

Once the requirements gathering step has been completed, our team writes the actual requirements document. The requirements document will serve two purposes. First, it will provide the basis for the common understanding we have with you on how your software should operate. Second, it provides a model of the system that the developers can use when actually coding the system.

Depending on the size and complexity of the software, the requirements document can be completed in a few days, or may take many months to complete in the case of very large systems. As the software functionality is documented, screen prototypes are also developed which is very helpful in conveying meaning (a picture is worth a thousand words, and this is very true with software development!).

The requirements document is reviewed with you, and during that review process, we sometimes find that we need to go through additional cycles of refinement as new details emerge. Once we get to a point where the requirements document is as close to accurate as possible, we can then proceed to the software development phase which involves coding the system.

We have developed a number of internal processes to manage every step of the software development process. A repository for all of the documentation related to the project is setup. This repository includes the requirements documents (that will likely undergo revisions as the project progresses), defect tracking, developer notes, and software development / testing schedules. Source control is also configured, which is what the developers use to manage the actual code that goes into your system.

System Design and Architecture

After the requirements are defined, the system architecture is developed. All of our software is developed using a "layered" architecture. In most system designs, this means there are four main components to the software developed:

  • User Interface Layer (UI) - This is the part of the system your users will see and interact with (web pages, a program running on the desktop, the screen the user sees on a PDA, etc).
  • Business Logic Layer (BL) - This is the part of the system that contains the logic that ensures the integrity of your data. The BL's job is to enforce simple rules such as a new custom record must have a first and last name, or more complex ones like a product cannot be sold to a customer unless the item is in stock or the item has been backordered by the warehouse and will arrive within 5 business days. The BL is the brains of your software. By putting the brains in this layer, it allows the logic to be reused by any UI you may want down the road. The initial software development project might be a web based application. Down the road, when you decide you want to have a new UI written to allow PDA's in your warehouse to access data real-time, these same rules are used.
  • Data Logic layer (DL) - This is the part of the system that talks to the database where your data is stored. Its function is to get data from the database, and pass it to the BL, and vice versa.
  • Database - This is the place where your actual data is stored. The most common database we use is Microsoft SQL Server, but we have also written applications that work with Oracle, and ODBC compliant databases like Access and Foxpro.

Development of Software

Depending on the size of the project and the deadline for completion, the coding of the software might involve one or two programmers, or a team of ten or more. As the software is developed and milestones are reached, releases of the software will be provided to you for testing. Whenever possible, projects are broken down into milestones that are generally no more than two weeks apart. We like to deliver something tangible to you often so the feedback we receive can be immediately incorporated into the system. This has the added benefit of allowing you to see how the software development effort is progressing.

During this coding phase, we keep you well informed about what's happening. We believe that one of the most important aspects of a successful software development project is communication, and this is something we do extremely well. Many software companies simply disappear for weeks at a time when coding begins, returning periodically to deliver something that may not really meet your requirements. DragonPoint will communicate with you, in most cases daily, regarding questions you have and providing status updates on the progress of the development of the software.

Iterative Software Testing

In conjunction with a milestone, automated and manual testing is performed to ensure the system development is meeting your requirements, and operates as expected. Continuous and iterative testing are a critical part of our software development process.

Beta Software Installation / Customer Testing and Feedback

We will deliver working, beta software to you many times during the coding phase of software development. These beta software releases will help you actually see how your system is progressing and give you the opportunity to test and provide very important feedback to us. In spite of having very detailed requirements, you may find that your requirements change during the coding phase. Sometimes your needs become clear only when you begin to use the beta software.

We understand.

Our project managers will work with you to not only address these changes, but to discuss the impact in terms of cost and the software development schedule. We can also provide suggested alternatives where applicable to try to contain unnecessary costs.

Final Changes, Documentation and Installation

Your software will go through several cycles of coding, testing, and beta installation to ensure it meets your requirements. Once the requirements have been met, a final version of the software is delivered to you, along with all of the source code and documentation. User documentation is also created to help train the people that will use your software. Unlike other software development companies, DragonPoint provides 100% of the source code developed to the you. You pay us to develop your software, and you retain all the rights to what is developed.

Ongoing Support

We build custom software to meet your current business needs while providing a flexible platform to accommodate future requirements. Due to DragonPoint's excellent staff retention (average employee tenure is 12 years), when you need new functionality added to your application, the original developers will be available to enhance your system so it continues to achieve your business goals in the future. We believe that employee continuity plays a huge rule in customer satisfaction.

Let our experience in software development help you with your next project. Contact us today to learn more and let us answer any questions you may have.