The Key To Systems Development Life Cycle Information Technology Essay
The stages and phases of the Systems Development Life Cycle and the roles of the stakeholders and users/testers are pivotal to the success of a systems development and implementation project. Many projects have failed or stalled because the stakeholders and users/testers were brought onboard late in the life cycle and were not allowed to provide ideas and feedback from the onset of the project. From the Initiation stage to the Disposition stage these crucial project team members contribute a wealth of knowledge along with valuable lessons learned that lead to a well-organized and rounded project life cycle which can facilitate a productive and quality end product. An organization that will embrace this thinking can enhance their use of resources and maximize the production of goods and services to ultimately reach their economic efficiency goals.
The world of technology literally advances in leaps and bounds every single day and the need for faster technology systems and hardware is growing at an equal rate. The primary goal for most businesses, of course, is profitability. And to ensure probability a company needs to meet one important measure – customer satisfaction. Businesses today want digital tools that will give them a competitive edge in their market and that will bring the biggest opportunity for growth and increased profitability. When customer satisfaction is improved, market share improves, which improves the profitability of the businesses, which allows for increased funding for technology project investments that refine internal systems and processes, which improves customer satisfaction, which inevitably circles to increased profits. It is a cyclic phase of growth that every business encounters and to handle it effectively a company must have a disciplined process and work methods that make information technology project implementations a success. Many companies have different ideas regarding the point at which stakeholders and testers should be included in the project life cycle. Stakeholders and testers are a key factor to project success and should be involved from the beginning of the project, throughout the project, and after completion of project when maintenance, enhancements, or updates are required.
Poor planning and the lack of disciplined and robust processes could spell disaster for any information systems project. The larger the business, the larger the scale of the project and such projects require a clearly defined, structured, and methodical process in order to achieve a successful project life cycle and an equally successful information system implementation. With any system design project, there are stakeholders from various cross-functional teams throughout the organization, who will expect the implemented system to enhance their normal day-to-day business activities rather than inhibit them or make them more difficult. Regardless of project size, stakeholders and users/testers are the most important attribute in the SDLC and they should be part of the life cycle at every stage, from the onset of the project to the close of the project, to the system obsolescence and beyond.
This discussion will include an example of the basic stages of the Systems Development Life Cycle (SDLC), the project life cycle, project management, and the roles of stakeholders and testers. The SDLC is a type of methodology that begins with an idea and takes that idea through steps or stages resulting in a functional information system. According to Schwalbe (2006), “Project life cycle is a collection of project phases. Some organizations specify a set of life cycles for use on all their projects, while others follow common industry practices based on the types of projects involved” (p. 53). There are many different and varied methodologies, and though the steps and stages may vary, the basic cycle involves planning, analysis, design, implementation, and maintenance. Within these top level stages, there are sub-tasks and steps that are performed. Some organizations perform the steps or stages in different order and believe their method to be the best. Project management can be described as the sum of all methods and management techniques that are utilized within a project and act as guide for the execution of a project from start to finish. A stakeholder is someone who has vested interest in the development of the information system and may or may not be a user of the system. And finally, a tester evaluates the design of the system during the actual Design phase of the SDLC and also during the Integration and Testing phase. A tester is generally a user of the of the information system and can definitely be considered as a stakeholder. For the remainder of this discussion and during the example summarized, we assume that top level stakeholders are not users or testers and the users and testers are one in the same.
To understand the importance of stakeholders and users/testers we must first understand the project life cycle (PLC) and the Systems Development Life Cycle (SDLC) and how they work together to achieve a result that meets business and product requirements. The PLC is encompasses all of the activities of the project as a whole while the SDLC focuses specifically on the life cycle of the product and customer product requirements. According to Wikipedia.com, the definition of the SDLC is “the process of creating or altering systems, and the models and methodologies that people use to develop these systems. The concept generally refers to computer or information systems. In software engineering the SDLC concept underpins many kinds of software development methodologies. These methodologies form the framework for planning and controlling the creation of an information system: the software development process.” This process is used by project teams to development an information system that will meet the needs or requirements of the users. As discussed in the introduction, the basic stages of the SDLC are planning, analysis, design, implementation, and maintenance. There are a plethora of models and methodologies available to choose from and one model may not fit all projects. When evaluating which model or methodology to use, project teams must take into consideration the scope of the project as well as the approved model and methodology used by their organization. For the purpose of this discussion we will use an example SDLC that divides the life cycle into ten steps: Initiation, System Concept/Development, Planning, Requirement Analysis, Design, Development, Integration and Testing, Implementation, Operations & Maintenance, and finally Disposition. Below is a diagram borrowed from the U.S. Department of Justice information resources management document (2003) to illustrate the example provided during this discussion. In most variations of the SDLC, each stage should build off of the previous stages and the efforts and outputs from them.
The first stage of the SDLC is the Initiation phase in which an organization or customer identifies a need or opportunity for a new or updated information system or product. In most businesses, a proposal or project request is created to put the requirement on the Information Technology (IT) radar and get business approval from management team and funding to proceed. The proposal should include the main product requirement along with an estimate or ballpark for potential benefits to the business if the project were to be pursued and implemented. It is crucial during this time to identify a sponsor and stakeholders who will have a direct stake or interest in the outcome of the project as they will be instrumental in guiding the overall project life cycle. If the stakeholders are not identified then the project team cannot understand the deliverables and the stakeholder’s point of view, it cannot get buy-in on critical decisions, it will not have the push and support from the key areas of the business that will make it a success, and the project could experience problems in getting started or miss targeted deadlines because they do not have the support needed to proceed along the project life cycle and through any potential obstacles. If stakeholders are not completely imbedded in the success of the project, from the onset, decisions might be overruled or challenged and milestones could be delayed. The whole project could potentially be at risk.
The second stage of the SDLC is the System Concept and Development phase. During this phase, the project leader or project team has been given a request or a need for an information system; essentially this is the output of the Initiation stage. This phase can also be described as the data-gathering phase and is when the project officially begins. The project leader must gather all the information needed to develop the project charter and project plan. For example, what is the background of the project? Where and why did the need originate? Who are the stakeholders and what do they expect from the final product? What resources will be required to complete the project? How will it benefit the organization? What are the budgetary and schedule goals? In some instances, the project leader has to determine much of this information alone because a project team has not been formed yet. This is a critical point in the project where folding the stakeholders and testers into the project life cycle and activities are pivotal to project success. In order to reach the desired goal, the project leader and team must first know and understand where it is going and what the goal and deliverables are. Though the stakeholders were part of the initial phase, a complete list of stakeholders may not have been identified or more details from stakeholders may be needed in order to begin project work effectively. Stakeholders may or may not be users of the new information system and in most companies they actually hold management roles within the organization. They may or may not be part of the weekly project meetings or performing specific tasks such as designing, testing or data validation. However, they are generally the main providers of the initial business requirements from a top level view and have a stake in the success of the project. As such, they should be a part of the project kickoff meeting, a part of the major decision making for the project, and be provided updates throughout the project life cycle. To acquire a more granular level of the business requirement and details, called functional requirements, representatives from functional groups across the business are needed for project support and are selected as project team members during this phase. Of course, not all of the business requirements will be immediately recognized and outlined at this point in the life cycle. Some requirements may be added while others are revised or removed. The business requirements are finalized and approved during the Requirements Analysis stage. Many organizations do not feel it necessary during this phase of the project life cycle to include the users/testers or “worker bees” who will actually be using the final information system. In the eyes of some critics of this mentality, this decision can sometimes be a costly and fatal mistake. Those using the current system and performing the day to day tasks have the knowledge and experience to help discern what will work and what will not. They can help identify missing top level requirements or areas that were not thought of by the upper level management team or stakeholders when the project was proposed. With user/tester involvement during this phase, projects that have potential major complications or repercussions downstream can be identified early on and save the business from a negative investment before getting too far down the project life cycle path. For these reasons alone, users/testers should be brought onboard during this key stage of the life cycle. From personal experience, systems designed before the requirements are clearly defined (including definitions from those that will use the system) can bring about costly rework and problems later on in the project lifecycle. Although details and activities regarding business requirements are visited in more detail in later stages, the users/testers are essentially the final customers – they will use the designed product and will play a big role in the Integration and Testing phase. They are just as equally important before the product is designed and should be added to the project team during this stage to ensure they are part of the preliminary thought processes and have a firm foundation in which to build detailed functional requirements. In all reality some of the more meatier and substantial business requirements are first proposed during this phase and the users/testers views, ideas, and experience can only enhance this stage of the process and allow for a better quality product with less defects to be designed and implemented.
The third stage of the SDLC is the Planning phase. Some organizations establish a project charter, identify project team members and hold a kick off meeting during this stage. The main goals of this phase are 1) define the project scope, alternatives, and feasibility, 2) develop a schedule and communication plan, 3) divide project into manageable tasks, 4) assess benefits and risks, 5) create a preliminary budget and project plan. To define the project scope the project team needs to identify the problem or opportunity the project will address and decide how success will be monitored and measured. Team should review alternative solutions and the feasibility of each of those solutions as part of the planning phase. The schedule and communication plan can be constructed using a network diagram or Gantt chart which helps to identify the shortest duration that the project can be completed, or the “critical path” as well as the project schedule and milestones. This phase will also involve the development of the Work Breakdown Structure (WBS). The WBS document helps define the project work scope and to break down the work into manageable sections or tasks in an organized way. The WBS captures all of the tasks and actions that are needed to complete the project life cycle and is constructed using the initial business requirements. This type of tool is important for task assignment, deadline creation, and the monitoring of project goal progress and will also aid in communicating project progress to the business. To assess risks and potential benefits, team should review all of the possible outcomes both positive and negative so that the negative ones can be avoided. Project team should also prepare a preliminary budget during this phase that outlines the planned expenses and the revenue benefits from the results of the project. Finally, a statement of work (SOW) and project plan should be created. The statement of work outlines the work that will be done so that the customer has clear details on what the project will deliver. The project plan is the estimation of the completion of the project tasks and the resources required to execute the project. There are many different approaches to the structure and outline of these documents, but ultimately they can be some of the most important tools in the project toolbox because they can aid the project team in the planning and completion of the entire project. The Planning phase is very important to project success and it is during this phase that the stakeholders and users/testers can provide valuable feedback in regards to project scope, time and resource management, task assignment deadlines, project risk and benefits, and overall project completion. Stakeholders can push for support of the project from the leaders of the various functional areas of the business and the users/testers can provide insight to specific tasks or goals that need to be captured in order to integrate current day to day functions into the new information system.
The fourth stage of the SDLC is the Requirements Analysis phase. During this phase the project team defines the functional requirements, what is in scope and out of scope, and defines the business rules to meet the stated business objectives. During this phase an idea or picture of the current business processes and practices will begin to form so that the main points and activities can be integrated into the new system. Most organizations pull in various stakeholders and users/testers during this time to identify and finalize the business requirements. It is very important for the output of this stage of the life cycle to be a complete and accurate representation of the requirements so that there is no room for defects and the final product is one that the customer is happy with. The output of this phase of the SDLC is a formal business requirements document (BR) that defines the functional, technical, operational, and transitional capabilities, restrictions, and features that must be provided by the new system. Since effective collaboration and communication is necessary to achieve this result, it stands to reason that the stakeholders and users would be better equipped to finalize the requirements if they had been involved sooner in the SDLC and project life cycle. One would assume that bringing in users/testers this late in the game might cause controversy as most of the requirements are already documented for them and perhaps some of the development and design is already underway. Though many analysts have learned not to develop and design without completed requirements, more often than not a business may push for quick deliverables and a short project timespan which necessitates development and design by the analysts before requirements are finalized. If the users/testers do not agree with an aspect of the business requirements or identify additional requirements that had not been previously identified before, there is a potential for project disruption especially if it requires rework or redesign to meet the new or revised requirements. Engaging stakeholders and user/testers from the beginning of the project could alleviate any disruptions and ensure that everyone is on the same page regarding the status of the project and what deliverables are required for this stage of the life cycle. In other words, the users/testers would have had just as much time to prepare for this final drafting of functional requirements as did the rest of the of the project team. It is important to note that in this phase of the life cycle for most businesses, the idea is that requirements are being put forth without making assumptions on how the system will be built. Stakeholders and users/testers should put forth requirements on what they believe are necessary to make their work more productive and profitable for the business without considering current system capabilities or lack of capabilities.
The fifth stage of the SDLC is the Design phase. During this phase, IT analysts focus on how to transform the functional business requirements into a complete and detailed information systems solution that meets the required functionality. The functional requirements are interpreted, categorized, and prioritized. To interpret some of the requirements, analysts must sometimes revisit the requirements with the stakeholders and user/testers. This is usually done by direct contact via one-on-one communication, but can sometimes be held in a group or project team environment at the same time the requirements are being categorized and prioritized. Core requirements are generally prioritized at the highest level and are “must have now” while next to highest levels are usually for the “must have eventually” requirements and the lowest level would fall under the category of “nice to have”. However, some requirements might be deemed as “out of scope” and no action will be taken on them. Generally for a successful project, all of the core requirements and a good amount of the “must have now” requirements should be included in the final system or product or the customers will not recognize a benefit from the new system. Again it is very important for stakeholders and users/testers to work very closely with IT to ensure the design progress is working in conjunction with the requirements. This phase includes the user interface design, the data structure design, and the program design. Some testing may even be required during the design phase as prototypes are being developed. Prototypes are essentially working models of the new system.
This brings us to the sixth stage of the SDLC, the Development phase. During the development phase analysts take the design elements from the previous stage and develop the required functionality into the new information system. The new system is generally created in what is called a test environment or instance. The elements might include user interface menus, data entry forms, data reporting formats, and specialized procedures and functions. Some of the tasks may include preparing test case procedures, test case files, coding, compiling, refining programs and performing test readiness reviews. During the development analysts may perform testing on their own or involve the stakeholders and users/testers in the testing of the design and development to ensure it is meeting the business requirements as per the BR document. At this point, new or additional information or requirements are not usually accepted and are classified as out of scope; however, the impact and resources needed to implement the change as it relates to the original requirements and criticality to productivity is reviewed and in some cases the additions or changes are accepted. If the changes are accepted the project may be suspended temporarily while the outputs of the previous stages are updated and reconciled with the current design and development. It is very important though that stakeholders and users/testers do not get too focused on the “nice to have” aspects and try to minimize scope creep. Scope creep occurs when the scope of project is not clearly defined or new ideas arise during design and development. It is best to put those ideas into a parking lot of issues that can be reviewed after initial implementation and perhaps be part of a future enhancement. Again it is important in this stage as well for stakeholders and users/testers to be involved in the life cycle to ensure that the analysts are on the right track in regards to functional requirements. Lastly, training documents are created during this phase so that users know how to use the system when it is implemented. Users/testers play an important role as they understand the user perspective and a basic idea of what training topics, screen shots, and tutorials will be needed to allow all business users to transition into the new system with ease or with a small amount of disruption to daily productivity. In many cases, the users/testers are the primary authors in the training documentation that will be rolled out to the business prior to go-live of the new system.
The next stage, the Integration and Test phase, is the seventh stage of the SDLC. During this phase, the developed system is compared to the functional requirements document and testing is performed on the new system by the stakeholders and users/testers in a test environment. This testing is more formal than the sporadic testing done in previous stages and is documented fully. In most organizations there are two main rounds of testing called System Integration Testing (SIT) and User Acceptance Testing (UAT). Some businesses may have one or two iterations of SIT and one UAT. During SIT stakeholders and users/testers test the various system parts, components, and programs as a whole, complete system to make certain each facet or module works properly together and provides the desired results without errors. Users/testers try to “break” the system and find defects or bugs so that these issues can be corrected by IT team before implementation. Production users of the new system are identified and linked to their respective roles and responsibilities in the test instance to confirm that the appropriate levels of access are provided. During UAT, users perform testing on the final developed product and accept or approve the system before it is implemented. The main goal of this phase is to test and verify that the new information system functions as per the functional requirements. If the testing fails, then the project cannot move to the next stage.
The eighth stage of the SDLC is the Implementation phase. During this phase an outage window is determined and the current business systems are brought down while the team begins writing the production code to implement the new system. By this time, production users have been trained on the new system and are fully informed of what to expect when the new system goes live. Any errors or bugs identified during UAT are addressed and corrected where feasible. Depending on the size of the project, some implementations can take anywhere from one business day to up to two weeks or even longer. However, most implementations occur over the weekend. Once the code has been implemented, the stakeholders and users/testers once again test the system – this time in production. Once all of the test scripts have been completed and any errors or bugs are corrected, the system is released to the entire user population. In some organizations, the project team is on standby for any issues with the new system that users may encounter so that they can be quickly resolved and overall productivity is not affected. Stakeholders and users/testers often times become “superusers” or go-to persons within the organization for help with training or problems in operating the new system. Because they have been involved with the project from the beginning, they have a fair amount of knowledge with the new system and can be resources for problem resolution that does not require IT intervention such as form or system navigation, program usage, or location of training documents. Lastly, the project team regroups to go over a post-implementation briefing to identify what went well, what lessons were learned, and what could be done better or more efficiently next time. Problems that are still occurring that were not vital to the implementation are also reviewed and addressed.
The ninth stage of the SDLC is focused primarily on what happens after implementation. It is called the Operations & Maintenance phase. During this phase the tasks necessary to operate and maintain the information system in the production environment are handled. This could be related to database performance, reporting programs and tools, and training documentation updates. This phase also includes any updates, upgrades, patches, or enhancements to the current system. Stakeholders and users/testers are important in this stage to ensure that these activities are tested prior to implementation. They bring with them the knowledge and experience they have gained through testing and operational use since implementation of the system. Generally, in most organizations, these activities follow a mini-SDLC or approval, testing, and implementation process so that they do not negatively impact the current production environment.
The final stage of the SDLC, the tenth stage, is the Disposition phase. This phase gives emphasis on the end-of-system activities that are necessary when the system is to be replaced with a new one because it has become obsolete or outdated. Since the system will no longer be supported, a plan must be developed to archive pertinent data and system information to a data warehouse or other method of storage to safeguard the history and integrity of the data. Some plans may also involve getting rid of old equipment. Stakeholders and users/testers can help to identify the data that needs to be transferred, test that the data transferred correctly and accurately, is available for research and/or reporting programs and sign off on the dismantling of the system.
The most important idea to take away from the Software Development Life Cycle (SDLC) described in the example above is that stakeholders and testers are extremely important in every stage and phase of the life cycle. From the moment the systems project is initiated to the time when the system is ready to go off-line, the stakeholders and testers are key to life cycle management and project success. Along the way, these persons within the organization understand the current processes and products used in daily activities – they are the feet on the ground level of the business and have the knowledge and expertise necessary to identify what will work and what will not, what the requirements should entail and what they should not entail, what system improvements will net higher productivity, quality and profitability, and sometimes what it will take to get the business there. They can identify errors in design, development, testing, and implementation and provide feedback and brainstorming ideas for better solutions. Though it may initially require a greater investment of time and resources for an organization to provide these essential project members to support the project from the onset, the business and ultimately the customers can only stand to benefit from this line of thinking and practice. A successful SDLC demands that stakeholders and users/testers be on board with the project life cycle from day one. The benefits outweigh the risks and utilizing these key resources brings an organization full circle and back to the primary goals of most every business in the world – customer satisfaction and profitability.Order Now