Essay Unit 2: Key Words: Methodology, Philosophy, Diagrams and Definitions
Essay Unit 2: Key Words: Methodology, Philosophy, Diagrams and Definitions
Essay Unit 2: Key Words: Methodology, Philosophy, Diagrams and Definitions
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.
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.
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:
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 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.
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
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/).
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:
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:
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.
Iterative
Oriented to the software components
Tolerant to change
Risk-driven
Component review serves to learn from errors
Re-start the development cycle
Advantages:
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/).
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
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.