Software product requirements/specifications are analyzed and documented, which are reviewed by the client. Various software usage scenarios are studied and documented in Use Case document. For user interface intensive applications, wire-frame model and page flow document is created.
Prototype is very important for user intensive applications, and as a proof of concept for various other applications. Clients get a chance to provide feedback early in software development cycle, which can be incorporated in actual design and development.
Salzer development team architects and designs the software product taking into consideration various software product engineering attributes such as reliability, scalability, host-ability, etc. The team uses industry best-practices during the designing phase.
Development and Coding is done in a phased manner by implementing some core components and then developing other components. During this stage component unit testing is completed and it is ensured that each component is fully working.
Salzer Technologies quality assurance team tests and fixes the product to ensure that it meets the defined quality criteria for approval. After this phase, an “alpha” level product is delivered for system and integration testing.
An “Alpha” product has most of the UI and functionality. Some backend components and interfaces may be missing. Integration testing team performs integration testing before releasing “Alpha” version of the product. Bugs are expected at this stage. The Alpha release provides the first look of the application, and is useful for the client’s integration team. When Salzer makes the “Alpha” available to a client, the client installs and reviews Alpha code, and provides appropriate feedback.
The application is 100% complete as per requirements and specifications, and any approved change requests. Unit testing is 100% complete, with integration testing done for few modules, and system testing done by QA team. The application may still have few bugs. The application is exposed to a limited number of business users in a controlled environment. When Salzer makes the “Beta” available to the client (including the application as well as documented known bugs), the client installs and reviews it, and providing a full Beta Bug list through Salzer’s internal bug tracking system..
The QA team at Salzer approves the application and releases it to the client. Alpha and Beta bugs are fixed. Bugs should be very rare at this time. The application should be available to limited set of end users who are going to perform User Acceptance Testing (UAT). These users are not general users. Clients frequently use the Limited Availability version for Train-the-Trainer sessions.
Salzer Technologies QA team approves the application, which has fixes for any (and all) bugs reported during UAT, and makes it available to the client for general use.
Once the application is in general use, Salzer works with clients to support end users, and manages the feedback loop to improve the functionality and develop enhancements.
Our product engineering foundation designs product in such a way to ensure that it runs on multiple platforms, with varied permutations and combinations of browsers, web-servers, application servers, databases, and operating systems.
The scalability needs of an enterprise software product, and in particular the hosted applications, often go beyond those of other applications. As an example, it is often necessary to have concurrent support for multiple platforms, for different classes of customers (i.e. a departmental configuration for less than 100 users and so on). Testing and optimizing the software for different segments of audiences requires great skill.
Software Product Engineering requires a high level of precision and a well designed front-end. Above all, the applications should be intuitive and easy to use. A solution that minimizes the need for training and has an excellent online help, is a requirement, not an option.
An enterprise software product needs to be highly reliable and easy to support IT organizations (responsible for future support) often have limited knowledge of application’s functionality.
Software products need to be easy to install and upgrade. Comprehensive release notes required to debug installation, or handle upgrade issues, should accompany these applications.
Software Product Engineering for an extranet requires special skills, in contrast to solutions intended for company’s internal use. This is particularly true in scenarios where multiple companies may share the same database. Resolving issues surrounding security, network performance, remote support, diagnostics, and data modeling are critical to success.
enterprise software product often needs to support multiple languages. Therefore, while developing solutions one needs to keep in mind that a “literal” whether on a screen, or report, should not be hard coded. Beyond the code, this may also affect the data model and performance.
Software products should be configurable. If one wants to install specific modules, configure the behavior of the application, or wants to change the logo on a screen, the emphasis should always be on configuration over customization.
Enterprise software products often need keys for activation to ensure they are only used by authorized users on authorize hardware and within appropriate limits, such as time or number of CPU’s.
Enterprise software product should be able to interface with external systems without large amount of customization.
enterprise software product should be easy to version. It is quite likely that at any one time there may be half a dozen versions that need to be supported. Tracking these versions, making sure changes made to one have the right impact on another, and keeping them aligned, at times can be very challenging.
Customization of software product is essential as the business requirements are updated on a regular basis.