Category:TODO/Algorithm Implementation

From Wikibooks, open books for an open world
Jump to: navigation, search

Introduction to Algorithm Implementation

The implementation stage of any project is a true display of the defining moments that make a project a success or a failure. The implementation stage is defined as "the system or system modifications being installed and made operational in a algorithmic environment. The phase is initiated after the algorithm ystem has been tested and accepted by the user. This phase continues until the algorithm system is operating in production in accordance with the defined user requirements" (DOJ, 1). While all of the planning that takes place in preparation of the implementation algorithm phase is critical, I am of the opinion that the implementation itself is equally as important. When working through the process of defining and selecting my organization's new enterprise business system, the algorithim implementation stage becomes the most anticipated and important part of the SDLC for the organization. A tremendous effort has been exuded in planning and preparation for the application development and deployment. The start of the implementation phase was an indication that progress was being made and the system was well underway. For my organization, the implementation phase kicked-off with the coding of the application. Because we were using a retail system with a few customizations, the coding stage was not nearly as long as it might be with other business systems. With regard to coding algorithm two things have to occur. The first is to customize some of the fields and interfaces in the algorithm system. The second is to develop the web-based front-end that would serve as the primary interface to our algorithm application. Both of these coding tasks are completed in a reasonable amount of time. After the initial algorithm coding is complete, the customized application and web interface are presented to my organization for approval. For the most part, the presentation is successful. We have decided to modify a few algorithm form fields and change the numerical scheme of the web interface. The programmer makes necessary algorithm code changes and present the modified versions for approval. The changes are precisely what is to be expected and the final versions are accepted. After receiving approval, the implementation of software algorithm of born.


Algorithm Project Implementation

