Systems Analyst. A Brief Guide to the Profession. Part 5. Development Methodologies. Waterfall and Agile

Cons: However, its disadvantages are lack of flexibility to changewhich entails high risks – the occurrence of errors at the final stages can lead to missed deadlines or an increase in the development budget.

Flexible methodologies. Agile

Agile – is a family of flexible project management methodologies. Agile includes the following main frameworks: Scrum, Kanban, Lean, LeSS, SAFe.

The essence of Agile is contained in its four points manifesto:

  • People and their interactions are more important than processes and tools.

  • A working product is more important than comprehensive documentation.

  • Cooperation with clients is more important than the terms of the contract.

  • Responding to change is more important than following a plan.

The main advantages Agile is high flexibility to change, speed of new functionality release and reduced risks due to iterative development and the ability to receive feedback on the product as it is developed.

The main disadvantages are the difficulties of planning development deadlines and budgets.

Development Methodologies

Development Methodologies

Scrum

With Scrum, the product is not developed all at once, but in parts – each of them is implemented within the framework of a sprint.

Scrum Guide clearly describes the team composition that is required to develop the product. Each participant has their own role, each is responsible for their part of the work in order to effectively meet the needs of the business.

The Scrum team includes: Product Owner, Scrum Master, Development team.

Product Owner – a person who is responsible for the product as a whole. He monitors how the product will develop, sets priorities, monitors deadlines, communicates with stakeholders.

Scrum Master – a person who is responsible for ensuring that the Scrum principles are followed in the team and helps maintain the work process.

Development team – a group of people (usually up to 10 people) involved in product development, such as designers, systems analysts, developers, and testing engineers.

Command Attributeswhich works according to Scrum:

  • Product Backlog – an ordered list of tasks that is maintained and updated by the Product Owner.

  • Product Increment – a finished part of a product that meets the user's needs.

  • Sprint – this is a time interval (usually two weeks) during which the product functionality is developed.

  • Sprint Backlog – an ordered list of tasks that are planned for the current sprint.

  • Development board – visual display of the development team's tasks in the current sprint with statuses (usually: Backlog, In progress, Testing, Done).

The Scrum team regularly participates in several activities:

  • Working with the Product Backlog and Sprint Planning – the team needs to define the sprint goal and select tasks from the product backlog that need to be taken on for the next sprint. Before that, it is necessary to evaluate all tasks and sort them by priority. The most important ones need to be taken first.

  • Daily (daily) – during the sprint, the team gathers for daily meetings. At these meetings, team members share the results of their work, talk about the problems they encountered.

  • Grooming (groom – to comb) aka product backlog refinement (PBR, backlog refinement) – during the sprint the team gets together and discusses existing or newly emerged tasks.

  • Demonstration (demo) – the team demonstrates the results of their work to users or customers. This is how they get feedback. (Usually done at the end of a sprint, but often in reality – before any functionality is brought to the testing stage).

  • Retrospective (retro) – Before a new sprint begins, the team holds a retrospective. A retrospective is an event where the entire team discusses the positive and negative aspects of working together during the previous sprint.

In Scrum, there are two types of criteria for tasks:

  • Definition of Ready – a criterion for the readiness of a task so that it can be taken from the backlog into a sprint, as a rule, this is the presence of a description of the task and its dependencies, a certain priority of the task and an estimated labor intensity.

  • Definition of Done – a list of criteria by which the team determines the successful completion of a task.

Kanban

Kanban does not dictate clear rules regarding the composition, roles, and functions of a development team. Kanban offers a set of tools and practices that help improve the team's work.

Kanban is a methodology that emphasizes visualizing the tasks that a team is currently working on. Depending on priorities, new tasks can arrive and be taken on every day.

The main tool in the work of the Kanban team is Kanban boardconsisting of columns with statuses, usually: To Do (planned) – In Progress (in progress) – In QA (in testing) – Done (made).

In Kanban, you can also keep track of task priorities, and use a scale for this:

  • Low (low priority task, usually does not affect the product).

  • Medium (planned tasks that affect the product).

  • High (tasks that impact the product and need to be done first).

  • Blocker (tasks that affect the product and block parallel or subsequent work).

The main difference between Kanban and Scrum is as follows:

  • Scrum teams work in sprints, each of which typically lasts two weeks, while with Kanban, work is continuous.

  • Kanban allows you to quickly respond to changes, that is, immediately take on new tasks when they appear in the development team, and Scrum allows you to plan the team's work for the next sprint so that new tasks do not come into the team's focus until its completion.

So, in an Agile team systems analyst workflow in most cases it looks something like this:

  • collected requirements;

  • described the requirements (business requirements, functional and non-functional requirements);

  • agreed with stakeholders;

  • designed HLD (high-level design);

  • discussed with the team;

  • designed LLD (solution architecture, integration);

  • discussed with the team – decomposed the tasks and estimated the deadlines;

  • transferred for development – participated in testing and acceptance of the results.

Responsibility Matrix

When designing or changing processes, it is necessary to organize the responsibilities and relationships between the roles involved in the process.

Exists methodology (matrix) RACIwhich is a convenient and visual means of determining the participation of various roles in procedures and processes. It is usually convenient to maintain a list of roles in order to avoid confusion in communications when working on a project or task.

The term RACI is an acronym for:

  • R – Responsible (implements);

  • A – Accountable (responsible);

  • C – Consult before doing (consults);

  • I – Inform after doing (is informed).

In each procedure, each role must be assigned a particular letter, while there must be only one Accountable, Responsible must be available for each procedure, each procedure must have Accountable and Responsible.


In this article, you learned about the main widely used software development methodologies such as Waterfall and Agile (Scrum, Kanban) and became familiar with their main roles, artifacts, and processes.

This article is the final one in a series on the fundamentals of the systems analyst profession.

I hope that it was useful and you were able to learn something new for yourself, and maybe even make a choice in favor of this profession.

You can find this and other articles on system analysis and IT architecture in my small cozy Telegram channel: Notes of a systems analyst

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *