You are on page 1of 7

SCRUM

It is a framework that uses an agile methodology, adaptive and open to changes in development
projects and also in other areas, to develop, deliver and maintain complex products in a light, iterative
and incremental way with a set of best practices that encourage teamwork in order to obtain the best
possible result in a project.

This framework accepts that there is a problem that cannot be understood or defined at the outset but
seeks ways to maximize the ability of the project team to respond to requirements, deliver quickly and
adapt to ever-changing market, technology and customer demands. Partial and regular deliveries of the
final product to obtain fast and optimal results in a short time, are established in a maximum of one
month and a division of labor of two weeks maximum, is cleaned in each iteration of the process unlike
other methodologies, with the use of a board for the execution of the tasks, this methodology is also
used when there are problems that affect product quality, increased costs or when deliveries are too
long.

The process with this framework is handled in the following way, the people with more experience in
the desired product are gathered to determine the characteristics of what they require, from here you
get one of the major pillars of scrum: the product owner and the product backlog (product features),
then the product owner is responsible for making the sprint planning to make known the characteristics
of the product to the team that will work on this, here there are two important events the refinement,
which makes known what the product is about and offers greater clarity of what is going to be done to
the team and the tasking in which the tasks to be performed by the team are divided from the product
features previously mentioned (backlog), after this the sprint backlog includes the tasks to be performed
in the defined time which the team is committed to meet, already defined by the customer who is
already aware of how often will have an increase in the product,

It goes to the development of the sprint, which has a previously defined duration, the progress of
development is analyzed through daily meetings, which lasts approximately 15 minutes, which serves to
publicize the progress and difficulties in the development of the project, as it progresses in the product
and the project, when you can make an increase, this is done with the already developed product plus
the progress of each sprint, which must be fully functional. This is done with a sprint review, which
verifies the progress and what is missing from what has already been developed to lead to the next
steps in the process, you should be open to invite people who are interested in the product in order to
get a realistic feedback of what is being developed. To finalize the scrum process, a sprint retrospective
is done, in which the goal is to know how the team performed in the project.

SCRUM TEAM: It is a small group of people self-managed, self-sufficient, multifunctional and oriented to
meet the objective of the product, no more than ten people, scrum values are reflected in his team,
commitment, courage, focus, openness and respect are the pillars of the smooth functioning of this gear
that makes possible the execution of the project.

1. PRODUCT OWNER
2. SCRUM MASTER
3. DEVELOPMENT TEAM

This framework is widely used nowadays for the execution of technology and software development
projects.

FEATURE-DRIVEN DEVELOPMENT

It is a process for iterative and incremental software development, here a project manager and an
architecture phase are contemplated, it is used in companies where large projects are generated, but
must demonstrate results in short deadlines, combines industry-recognized best practices and is driven
by a customer-valued functionality (feature) perspective, its main objective is to deliver tangible and
functional software in a repeatable and timely manner, in accordance with the principles of the Agile
Manifesto.

Five processes define it:

1. Develop overall model: detailed domain models for each modeling area are created by small
groups and submitted for peer review.
2. Build feature list: The knowledge gathered during the initial modeling is used to identify a list of
features by functionally decomposing the domain into thematic areas.
3. Plan by feature: When the list of functions is completed, the next step is to produce the
development plan and assign ownership of the functions as classes to the programmers.
4. Design by feature: A design package is produced for each feature.
5. Build by feature: After planning a successful design inspection for each feature, the class owners
develop code for their classes. After unit testing and successful code inspection, the completed
feature is promoted to the main compilation.

To obtain accurate status reports during the project to be developed and to keep track of the project,
milestones are defined that mark the progress made in each function within the project. This section
provides a high-level overview of the activities and features. During the first two sequential activities, a
general model form is established (Develop, Build by features list and Plan). The last three activities are
repeated for each feature (Plan, Design, Build by feature).

LEAN FEATURE DEVELOPMENT

Lean development practices are based on the lean methodologies that have been successfully used in
manufacturing processes. Kanban is a lean software development methodology.

It is the name by which the Toyota method is known, it is a systems and process improvement
philosophy, it offers a solid conceptual framework, values and principles, as well as good practices,
derived from experience, that support agile organizations, the seven principles which have been
adapted to software development processes and are considered an important part of agile
methodologies:

