Custom Software Services
Building something complex and functional requires knowledge, planning, and experience.
Would you build a circular staircase by picking up a board and nails and starting to hammer? Of course not. You’d have a skilled architect create a plan. You’d spend time finding the right materials, and you’d trust the work only to a master builder. That staircase would meet your needs and be something you’re comfortable using.
Building software demands knowledge, planning, and experience, too.
The keys to our success are investing time understanding our client’s business requirements and getting working code into the hands of our clients as quickly as possible. We do this by following a systematic approach that we call “CodeRight,” which is a blend of the traditional waterfall methodology and our own Agile version of development. The process includes:
- Define the overall system vision and requirements and break project into phases
- Create overall system design and architecture to satisfy client’s business requirements
- Define detailed requirements for phase 1
- Code phase 1, perform internal testing, and deliver to client
- Concurrent with coding phase 1, begin detailed requirements for phase 2, incorporating lessons learned during phase 1
- Code phase 2, perform internal testing, and deliver to clients
- Continue concurrently defining requirements and coding until all phases are complete
- Conduct end to end software testing
- Install beta software on client’s network
- Complete first draft of documentation and deliver to client
- Work with client during beta testing and feedback
- Complete final system changes
- Conduct training
- Complete final documentation
- Install final software on production system
- Provide onsite support for Go Live
- Provide ongoing support and enhancements
Depending on your specific requirements, your project may include some additional steps. For example, if you are replacing an existing system and the data is accessible to us, we can import information from your legacy system into your new application. If your new application needs to share information with other applications such as a sales system like SalesForce.com or an accounting package like Microsoft AX, DragonPoint Software can integrate your systems to avoid duplicate data entry.
Define the System
While other software development companies begin the process with a cursory overview of the requirements with their customers and then jump right into coding, DragonPoint Software places a heavy emphasis on clearly defining your requirements up-front. Especially in large projects, this helps ensure that the foundation of your software design is solid before any coding begins.
So how do we start? We talk to the stakeholders of your software. It’s a process we call requirements gathering. We have several meetings with managers and users, some one-on-one and some group sessions to identify the critical functions of your software. For large custom business software development projects, these sessions may involve many users across the functional areas of the system.
Using the overall vision, our technical team plans the system’s design and architecture to meet the client’s business needs. All of our software is created using a “layered” approach. In most system designs, four main layers are developed:
- User Interface Layer (UI) – This is the layer your users interact with and see. Think in terms of web pages, a program running on the desktop, and the screen on a smart phone.
- Business Logic Layer (BL) – The BL is the brains of your software. It contains the logic that ensures the integrity of your data. By putting the brains in this layer, it allows the logic to be reused by any UI you may want down the road. For example, your initial software might be a web-based application, and later if you need a mobile version, the same rules may be used. The BL also enforces simple rules, for example, a new customer record must have a first and last name, and more complex ones, like a product cannot be sold to a customer unless the item is in stock.
- 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 specific information 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 also write applications that work other databases.
During the planning phase, the DragonPoint technical team also reviews any requirements for data conversion and system integration.
While the technical team is architecting your solution, the project manager works with the client to break large projects into phases of 500 hours or less. Each phase is treated as its own project and includes a detailed requirements document, clear deliverables, testing, and installation.
Why a phased approach? Because it helps us deliver a better system to you. We have learned that the more quickly we deliver working code, the sooner clients can identify changes. And changes early in the coding cycle are 10X less expensive than changes made after code is complete.
DragonPoint synthesizes all of this information into a high level requirements document that includes:
- Business purpose for the system
- Overview of what it will do
- List of the phases in the project
The DragonPoint project manager reviews the overall requirements with the client, and once it is approved, work on phase 1 begins.
Defining the Requirements
After the client approves the overall requirements and scope for phase 1, the project manager works with the client’s team to fully define phase 1. The document DragonPoint creates for each phase:
- Provides you with words and pictures describing the way your system will operate, which allows you to confirm or correct the process before coding begins.
- Provides our developers with a blueprint for coding the system.
- Is used to ensure everything in the phase is fully tested and working as expected.
By focusing on detailed requirements for one phase at a time, we are able to deliver a requirements document within days of completing interviews with the client’s team responsible for the work defined in the phase. The document is written like a user’s guide, with screen mock-ups and words describing how each screen and function will work.
Each phase, especially the early ones, may require more than one iteration to fully define requirements. Once the client approves the requirements document, the DragonPoint project manager reviews it with the development team and coding begins.
Phased Coding, Testing, and Delivery
Your DragonPoint project manager will be your primary contact, but depending on the size of the project and the deadline for completion, the design of your system may include one or more system architects and database experts, and coding of your software might involve one or two programmers, or a team of ten or more.
During each phase, your DragonPoint project manager will keep you well-informed about what’s happening, because we know that communication is one of the most important aspects of a successful software development project. We’ve heard horror stories about software companies that disappear for weeks at a time when coding begins, and we guarantee we won’t do that. Your DragonPoint Software team will communicate with you, sometimes daily, to address questions and provide status updates on your custom business software development. And you don’t need to wait for us to contact you; you’re welcome to call or email us any time.
Before we turn a phase over to you, we fully test it to be sure it meets your requirements and operates as expected.
As each phase is complete, we install it on a server you can use for testing and system review. We love getting your feedback so we can incorporate it into all future phases so your software will exceed your expectations.
As changes and enhancements are identified, we build them into future phases and talk to you about any impact on planned cost and timeline. If you request something that will significantly increase cost or delay delivery, we suggest alternatives to minimize unnecessary costs and avoid delays. We think this part of the process makes us stand out among the best custom software development companies in Florida – and anywhere in the country.
Another advantage of the phased approach is that is allows the DragonPoint technical team to code requirements of a phase while the project manager works with you to define requirements of the next phase. So as phase 1 is being coded, you and your project manager will be working with the project manager to fully define phase 2. This significantly shortens the timeline for a project, especially when compared to the old linear approach of fully defining all phases before any coding begins.
A Finished System
As each phase of your project is defined, coded, tested, and delivered, you will have the opportunity to test the system as it grows. There are many advantages to this approach, including eliminating surprises and minimizing expensive changes after code is complete.
When all phases are coded, we conduct end-to-end testing prior to delivering the finished system to you.
You’ll find that training your employees to use the new system is easy because:
- Your team has been involved in designing the system, reviewing requirements documents, and iterative testing.
- The system matches your unique business process, uses the language specific to your company, and doesn’t include confusing bells and whistles that you will never use.
If you prefer, we offer complete documentation and training services.
Throughout the development process, DragonPoint Software provides your source code to you. You own it, so you decide when and if you’d like to make enhancements. Although we specialize in establishing long term relationships with our clients, we don’t do it by holding your system “hostage.” If you are ever unhappy with our service, you own your code and may find another development firm that can maintain your system.
Because we know that your business is growing and changing, we build custom software solutions to meet your current business needs while providing a flexible platform to accommodate future requirements. DragonPoint Software has an excellent staff retention rate, which means that when you need new functionality, the original developers will be available to seamlessly enhance your system so it continues to achieve your business goals.
Let our experience in software development guarantee your satisfaction you with your next custom software project. Contact us today to learn more and let us answer any questions you may have.