Architectural principles as “non-functional” user stories

I am going to start a pilot project in our company to implement flexible methods, including the use of user stories. After reading two books by Mike Cohn, Agile Estimating and Planning in particular, and User Stories Applied, I now have a clearer idea of ​​how to proceed. I have confidence in improving our methods along with practice.

However, there is one thing that does not convince me. In this blog post, Mike Cohn defines a specific type of user story, which he calls constraints that can be used to define so-called non-functional requirements. Personally, I don’t like the word restriction and even the use of the classic template "How ..., I want ... so ...".

Rather, I will try to get the client to write, always on the cards, possibly using the above template, those whom Nick Rozanski and Eoin Woods called in their science fiction book Software Systems Architecture , Architectural Principles:

“An architectural principle is a statement of faith, approach or intention that defines a definition of architecture.”

(They also divide these principles into business principles and technological principles, differentiation, which I think we should not care about.)

What I would like to do with these principle cards is to place them next to our card card so that they are always present when defining custom stories and planning events. I also encourage clients and developers to pick them up and put them next to the iteration board every time they think the map can be useful as a reminder to the team.

Have you ever tried any similar approach? Do you dissuade him for any reason? Do you have any suggestions on this?

+6
agile requirements user-stories
source share
5 answers

Have you ever tried any similar approach? I did not try something completely similar, but when I was a Scrum master in my team, we had a common architectural leadership and a project vision (in which all the teams were part), which we reminded ourselves of during various control and adaptive points Sprint, as well as the Scrum Project, for example during flashbacks, Sprint planning meetings, and even daily Scrum meetings. Some of the ways we reminded us were to add Done Criterias for tasks that included one principle for adhering to architectural recommendations, and could also be added as a short note in Backlogs. In my sentence below, I mentioned how it looked from a really high level.

Do you dissuade him for any reason? No, absolutely not. I say your suggestion is good, and you should try it for a planning meeting. And, as suggested by Ken Schwaber and Jeff Sutherland in their Scrum Guide, you should inspect and adapt during the 3 points at Sprint - “There are three points in Scrum to check and adapt. The daily Scrum meeting is used to check progress towards Goal Sprint and make an adaptation that optimizes the value of the next business day. In addition, Sprint Review and Planning meetings are used to verify progress towards the release goal and to adapt that optimizes the value of the next Sprint. Finally, Sprint Retrospective is used to review Sprint’s past and determining which adaptations will make the next Sprint more productive, rich, and enjoyable. ”

Do you have any suggestions on this? Can you assume that this Agile project in your company is just beginning, and you still do not have a single project? If so, I would advise you to organize a 2-week workshop on planning a wide version of the project. The aim of this seminar would be to attract all interested parties, NGOs, SMs and Project Managers in one place and develop Superuser history and vision, as well as the rest of the backlogs, broken into superuser stories. A superuser story would be a high-level vision of the goal of the project. If you have already done this, please ignore this offer, but my point is that a high-level view or superuser story may / should have a part that is mentioned in accordance with the architectural principle established in your company.

The benefits of this? It draws stakeholders to the architectural and technical aspect of the product directly from the Super User Story, which helps create a good understanding of the vision between business and the technical side, and you cannot live without the other.

Perhaps I deliberately tried to spread the answer beyond the questions so that I could get some feedback on my ideas.

Thanks, Sid.

+2
source share

I do it the way you described. I have restrictions defined on the cards (different color). Constraints are not written in the format of the user story, but in the form of a simple sentence, for example:

  • The system will support a maximum use of 30 users.
  • Import should be done daily.
  • All filters and search results should be on one page.

If the client has special requirements that are not directly a single-user history, but have a wider effect, I write them as limitations. These limits are not evaluated and are not part of the product backlog. We use them to recall some implementation requirements for real user stories.

+1
source share

This was the subject of a conversation that I saw in January this year with the Factory architect. I tracked him. This is Lee Ingram "Business Architecture: An Example from the Current Launch." I can’t find the slides, but he talked about the idea of ​​comprehensive principles that determine how requirements should be met.

He had things like multiple rentals and white markings. Using a web service with multiple tenants, you first need to plan user segregation / isolation. Similarly, if you want to be able to assign a white number to your service, you still need to configure a lot (style, labels, etc.). Both affect almost every story.

0
source share

I highly recommend Jeff Patton's presentation on matching user stories .

He not only explains how goals are used (or what you would like to name them), as well as how to build relationships or dependencies between stories and how to deal with them.

0
source share

This general idea of ​​“principles” (or limitations) seems good. I saw what happens when things that really need to be in this class — for example, “the system must achieve a certain certain quantitative level of performance” –– just fall behind and get lost among all the other “special” stories: no one is worried about (because that "everything is in order ... there is a story for something"), and then, when someone finally raises it (oddly enough, these things always remain for a long time, despite the high value for the client), they turn out to be with an impossible task for several The few days that history is expected to take, and probably only realistically achievable with some serious overhaul of the system, which should have been done much earlier and now has huge installation costs.

0
source share

All Articles