|
To ensure that our clients always receive top-quality software products on time and within budget, Enlightened Technology employs a rigorous project methodology, which is premised on a holistic view of systems engineering. This approach recognizes the vital importance
of human interactions – between our management team and our clients, as well as between our clients and the systems we build. This philosophy informs every stage of our software development process – from gathering project requirements to delineating detailed specifications,
executing the project, and testing the resulting systems. After all, meeting or exceeding client expectations is our ultimate goal.
Planning & Requirements Gathering Careful requirements gathering is an essential first step in any software or database development project. In our experience, the time spent up front to gather detailed functional requirements eliminates process delays,
improves system quality, and greatly reduces "function creep" with its associated cost overruns. In addition, requirements gathering lays the foundation for a framework of mutual education, brainstorming, negotiation, and progress tracking.
At the start of every project, Enlightened Technology consultants work our clients to develop a detailed understanding of their needs. This process typically involves a series of meetings where our software and database experts collect functional requirements from
users, resolve conflicting requirements, establish and prioritize project goals, and identify critical risk and success factors for the project.
Analysis & Design One of the most important steps, even though it's frequently overlooked. It actually consists of two steps. The first is to establish a high-level design that specifies what the different parts of the system will be, and how they interrelate.
During this phase, decisions are made regarding what hardware and operating systems are required, as well as what software tools will be used. User interface standards are established based on the prototype discussed above, so that every window has a consistent 'look-and-feel'
in its presentation, and is consequently easier to use.
The second part is a detailed specification of each business module, window, and function within the system. A detailed database design, or schema, is also established at this point. As with prototyping, performing a detailed design allows changes to be made early,
while it's still relatively easy. Done properly, this serves as the foundation for the technical documentation of the system. It also serves as a blueprint to guide the development phase. At this point, a firm timetable can usually be established.
Development This phase is mostly self-explanatory, although it usually comprises the majority of the project life cycle. Taking the design established in the previous phase, the application itself is then built. As mentioned earlier, often the system is
built in multiple phases so that critical functionality can be deployed as early as possible.
Testing Even though it's listed as a separate phase, the bulk of the testing actually occurs during the development phase. This first part is commonly known as unit testing. Its goal is to make sure that the individual components of the system work well,
both separately and in conjunction with other parts of the system. If done poorly, the user will later experience problems such as system crashes, or poor performance. Done well, the user may not even be aware of this form of testing at all.
The other type of testing is known as system testing. Its goal is to make sure that the original requirements have been met, that the business rules embodied in the system are correct, and to verify that the system works as a coherent whole. This stage of testing
is done in close coordination with the eventual users of the system. This is another reason why it's important to have the participation of the end users in gathering requirements. Typically, a limited-scale deployment of the hardware and software is done in order
to facilitate the testing. Often, a new application will replace an existing one; in such a case, testing often includes running both systems in parallel for a defined period of time.
Deployment This is where it all comes together. Hardware is installed, and the network configuration is established. Depending on the design of the system, database, application, and web servers are installed on dedicated server machines. Existing data,
if any, is converted to the new system. The finished application is then installed, and final testing is done to make sure that all of the pieces of the system are working correctly in concert with one another.
Get Started!
|