Section outline
-
Lesson 11. Software Development Process
Objective: Provides a systematic learning experience from understanding the software product life cycle to the ability to manage development methodologies. At the lowest level, Knowing/Remembering, the student must identify the four key components of a software development system according to the USDP unified process (people, process, project, product), list the seven standard steps of software development (from understanding the nature of the software to maintenance), and name the main roles (Product Owner, Scrum Master, Team) and events (Sprint, Standup, Review, Retrospective) in the Scrum methodology. The next level, Understanding, requires the student to explain the essence of the waterfall model as a sequential execution of the analysis, design, coding, and testing phases, interpret the difference between static, semi-static, and dynamic data structures, and formulate the core values of agile development, such as the priority of a working product over exhaustive documentation. Level Applying (3) requires the student to demonstrate the ability to use the Watts-Humphrey Capability Maturity Model (CMM) to classify an organization's maturity at one of five levels (from initial to optimized), apply Scrum principles to organize the team's work during a sprint, and determine the type of data structure required to effectively solve a specific algorithmic problem. Level Four, Analyzing, requires the student to compare traditional (heavyweight) methodologies with agile (Agile), highlighting their advantages and disadvantages depending on the stability of requirements, delimiting the stages of the software life cycle, identifying potential risks in the transition from design to implementation, and analyzing the impact of the human factor ("Personnel") on the success of an IT project. At the fifth level, Evaluating, the student must justify the appropriateness of choosing a specific development model (for example, V-model or spiral) for critical systems, criticize the chaotic nature of processes at the "Starting" maturity level of the CMM, and also evaluate the effectiveness of conducting daily stand-ups to monitor project progress. At the highest level, Creating, the student must develop (plan) an adapted development process for a startup, combining elements of Scrum and extreme programming, and design a plan for the organization's transition to a higher level of process maturity, implementing the necessary standards and quality control tools.