Software engineering practices
Specific things are realized through the chosen methodology. It is she who determines how the development will be carried out. There are many successful software methodologies out there. The choice of a specific methodology depends on the size of the team, on the specifics and complexity of the project, on the stability and maturity of the company’s processes, and the personal qualities of the employees.
Predictable methodologies focus on detailed planning for the future. The planned tasks and resources for the entire duration of the project are known. The team has difficulty reacting to possible changes. The plan is optimized based on the scope of work and existing requirements. Changing requirements can lead to significant changes in the plan as well as the design of the project. Often a dedicated “change management” committee is created to ensure that only the most critical requirements are taken into account in the project.
Adaptive methodologies aim to overcome the expected incompleteness of requirements and their constant change. When requirements change, the development team also changes. A team involved in adaptive development has a hard time predicting the future of a project. There is an exact plan only for the near future. Plans that are more distant in time exist only as declarations of project objectives, expected costs, and results.
Software has its own life cycle. The life cycle of software is the stages that a software product goes through from the appearance of an idea to its implementation in the code, implementation in the business, and subsequent support. Life cycle models also largely determine software development methodologies.
Typically, life cycle stages include:
- Requirements analysis
- Design
- Programming
- Testing and debugging
- Operation, maintenance, and support.
Agile and Lean
Using Agile, you need to understand the limitations: teams should be small, participants should be competent and motivated, iterations should be short with the most understandable goals, clear time constraints should be set and the result should be obvious.
Agile handles uncertainty beautifully, predicting the future for a shorter period. The rule is: the higher the uncertainty, the shorter the iteration, and its duration can be even within 24 hours, as happens at hackathons. At the beginning of each iteration, control, retrospective, evaluation, and analysis of the results, planning the next iteration are inevitably performed.
The lean approach means that we save resources (including time) and solve problems most simply. For example: we do not make the entire product to understand that no one needs it – we make a landing page and a subscription form and advertise on it to check that this product is of interest to customers and make an informed decision about the need for development.
When it comes to product development, or some improvement, production, or engineering, we first make it an MVP (minimum viable product). The term MVP is now widespread and used everywhere, but it was born precisely from the Lean approach. MVP is a version of a product that fulfills its main function without being rejected by customers and recognizing its usefulness. Of course, it can be improved and improved, but in general, the product at the MVP stage should be useful, understandable to the client, and so that one can make a decision on its further improvements or recognize the experiment as unsuccessful and test a new hypothesis, spending as little resources as possible.
Post a comment