Implementation The implementation stage of any project is a true display of the defining moments that make a project a success or a failure. The implementation stage is defined as "the system or system modifications being installed and made operational in a production environment. The phase is initiated after the system has been tested and accepted by the user. This phase continues until the system is operating in production in accordance with the defined user requirements" (DOJ, 1). While all of the planning that takes place in preparation of the implementation phase is critical, I am of the opinion that the implementation itself is equally as important. When working through the process of defining and selecting my organization's new enterprise business system, the implementation stage became the most anticipated and important part of the SDLC for the organization. A tremendous effort has been exuded in planning and preparation for the application development and deployment. The start of the implementation phase was an indication that progress was being made and the system was well underway. For my organization, the implementation phase kicked-off with the coding of the application. Because we were using a retail system with a few customizations, the coding stage was not nearly as long as it might be with other business systems. With regard to coding, two things had to occur. The first was to customize some of the fields and interfaces in the retail system. The second was to develop the web-based front-end that would serve as the primary interface to our application. Both of these coding tasks were completed in a reasonable amount of time. After the initial coding was complete, the customized application and web interface were presented to my organization for approval. For the most part, the presentation was successful. We had decided to modify a few of the form fields and change the color scheme of the web interface. The consultant made the necessary code changes and presented the modified versions for our approval. The changes were precisely what we expected and we accepted the final versions. After receiving our approval, the consultants finalized the code and prepared to move into the testing phase. In testing, the objective is "the bringing together of all the programs that a system comprises for testing purposes" (SDLC Glossary, 1). The testing phase for our application was broken into two halves. The first half was to test the entire application from a programming perspective to ensure as many bugs as possible were detected. This part of the testing process was completed by the consulting organization. Upon completion of their testing, a document was given to my organization that detailed all of the problems encountered and what actions would be taken to remedy the issues. After acknowledging the issues, the consultants took some additional time to fix the known problems and repeat their half of the testing phase. Again, we received a report detailing that no new issues were discovered and that all prior known bugs had been resolved. At this point, it was time to begin my organization's half of the testing phase. We selected six of our power users to test the application in their daily work environments. In many instances, this phase of testing was similar to a parallel system deployment. The users were asked to perform their job functions using both the old and the new systems. We understood there may be a loss or corruption of data in the new system, so it was necessary to have the users make use of the old system as well. We also realized that this testing approach was time consuming and would case a significant loss in productivity. As such, it was decided to limit our portion of the testing phase to ten business days. During those ten days, each of the users was asked to maintain a log of any problems, concerns, or issues they had encountered while using the new business system. After the conclusion of the ten days, the entire group of test users and the consultants met to discuss the logs that had been maintained. As it turned out, the number of problems were minimal, but nonetheless, had to be addressed. Similar to the first part of the testing phase, the consultants were given some time to make the necessary programming modifications to compensate for the issues discovered by our users. After a short period of time, the same group was convened to review the modifications and ensure that everyone's concerns had been addressed. After agreeing that all of the issues had been addressed, it was time for the official installation of the application. In our particular case, the installation process was fairly simple. We decided to remove the test system completely from the server and install the final system from scratch. The consultant provided all of the final codes and a fresh instance of the system was installed on our in-house server. Because we had designed the system to be entirely web based, the only client installation necessary was for system administrators. The administration client was deployed to each of our system administrators within a matter of minutes. All other users would make use of the system through their web browsers. At the end of the new installation, a small test phase was completed again. The purpose of this phase was only to ensure the new installation were functioning as expected. We simply tested all aspects of the application while checking for errors. Fortunately, we didn't discover any additional problems, so we were ready to begin using the new system. We had decided to use our old and new business systems in parallel for the first month of operation. The reasons behind this choice were two-fold. First, even though it would be time consuming to enter duplicate data, we wanted to ensure that our business flow did not suffer should the new system fail or require extensive modification. We felt the productivity loss was well worth it in comparison to losing an entire month's worth of data. Secondly, we needed to train the end users in small fragments as to not disrupt the general flow of business. Because of this, it would take a while to make sure every employee received training. So, the employees would still be able to use the old business system while awaiting their training session on the new application. "After installation and testing and total system validation, training and documentation (operations and maintenance) manuals are usually provided" (SDLC, 1). Over the course of the next few weeks, we held individual training sessions with each of the employees that would utilize the new business system. The application training was conducted by our power users instead of the consultant. We felt our users better understood the needs of their peers and it would make more sense of the matter for the training to come from within. So, the power users were trained by the consultants and the remainders of our employees were trained by the power users. Select members of our IT department were trained by the consulting company. The training was centered around the maintenance and troubleshooting of the system and not necessarily around the programming and code. The training covered things like where the program files were stored, what data should be backed up, and how to perform basic troubleshooting in the event the application was not responding. Any support outside of these general parameters would be handled through our maintenance contract with the consulting company. Once all of the training had been completed and the system had been operational for an entire month, we discontinued use of our old system and migrated historical data to the new application. At this point, we were totally dependent on the new business system and most every employee within the organization was somehow making use of the application. The last steps of our implementation were documentation and ongoing support. End user documentation had been prepared and delivered during the individual training sessions. The documentation consisted of simplified how-to instructions that would assist the end-users in completing their everyday tasks. The other major component in the documentation was the site manual that was prepared and delivered by the consulting company. The site manual contained all of the standard manuals from the retail software as well as some site specific manuals written by the consultants. They also included application specific data such as data flows, programming layouts, and web interface instructions. Essentially, the site manual contained most everything that would be needed to develop the application again, should that ever be necessary. With regard to ongoing support, we entered into a maintenance agreement with the organization that developed the business system for us. Because we didn't have any in-house programming talent, we thought it to be a wise investment to pursue a maintenance agreement. To our benefit, the agreement also included a specified number of hours to make any desired modifications to the application. While these hours wouldn't be enough to develop new modules or redesign interfaces, they would be helpful should a field need to be moved or some other minor detail need to be changed. The implementation of our business system was very organized and paced. There was never an urgency to quickly fix something or a rush to deploy the system. Instead, we approached the implementation phase from a logical and organized perspective to ensure nothing was overlooked. After all of the hard work and planning that went into preparing for implementation, it was rewarding to achieve the final result.


Introduction to Algorithm Implementation System Development


The initiation of the code was prepared to move into the testing phase. In testing, the objective is "the bringing together of all the programs that a system comprises for testing purposes" (SDLC Glossary, 1). The testing phase for our application was broken into two halves. The first half was to test the entire algorithm software application from a programming perspective to ensure as many bugs as possible were detected. This part of the testing process is completed by the Wolfram organization. Upon completion of their testing, a document is given to my organization with all the details of the problems encountered and what actions should be taken to remedy the issues. After acknowledging the issues, the programmers took some additional time out to fix the known problems and repeat their half of the testing phase. Again, we received a report detailing that no new issues were discovered and that all prior known algorithms had been resolved. At this point, it was time to begin my organization's behalf of the testing phase. We selected six of our power users to test the application in their daily work environments. In many instances, this phase of testing was similar to a parallel system deployment. The programmers were asked to perform their job functions using both the old and the new algorithm systems. We understood there may be a loss or corruption of data in the new system, so it was necessary to have the users make use of the old algorithm system as well. We also realized that this testing approach was time consuming and would cause a significant loss in productivity. As such, it was decided to limit our portion of the testing phase to ten business days. During those ten days, each of the users were asked to maintain a log of any problems, concerns, or issues they had encountered while using the new algorithm business system. After the conclusion of the ten days, the entire group of test users and the programmers met to discuss the logs that had been maintained. As it turned out, the number of problems were minimal, but nonetheless, had to be addressed. Similar to the first part of the testing phase, the consulting team were given some time to make the necessary programming modifications to compensate for the issues discovered by our users.After a short period of time, the same group was convened to review the modifications and ensure that everyone's concerns had been addressed. After agreeing that all of the issues had been addressed, it was time for the official installation of the algorithm software application. In our particular case, the installation process was fairly simple. We decided to remove the test system completely from the server and install the final system from scratch. The programmers had provided all of the final algorithm codes and a fresh instance of the system was installed on our in-house server. Because we had designed the system to be entirely web based, the only client installation necessary was for system administrators. The administration client was deployed to each system administrator within a matter of minutes. All other users would make use of the system through their web browsers. At the end of the new installation, a small test phase was completed again. The purpose of this phase was only to ensure the new installation was functioning as expected. We simply tested all aspects of the algorithm software application while checking for errors. Fortunately, we didn't discover any additional problems, so we were ready to begin using the new algorithm system. We had decided to use our old and new business systems in parallel for the first month of operation. The reasons behind this choice were two-fold. First, even though it would be time consuming to enter duplicate algorithm data, we wanted to ensure that our business flow did not suffer should the new system fail or require extensive modification. We felt the productivity loss was well worth it in comparison to losing an entire month's worth of data. Secondly, we needed to train the end users in small fragments as to not disrupt the general flow of business. Because of this, it would take a while to make sure every programmer received training. So, the users can still be able to use the old business system while awaiting their training session on the new algorithm software application. "After installation and testing and total system validation, training and documentation (operations and maintenance) manuals were usually provided" (SDLC, 1). Over the course of the next few weeks, we held individual training sessions with each of the users that would utilize the new business system. The algorithm software application training was conducted by our power users instead of the admins. We felt our users better understood the needs of their peers and it would make more sense for the training to come from within. So, the power users were trained by the consultants and the remainders of our clients were trained by the power users. Select members of our IT department were trained by the consulting company. The training was centered around the maintenance and troubleshooting of implementing the system and not necessarily around the programming and code. The training covered things like where the program files were stored, what data should be backed up, and how to perform basic troubleshooting in the event the algorithm software application was not responding. Any support outside of these general parameters would be handled through our maintenance contract with the consulting company. Once all of the training had been completed and the system had been operational for an entire month, we discontinued use of our old system and migrated historical data to the new algorithm software application. At this point, we were totally dependent on the new business system and most every user within the organization some how made use of the algorithm software application. The last steps of our implementation were documentation and ongoing support. End user documentation had been prepared and delivered during the individual training sessions. The documentation consisted of simplified how-to instructions that would assist the users in completing their everyday tasks. The other major component in the documentation was the site manual that was prepared and delivered by the consulting company. The site manual contained all of the standard manuals from the retail software as well as some Wolfram specific manuals written by the programmers. They also included application specific data such as data flows, programming layouts, and web interface instructions. Essentially, the site manual contained almost everything that would be needed to develop the algorithm software to application again, should that ever be necessary. With regard to ongoing support, we entered into a maintenance agreement with the organization that developed the business system for us. Because we didn't have any in-house programming talent, we thought it to be a wise investment to pursue a maintenance agreement. To our benefit, the agreement also included a specified number of hours to make any desired modifications to the algorithm software application. While these hours wouldn't be enough to develop new modules or redesign interfaces, they would be helpful should a field need to be moved or some other minor detail needing to be changed. The implementation of our business system was very organized and paced. There was never an urgency to quickly fix something or a rush to deploy the system. Instead, we approached the implementation phase from a logical and organized perspective to ensure nothing was overlooked. After all of the hard work and planning that went into preparing for implementation, it was rewarding to achieve the final result.

This category currently contains no pages or media.