1. Eliminate waste: it is detected that is a waste, everything that does not add value to the project,
product or customer, in software development environments can be unnecessary code,
confusing requirements, excessive tasks, poor communication, idle talent or overqualified for
certain activities, etc.
2. Amplify knowledge: it generates an environment for continuous learning, feedback of
information, documentation, communication that help to maximize the knowledge in the team
and take better advantage of the time for a better understanding of the project being carried
out.
3. Quality assurance: once it is clear what is going to be done, an approach to the customer's
requirements is made, in this step a feedback of the product is made together with the
customer, the automation of the process and testing is essential to have a good quality product,
to follow the steps to perform optimally and accurately the product in order to better
understand the needs of users or customers.
4. Postponement: avoid constant changes, ensure early decision making with the start of the
project and follow the planning.
5. Fast delivery: If the previous steps have been followed well, this step is possible, because the
development cycles become short and partial deliveries can be made to the customer to have a
more accurate and efficient feedback of what our customer really wants, simple solutions are
given, with the fulfillment of small objectives and all the quality monitoring.
6. Respect for people: Deliveries must be thought with a human approach, a friendly environment
must be generated for the team's performance.
7. Optimization: "Think big, act small, fail fast; learn fast". This means that errors must be solved
and found as quickly as possible so that all elements of the system work in complete harmony,
the team must have clarity on the process to avoid wasting time, resources and communication
failures to avoid stopping the process and deliver optimal results. Only when all lean principles
are implemented together, combined with a strong "common sense" regarding the work
environment, there is a basis for success in software development.

This method drives continuous improvement, it also implements the just in time methodology,
generating the project as and when it is needed, just in time.

EXTREME PROGRAMMING (XP)

Elements of extreme programming include: pair programming or doing a thorough code review, unit
testing of all code, not programming functions until they are actually needed, a flat management
structure, simplicity and clarity of code, expecting changes in customer requirements as time goes on
and the problem is better understood, and frequent communication with the customer and between
programmers.

The difference between this approach and more conventional systems development methods is the
focus on designing and coding for today's needs rather than tomorrow's, next week's or next month's
needs.
The principles that form the basis of XP are based on the values just described and are intended to drive
decisions in a system development project.

That way, if the developer's changes cause a flaw in some other part of the system that the developer
knows little or nothing about, the automated test suite of all units will reveal the flaw immediately,
alerting the developer to the incompatibility of his change with other parts of the system and the need
to remove or modify his change.

Under traditional development practices, the absence of a system the complete set of unit tests meant
that such a code change, assumed to be harmless by the developer, would have been left in place,
appearing only during integration testing, or worse, only in production; and determining which code
change caused the problem, among all the changes made by all the developers during the weeks or even
months leading up to integration testing, was a formidable task.

KANBAN
The word Kanban comes from Japanese and means: "kan", pictogram, something visual and "ban", card
or cardboard, when translated literally means card with signs or visual signal. The most basic Kanban
board is composed of three columns: "To do", "In process" and "Done".

David Anderson, was the first to apply this methodology in 2004 in information technology and software
development, Trello could be an example of this methodology.

It is a visual methodology to manage a task or work as it progresses through a process to assist in


making decisions about what, when and how much to produce, with emphasis on "just in time" delivery,
without overloading team members (decreasing stress by being much more organized), it drives to finish
each current task before undertaking a new task, managing tasks and workflows in a better way,
reducing delays and improving delivery times in an early way.

Kanban cards create a visual flow of tasks in a dynamic way, avoiding bottlenecks and backlogs that can
affect time and product quality by identifying bottlenecks, so that work can move forward at optimal
speed and quality.

By being visual, there is greater control over the tasks, you can see how productive the team members
are, avoid duplication of tasks and processes and detect problems more easily.
If desired, roles can be assigned or not within the methodology, it does not have a fixed time in the
execution of tasks.

Steps to use kanban: to maximize the benefits of a project or process, improve flow, reduce time,
increase customer value and prevent possible failures or delays:

1. Visualize the workflow, through a dashboard, with tabs that represent each task, divided into 3
columns: "to do", which lists the tasks that have not yet been performed, "in process", consists
of the tasks that are being executed and "done", the tasks already completed, with this
visualization there is transparency in the flow and distribution of work.
2. Limiting work in progress (WIP), limits the workflow capacity, for this reason you should not be
multitasking, one task at a time, you cannot move on to the next one until the currently running
task is completed.
3. Manage the workflow and improve it is one of the important parts of the kanban methodology,
after having implemented the previous steps, it is necessary to highlight the stages and current
status to be clear at the time of performing a task if any of them have any impediment or have
accumulated tasks in process, to analyze and rethink the causes of the accumulation, because
they should be few tasks in execution.
4. Make the rules of the process explicit, as part of the visualization of the workflow, it must be
clear how the work is done, among all team members.
5. Implement feedback loops, to promote early feedback on the work being done and if there are
errors on this, in order to deliver correctly and in the shortest possible time the assigned task.

You might also like