Print

Custom Application Development

 

Custom application development stands for developing a bespoke application that has a targeted user base and scheduled time to launch. A custom software application may be desired to support your internal staff to enhance the productivity of your organization or may be targeted to provide better and timely services to your end customers.

We, at AyadiPro have mastered the skill of developing custom software applications from scratch that are designed and developed to meet specific needs of our clients.

Today’s business environment needs you to introduce innovative, on-demand, on-time and on-budget business applications to meet their organizational goals. We assist clients in building a competitive advantage over their competitors. Our expert and experienced professionals and “best of breed” methodologies offer clients the opportunity for timely return on investment (ROI) for their technology-enabled initiatives by using our application development services.

We are expert in developing technology driven solutions based on LAMP (Linux/Apache/MySQL/PHP), .NET, Adobe Technologies (Flex/Flash/AIR) and Java platforms, we are also offering HTML5 Application Development.

Before a project starts we can sign NDA to protect customer’s intellectual property. In order to meet our client’s requirements and expectations we adopted the following project structure:

  1. Envisioning
  2. Envisioning is the first stage of the project. The main goal of Envision stage is to ensure clear mutual understanding of the project for all project sides. At this stage we define:
    .
    • General overview of the application
    • Main project tasks and goals
    • Project users and interested persons
    • Customer's and user’s expectations
    • Hardware and technical aspects of the application
    • Main application functionality
    • Other additional requirements

    There is no need to plan the future work on the stage. The technologies and development aspects are mentioned only if it is necessary for project understanding. All the information gathered is accumulated in the document "Project Envision".



  3. Business Analysis
  4. Business Analysis stage is a stage of gathering the requirements. The change from the notions "what to do" to the notions "how to do" starts at this stage. The main purpose of this stage is bridging the gap between customer interested in succeeding certain commercial goals and developers’ team concentrated on the most effective technologies usage. The resulting document Software Requirement Specification (or SRS) should give clear understanding of the project scope, customer’s software and hardware. All the information gathered is accumulated in SRS that may include the following sections.

    .
    • Definition of the main project data and actors
    • Formal project specification
    • Business logic and business rules
    • Functional requirements
    • Nonfunctional requirements
    • Application templates
    • Glossary and abbreviation list
    • Auxiliary diagrams


  5. Architectural Design
  6. Based on the Project Envision and SRS we proceed to the detailed project planning with angle towards software programming technologies, approaches and usage. We make the corresponding proposals to the customer.
    At the Architectural Design stage we focus on the following aspects:

    .
    • High level architectural design
    • Detailed architectural design
    • Database modeling
    • Graphical user interface design
    • Module and class application structure
     
    Structural elements of the project are developed using UML modeling technology (MindManager tool). All designing results are accumulated in the Architectural Design Document. ADD contains the architecture and descriptions of all project components, it is the main document of a developer. Based on ADD we can develop a high-precision project plan.
    We can develop a prototype of the software or its components. The prototype gives the possibility to the customer to get the first impression of the project, it also gives the opportunity to the developers to determine the possible risks on the early stage of the project.

  7. Project Planning
  8. When the Architectural Document is ready the tasks for developers can be determined explicitly. But not all the tasks can be fulfilled in an arbitrary order. The tasks have worktime, priorities, dependences, and associated resources. We carefully estimate and prepare project plan to ensure the most effective development process. Every task in such a plan should be described by the following characteristics:

    .
    • Order number
    • Detailed architectural design
    • Database modeling
    • Graphical user interface design
    • Module and class application structure

    When the project plan is approved by the customer it is kept and used for controlling, analyzing and reporting of the project development process.


  9. Development

  10. At this stage the application coding begins. Usually the programming phase closes with the application quality assurance according to the testing plan and the project proceeds to the deployment stage.

    development

    The quality of all the documents developed before this stage greatly affects the result of the development. Based on all preliminary documents the team lead defines the scope of the development work, distributes the tasks, issues the tasks, and controls the result. During the whole project duration the project manager tracks the work performed. One per certain period he provides the customer with the information on the project progress. Based on the information the customer can see and control the effectiveness of individual developer and the whole team.

     


  11. Deployment
  12. After the application implementation is finished, programs usually should be installed at the customer’s site. At this stage we prepare the application setup guide that includes:
    .
    • Installation package description
    • Software and hardware requirements
    • Description of the application setup
    • Notes (known issues or bugs)

The development process is permanently accompanied by testing and management processes.
Testing process runs from the early stages of a project, it ensures the consistency of the project documentation, provides with project plan and testing criteria for the finished software.
Project management process is provided for keeping the connection with the customer and fast feedback on his remarks and proposals, arrangement and accounting of the team of developers and Quality Assurance engineers.
Not all the project stages should be fulfilled at our side. For example the customer may provide us with the results of Envision and Business Analysis stages.

Contact us today to find out how our web developers in AyadiPro can help you.
. .