Agile Modeling: enhancing communication and understanding

Source: Internet
Author: User

We have read statistics about project failures, and may have experienced project failures in person. Most software projects cannot escape the fate of failure. Think about it and we will find that there are ways to cause project failure (obviously this list is not detailed !) :


Working Method:

  • The team does not understand the provided requirements
  • The provided requirements are incorrect.

If we abstract the problem to a high-level view, we can find it difficult to understand the problem and form a solution.

However, this view is too simplified. From the problem to the solution, we should not regard this process as a one-way flow of information, nor regard it as a one-time, waterfall process. We have seen this practice before and its progress is not smooth.

Let's update the view. We find that there is an information flow between the problem and the solution, and it needs to be iterated.

The current cognition is clear, but it is still very simple. Let's go further. We all need to realize that development is a team activity. We have many stakeholders who are responsible for design, development, deployment and operation.

In this way, we have a more real understanding of this situation. However, there is still a lot of room to think about. Although we strive to have a local collaboration team, our work is actually distributed and networked.

To sum up this process, we will find that the success of the project is limited by the following capabilities:

1. Understanding

  • A. Do we know the problem areas?
  • B. Are we familiar with the solution field?
  • C. Do we know how to switch between two fields?

2. Communication

  • A. Can stakeholders pass on their needs to those who determine the solution?
  • B. Are you sure you want to clearly describe the details of the solution when communicating with each other?
  • C. Can the person who confirms the solution accurately tell the stakeholders about the challenges and alternatives?

In addition, we also need to recognize a tricky problem, that is, we need to deal with geographical and time problems (such as the work location and time zone ).

There are many ways to solve these problems, and they can also increase the project's success odds. But where should we start? Starting with some basic concepts of agility (Declaration, principles and some common sense) is a good idea.

Instead of putting money on a bunch of tools (I'm sure this investment is very impressive !), And try to adopt the command method and comprehensive process, it is better to let us use different methods. Let us focus more on people, communication, and interaction to respond to changes and deliver software. How can we use this method to provide the best support for people?

A key technology that is often overlooked, underestimated, or misunderstood is the use of modeling, especially after we begin to Adopt agile methods. Modeling is also affected when we oppose heavyweight processes and tool-centric development processes. Let's take a few minutes to clarify ......

Let's unify the definition of modeling. In short, modeling is a simplification of reality. That's it, but that's it. It does not mean to use specific symbols, tools, and processes. We just want to study complicated things to make some of them easy to understand. As they said, sometimes you don't see wood. Unnecessary details make the situation more difficult to understand. It is better to hide unnecessary details and focus only on the important aspects of the specific situation.

If we agree on the definition of modeling, let's take a further step and consider agile modeling. With agile modeling, we can use an agile method to understand and communicate with the model. Sorry, we have made a circular definition here, but this makes it easy to ask the question: "How do we adopt agile methods when using models ?"

Like General agile development, we use a set of values, principles, and practices for guidance so as to be as agile as possible. The agile modeling methods focus on:

  1. Agile modeling follows the agile declaration and principles. Because of this, agile modeling can be a practice, and you can add it to your agile toolbox.
  2. Models can be used for communication and understanding.
  3. We strive to use simple tools to create simple models. Easy to embrace.
  4. We know that requirements are changing, so we need to embrace changes when creating models.
  5. Our focus is on delivery of software, rather than delivery models. When models bring value, we use them. If the model has no value and cannot accelerate the delivery of software, we will not create them.
  6. We only need to keep the model we need. If the model completes its mission, we can discard it. This allows us to move to battle without getting into busy work.
  7. We use multiple models. When using the model, we will consider different angles and abstract layers, as well as different readers. For all models we create, we all know who the readers are and what goals they want to achieve. If we do not understand the target, we will not create a model.
  8. We will combine informal and formal models based on specific situations, readers, and goals. For example, a model can be composed of multiple simple shapes to describe the metaphor of the system, or use UML class diagrams.
Summary

Modeling helps us to communicate and understand when creating software solutions. Communication and understanding are the two most critical links when delivering software solutions. Therefore, you should not ignore modeling as a valuable tool.

Eliminate the misunderstanding of modeling and integrate it into your agile work. Agile modeling follows agile values and principles and should be one of the practices in the agile toolbox. After agile modeling becomes a member of the toolbox, it will improve the project's success!

In the second part of this series, let's take a deeper look at the values, principles, and practices of agile modeling.

Resources

Agilemodeling.com: Scott Ambler's agile modeling home page for creation and maintenance. The resources in this page are both good and detailed.

Key Points of agile Modeling: This workshop mainly provides the basic skills of agile modeling.

Standardized agile delivery: a community site that provides a standardized approach to agile delivery.

About the author

Lee AckermanHe is vice president of products and CTO of the emphasys group. Lee has been investigating and evaluating new ideas over the years, designing and developing solutions, and helping others do these things. His current focus is on helping some organizations improve the ability to deliver software with automation, reuse, and agile best practices.

[1] It Project: overspending 400%, but only achieving 25% of revenue: This news studies the IT project risks and some amazing data related to failure.

View Original English text:Agile Modeling: enhancing communication and understanding

Note: original articles: published on

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.