Custom Programming

Why Custom Software?

Purchasing off the shelf, shrink-wrapped software is usually cheaper than creating your own custom design. The question is: Does it do what you need? Is it too unwieldy because it's trying to be too many things to too many users? If these are issues for you, then custom software may be your best solution. Let us take the guesswork out of choosing the right system for your business. We can create a custom software solution that does just what you want it to do. Perhaps more importantly, let us create a custom software package for you that is easily modified to respond to the ever changing needs of a dynamic market.

Requirements Specification

Usually, clients have an abstract idea of what they want to see as an end result of the development process, but they don't have a well-developed idea of how to get there. That's why the first step in this process is sitting down with the client to discuss what they want from a both a business analysis and a technical perspective. We interview representatives from all groups of people who will be interacting with the software (stakeholders). We listen to them tell us what they need it to do and what their workflow is like. We talk about trade-offs inherent to any new system design related to business and technical systems requirements in the context of their budget. We make sure the process is transparent and informed decisions are made so that the client maximizes their investment. Everything from this step of the process is written down into a detailed proposal. We develop scenarios for how things will work, set work time-frames and create prototypes. We enjoy working in engaged collaboration with our clients communicating in face to face meetings, through teleconferencing, and via e-mail.

The end result of this stage is that both the Orbitscripts team and the client come out of it with an accurate and full understanding of the system we will develop.
Requirements specification

The Design Stage

Design
In the design phase we develop algorithms, define database structure, and build UML diagrams that describe the software's behaviors and infrastructure. We construct diagrams that illustrate business processes, interface layouts, functionality and data flow. We use the design systems: Enterprise Architect, Rational Rose, SQLYog etc.. During the design phase, we gain a full picture of all aspects of the system: detailed interface and system functionality, system behavior and interactions with system users. We store this information in a form that's easy to update using an internally collaborative Wiki.
uml

Implementation

  • This is the phase in which we write the code that is the foundation of our software. We use the programming languages: PHP, Java, C++, Perl and more.
programming languages
  • Databases we use include: MySQL, MSSQL, Oracle, PostgreSQL and others.
data bases
  • To maximize efficiency, we utilize well-known frameworks: Zend, Codeigniter, JavaScript, Jquery and Prototype; as well as our own class libraries created over the last 10 years.
frameworks
  • Keeping an ever meticulous eye on functionality as we code, we use the industry standard IDEs (Integrated Development Environments): Eclipse, NetBeans, Zend Studio, ApTana Studio and others.
IDEs
Our products employ a variety of software architectures. One of the most widely used architectural patterns is MVC. This object-oriented approach allows us to create powerful, scalable, efficient applications.

  • Technologies to communicate via Intranet and Internet protocols we use include: AJAX, SOAP, XML, EJB and more.
Technologies
We program for the Windows and Linux platforms.

We have extensive experience developing complex systems. We do: data collection, analysis and data indexing, search engine scripting, multi-threaded applications, low-level device drivers and more. As we progress through the development process, we use the opensource version control system SVN (Subversion). SVN allows us to document and control historical and current product versions, use branches and organize the entire development process.

All our code is documented thoroughly, in accordance with current world standards.
Implementation

Testing

Testing
Testing is an important and integral part of the software development process. Testing ensures that defects are recognized and eliminated, sooner rather than later. To detect errors during the testing phase, we use built-in debugging tools; as well as syntax analysis and various automated testing systems. We work in IDEs (Integrated Development Environments) that allow us to go back and forth between coding and testing to try things out and weed out errors as we go along.

We employ robust frameworks and utilize our own class libraries to avoid common errors and heighten system reliability. We validate developed solutions with the help of test cases, that are collected and stored in our library to be useful for further projects. When testing program functions and user interfaces we make avid use of the Web application testing system - SeleniumHQ.
Technologies
To create bug tracking reports, we use the industry standard Track Studio that lets us monitor and organize the process of bug fixes and functionality improvements, analyze system performance and keep ourselves and our clients up-to-date on the status of the project.

Deployment

In the deployment, stage we take full responsibility for software installation and adjustment. Our solutions can be installed on shared hosting or dedicated servers. We adjust Operating System and Software Settings to maximize software performance.
Deployment