You are on page 1of 12

Essay unit 2

Abstract: The topics that we will approach with this essay are the philosophies of Lean and Agile
and from the latter come the Extreme Programming, Scrum, Kanban, ASD, Crystal methodologies
that will be both defined and explained as well as the theme of the UML diagrams, in how many is
divided and how can be used.

Key words: methodology, philosophy, diagrams and definitions

At the beginning of the third semester for the second unit my professor explained different
philosophies, methodologies, and diagrams. In this document I’m going to write about it by delving
deeper into the issues using definitions, some images according to why I’m explaining it, as well as
my own point of view and I’m going to use examples.

Companies nowadays are very efficient and have different ways to work with philosophies. For
example, the Los Trompos chain’s philosophy is to “serve and smile” is based on this. A definition
of this can be: includes a vision, the values, and a mission of the company
(https://www.forbes.com/sites/work-in-progress/2014/03/05/the-psychology-and-philosophy-of-
branding-marketing-needs-and-actions/#59f3fa6725ac) and based on the example of Los trompos
we can related with the philosophy Lean because the core idea is to maximize customer value while
minimizing waste. Simply, lean means creating more value for customers with fewer resources and
understands customer value and focuses its key processes to continuously increase it
(https://www.lean.org/WhatsLean/).

Therefore, according with this we can approach the definition of Agile philosophy: “Agile
Development” is an umbrella term for several iterative and incremental software development
methodologies. The most popular agile methodologies include Extreme Programming (XP), Scrum,
Crystal, Dynamic Systems (https://resources.collab.net/agile-101). What this mean? Well imply
different styles to handle the way of work of the companies.

Smartsheet company said “While Agile and Scrum follow the same system, there are some
differences when comparing Scrum Vs Agile. Agile describes a set of principles in the Agile
Manifesto for building software through iterative development. On the other hand, Scrum is a
specific set of rules to follow when practicing Agile software development. Agile is the philosophy
and Scrum is the methodology to implement the Agile philosophy”
(https://www.smartsheet.com/agile-vs-scrum-vs-waterfall-vs-kanban).

Before start with the methodologies we need to know that is a system of methods used in a
particular area of study or activity so based in this we can start explain the following methods:

 Extreme programming
Was designed to improve the quality of software and the ability to properly adapt to
changing needs of the costumer or client. Also take into account how the team of the
company works is very important for this methodology have the next values:
communication, simplicity, feedback, courage and respect in order to work correctly.

Therefore, have roles divide it into:

1. Programmer: They write the units tests and produces system codes.
2. Client: Write user stories and functional tests to validate their implementation. In
addition, it prioritizes user stories and decides which ones are implemented in each
iteration, focusing on adding value to the business.
3. Test manager (Tester): Help the client write the functional tests. Run tests regularly,
disseminate the results in the team and is responsible for the testing support tools.
4. Tracking Manager (Tracker). Provides feedback to the team. Verify the degree of
success between the estimates made and the actual time spent, to improve future
estimates. Perform tracking of the progress of each iteration.
5. Coach. He is responsible for the overall process. You must provide guides to the
team so that the XP practices are applied, and the process is followed correctly.
6. Consultant. It is an external member of the team with specific knowledge on some
topic necessary for the project, in which problems may arise.
7. Manager (Big boss). It is the link between customers and programmers, helps the
team work effectively creating the right conditions. Its essential work is
coordination.

Even the best methodologies have advantage and disadvantage like the ones I'll mention a few of
this bellow starting with good things first:

1. It leads to highly organized programming.


2. It has a very small error rate.
3. Encourages communication between customers and developers.
4. Facilitate changes.
5. It allows you to save a lot of time and money.
6. It can be applied to any programming language.
7. Continuous tests are done during the project.

Now the disadvantage:

1. It is advisable to use it only in short-term projects.


2. In case of failure, the commissions are very high.
3. It requires a rigid adjustment to the principles of XP.
4. It may not always be easier than traditional development.

The following methodology to describe is Scrum:

It is a framework with which people can address complex adaptive problems, while productively
and creatively delivering products of the highest possible value so is using as well as extreme
programming to work correctly with projects. Like extreme programming, Scrum have specific
values to work efficiently they are: courage, focus, commitment, respect and openness. Can Scrum
have roles? Actually yes, it's divided in three roles:
1. The Product Owner
2. Scrum Master
3. Development Team Member.

The benefit of Using Scrum can be:

 the new features are developed incrementally in Sprints. At the end of each Sprint a
potentially releasable Increment of Software/Product is available.
 Testing occurs every Sprint, enabling regular inspection of the working Product as it
develops.
 Transparency is therefore much higher for key stakeholders, both of the projects progress
and of the product itself, which in turn helps to ensure that expectations are effectively
managed.
 Risks are owned by the Scrum Team and they are regularly reviewed and the risk of a
failed project is reduced.

The next methodology is Kanban:

What is it? With few words I can say that it is way to work with a scheduling system that maximizes
the productivity of team by reducing idle time. Kanban have 4 process:

1. Visualize Work
2. Limit work in progress
3. Focus on flow
4. Continuous improvement

Kanban works with a board and you can paste cards and move it around according to indicate where
in the process those cards reside and the categories of the board dependent on the needs of your
team of how can be divide it.
Advantages:

1. Reduce waste
2. Forces event-driven workflow
3. Allows for flexibility

And the disadvantages are:

1. Required constant board monitoring


2. Potential for complexity
3. Possible bottlenecks: get stuck

Skelia company thoughts said “When considering Scrum vs Kanban, there is no definite winner.
Both methodologies work well. Neither is a magic pill. Some teams are fine with Scrum, while
others feel more comfortable using Kanban. There are a lot of scenarios, where Scrum may be a
better choice. The same is true for Kanban. To be able to choose the right tool, you really need to
understand the context of your project” (https://skelia.com/articles/scrum-vs-kanban-the-good-the-
bad-and-the-ugly/).

The following methodology is Crystal:

What is it? is an agile software development approach that focuses primarily on people and their
interactions when working on a project rather than on processes and tools so people’s skills and
talents as well as the way they communicate has the biggest impact on the outcome of the project of
course crystal have two fundamental assumptions:

 Teams can streamline their processes as their work and become a more optimized team.
 Projects are unique and dynamic so require specific methods.
Crystal use different types of stone colors depending of how many people is involve on the project:

 Clear: for teams of 8 or fewer people.


 Yellow: for teams of 10-20 people.
 Orange: for teams of 20-50 people.
 Red - for teams of 50-100 people.

Crystal Clear is more appropriate for comparatively short-term projects being managed by a team of
six developers working out of a single workspace, whereas Crystal Orange is suited for projects that
require a team of 10 to 40 members and have a lifespan of 1-2 years. On the other hand, Crystal
Sapphire or Crystal Diamond methods are used in large projects that involve potential risk to human
life. Crystal have roles? Yes, have three very important:

1. Project sponsor
2. Designer/ programmer
3. Users

Advantage of Crystal:

1. Effective team communication is key feature of successful projects.


2. Crystal methods provide proper guidance about team communication of varying team
sizes.
3. Different crystal methods can be used for different project sizes and criticality.
4. Crystal method provides good risk control and technical practices.

Disadvantage:

1. Only two methods (crystal clear and crystal orange) are defined out of four.
2. These methods lack design and code verification activities.
3. Crystal methods do not provide any guidance about business enterprise.
4. Crystal methods lack system validation practices which make them inappropriate for the
development of life critical systems.
5. There is no well-defined team structure in crystal methods.

Finally, the last methodology is ASD (Adaptive Software Development):

It is based on continuous adaptation to changing circumstances also:


 Cyclical
 Changes and even errors
 It is a development methodology
 Emphasizes the application of ideas

Some characteristics involved with ASD:

 Iterative
 Oriented to the software components
 Tolerant to change
 Risk-driven
 Component review serves to learn from errors
 Re-start the development cycle

The life cycle:

Advantages:

1. Error learning and restart of the development cycle


2. Use information available about changes to improve behavior of the software
3. Anticipate changes and automatically deal with them within a running program, without the
need for a programmer

Disadvantages:

1. Errors or changes that are not detected in previous meetings on time affect both the quality
of the product and its total cost.
2. Given that it is an agile methodology; it implies not carrying out processes that are required
in traditional methodologies or at least not performing them in different processes

Diagrams
What is an UML? short for Unified Modeling Language, is a standardized modeling language
consisting of an integrated set of diagrams, developed to help system and software developers
for specifying, visualizing, constructing, and documenting the artifacts of software systems, as
well as for business modeling and other non-software systems (https://www.visual-
paradigm.com/guide/uml-unified-modeling-language/what-is-uml/).

The diagrams can be divide it into

 Use Case diagrams

Are usually referred to as behavior diagrams used to describe a set of actions (use cases) that some
system or systems (subject) should or can perform in collaboration with one or more external users
of the system (actors). Each use case should provide some observable and valuable result to the
actors or other stakeholders of the system (https://www.uml-diagrams.org/use-case-diagrams.html).
 Activity diagram

is basically a flowchart to represent the flow from one activity to another activity? The activity can
be described as an operation of the system. The control flow is drawn from one operation to another.
This flow can be sequential, branched, or concurrent. Activity diagrams deal with all type of flow
control by using different elements such as fork, join, etc.

 Sequence diagram

Are a popular dynamic modeling solution in UML because they specifically focus on lifelines, or
the processes and objects that live simultaneously, and the messages exchanged between them to
perform a function before the lifeline ends (https://www.lucidchart.com/pages/uml-sequence-
diagram).
 Deployment diagram

It is a structure diagram which shows architecture of the system


as deployment(distribution) of software artifacts to deployment targets. Artifacts represent
concrete elements in the physical world that are the result of a development process
(https://www.uml-diagrams.org/deployment-diagrams-overview.html).

 State diagram

It is a type of behavioral diagram in the Unified Modeling Language (UML) that shows
transitions between various objects.
 Class diagram

describes the attributes and operations of a class and also the constraints imposed on the system.
The class diagrams are widely used in the modeling of object oriented systems because they are
the only UML diagrams, which can be mapped directly with object-oriented languages
(https://www.tutorialspoint.com/uml/uml_class_diagram.htm).

Conclusion

Summarizing, there are different ways of working in the companies with the projects using
either extreme programming for example to finish it fast and efficient or for larger projects
using another methodology such as Crystal with its color management depending on the people
that need it or even using ASD if you want to finish a small project, quickly and efficiently for
its ability to adapt to problems that may have even the diagrams that we saw can serve us for a
future project that we want to make depending on what you want and need you can choose the
one benefit you more for it.

To conclude I would like to add that one of the methodologies that I liked the most was extreme
programming and that I would like to use it at some time like the others instead the diagrams I
have already started using it so I already know how to handle them in the future when I get
them need in some project of some company in which work, it is good to know about them so
that in the future you have a clear idea of how to work them.

You might also like