Software Development Processes
Business Process Management (BPM) begins with process modeling, “a business-driven exercise in which current and proposed process flows are documented in detail and linked to quantifiable performance metrics” (Silver, 2006, p. 28). The software development process in the present context involves seven processes; project initiation, requirements elicitation and analysis, design, construction, testing, release, and maintenance. Each of these processes can be modeled by examining in detail the inputs, resources, controls and outputs at each phase of the development life cycle.
A diagram representing the business processes which will take place during development of the software application has been included as an attachment to this report. The document represents each stage of development as a process with inputs, resources, controls, and outputs. Inputs are the items which arrive at that stage – the raw material provided in advance. Resources are the information, personnel, and other resources given for the process. Controls monitor the process to ensure the desired outputs are produced. Organizing each stage as a process in this way resulted in important refinements which are summarized in this report.
Process Specifications
Project Initiation. In considering project initiation, the business need, charter, scope, and project objectives were considered inputs. Resources at this stage are primarily related to management personnel in a project manager, a planning task force, and a management approval committee to review and approve any plans as they develop. Outputs of this initial stage include a project plan including duration and cost. Detailed planning documents including a COCOMO (University of Michigan-Dearborn, 2020) effort estimation and activity based estimates (OpenProj, 2019) will help ensure accuracy in the planning outputs. Additionally, a management level stage gate approval (HHS, 2012) of the plans generated provides further control on the suitability of the plans generated.
Outputs for the project initiation phase include guiding documents and controls for the life of the project. The project plan, for example, will include design standards to be used in the design phase, coding standards for the construction phase, and testing standards to be used in the testing phase. Requirements change control as procedures for handling maintenance issues should also be included in the plan document. Control reports for the life of the project are also initiated at this point, including an action item report, project cost report, and staffing report.
Requirements. The project plan and use-case scenarios from the project initiation are important inputs for the requirements processes. As part of formalizing the requirements process, outputs were further defined in terms of the appropriate UML diagrams to be produced. In particular, the requirements process would need to generate an Activity Diagram and a Use-Case Diagram (Miles & Hamilton, 2006, pp. 22-56). .
Design. UML diagrams from the outputs phase would accompany detailed requirements specifications and change control procedures as part of the design process inputs. Similar to the requirements phase, outputs for the design process were more detailed calling for object identification, class definitions, and UML class and system diagrams (Miles & Hamilton, 2006, pp. 63-107). UML Sequence Diagrams constructed in the design phase will provide important details on system procedures, objects and methods, for successful achievement of each required use case (Miles & Hamilton, 2006, pp. 108-130)
Construction. Code construction inputs consist of the object and class definitions and UML diagrams from the requirements analysis and design phases. Important resources for developers here include clearly defined role assignments for each developer and coding standards to be utilized on this project (Schach, 2011, pp. 509-510). Important controls include weekly code reviews, coding defect reports and a code churn, i.e. how often a developer needs to reconstruct portions of code (Gutha, 2015).
Testing. Inputs for testing include the fully-coded application, requirements specifications, and use-case scenarios. In addition to a team of developers for testing, resources for testing include test plan document, including suitable testing approaches and levels for the system (Bruegge & Dutoit, 2010, p. 478). Controls for the testing process include a testing report of test cases submitted, test cases passed and failed, and a test case back log report. A defect tracking report will also be used to track defects found in the testing process, when they are discovered and when they are corrected in the application code. The final control for the testing process is a stage gate review. Outputs including an approved testing log and the final revised coding artifact are forwarded for use in the release process.
Release. With the finished code artifact and approved testing log, the release team is guided by an implementation plan to accomplish rollout of each new release. To monitor their efforts, the release team will maintain an active user report. In addition, after the first release the release team will also monitor the bugs reported by customers by the maintenance team. Important outputs for the release team include user manual and training materials (Ahmed, 2011, p. 203). After each release, code artifacts are returned to the requirements team for preparation of the next release.
Maintenance. The maintenance team collects and reports information concerning customer bugs reported and follows procedures established in the project plan for resolving bugs as they arise. In some cases, the maintenance team will need to initiate change order requests to rectify a verified defect within the system. Change order requests are forwarded to the requirements team to begin the development process for necessary changes.
Summary
This article reports on the refinement of the software development processes for the employee tracking application. Each phase of the software development life cycle is taken as a process with inputs, resources, controls, and outputs. Both inputs and outputs of each phase were further refined, including specification of UML diagrams to be produced in the requirements and design phases. Controls for each process included reports and metrics to be measured as well as stage gate approvals at the project initiation, design, and testing stages. In addition, control reports and metrics for the project overall were identified.