At Noetic a completely professional approach and well conceived project development methodology is employed. In particular we follow traditional waterfall model, prototyping model, iterative Rational Unified Process (RUP), RAD, agile Methodology or SaaS-based Solution Approach considering the nature of the project.
Developing a software solution is a complex and time-consuming process. We employ a structured framework to guide this development process.This framework defines different phases of the development process, such as planning, requirements analysis, design, testing and maintenance.
The choice of the methodology to be used for a development project is closely related to the size of the software system and the environment it is supposed to function in. Any project essentially goes through a cycle of Define, Design, Develop, and finally to Delivery and Management.
The work is started at the system level and passes through phases of analysis, design, coding, testing and maintenance.
Six activities constitute the overall development process.
This activity is characterized by system-level requirements gathering for all system elements, which then is reduced to a subset of requirements that are relevant to the software system being developed. Overall design and analysis tasks are also executed in order to understand the full system of which the software system being developed is only a part.
Software requirements analysis:
This activity is usually executed together with the customer, as the goal is to document all function, performance and interfacing requirements for the software.
Requirements are gathered using industry-standard practices and reviewed both internally by peers and externally by clients, and findings of reviews are tracked to closure. Once these requirements are frozen, the design work begins.
For creating the design of the software system the requirements are transformed into a representation of software that can be assessed for quality before the actual coding begins. Data structures, architecture, procedural details and interface characterization are outlined and documented in a design specification.
For overall functionality, we use Microsoft Visio for architecture and database design. Before the design is finally approved, it is exhaustively reviewed by Technical Leads and System Architects. Design specific errors are identified and resolved. The detailed design is given to the customer for review, if desired
This activity is the transition of the design specification into a software program.Internal and inline commenting is done along with the coding activity. Completion of each module results in preparation of test cases and unit level testing. Code reviews are also done to ensure that the developed code adheres to the organizational guidelines for coding.
Code Reviews are done upon completion of each software unit. This ensures that coding is done according to laid out guidelines and that code is readable, clean and maintainable.
This activity is for unveiling of all possible errors encountered using documented test methods in order to ensure that the software is in accordance with the requirements.
Test Planning is done at the onset of the project in the project planning phase. The Test plan outlines the types of test to be performed, resources, tools and responsibilities for test related activities.
During the integrated testing the entire application is deployed on the testing infrastructure and then various aspects of the application such as the platform support, browser support are considered. Some automated tools and stress testing tools are also used for this purpose.
Rather than being an atomic activity, maintenance reapplies all other activities, as new requirements are defined in order to adapt the software to the changes occurring in its environment and to correct errors encountered after the software has been deployed.
Use of the above methodology for the software development projects has yielded following benefits is our experience:
- Timely completion of project
- Higher reliability
- Development of a flexible & easy to use system.
- Optimum use of resources
- Customer satisfaction
SaaS-based Solution Approach
We employ a variation of what is technically called as the Software as a Service (SaaS) approach for providing a total solution to the client. This philosophy is quite different from selling the software product as one time activity. We believe that providing data service support to the client is equally important. Our SaaS-based approach ensures continuous association with the client and updating of application as per the ensuing need rather than bringing out the next version of the software according to our software development plans.In our view what a client basically wants from the solution-product is not mere ownership, but full functional delivery by the product. With that perspective we offer to owe complete responsibility of day to day functionality of the on-premises installation of our software solution along with data preparation.The client is thus not burdened with software maintenance and database management problems by our said approach. The product becomes operational from the day one.
This product service subscription model also avoids huge one-time upfront investment. Further the overheads including staff deployment costs are minimized for the client.So, even a client with limited budget can take advantage of this system.The client subscribing our product-service package benefits by an enduring service relationship with no maintenance fees.The approach is flexible to customize our solution addressing to the immediate, medium or long-term needs of the client. We offer suitable service-level agreements to the subscriber to assure the quality, availability, meeting the internal standards for data security and privacy besides support commitment.