299 votes
Accepted

Should the solution be as generic as possible or as specific as possible?

My rule of thumb: the first time you encounter the problem, only solve the specific problem (this is the YAGNI principle) the second time you run into the same problem, consider generalizing the ...
user avatar
97 votes

Should the solution be as generic as possible or as specific as possible?

A specific solution [...] requires more work in the future if similar requirement is needed I have heard this argument several dozen times, and - to my experience - it regularly turns out to be a ...
user avatar
  • 186k
84 votes
Accepted

How to develop excellent software with agile methods?

The formal answer is you misunderstood agile, agile does not dictate requirements, stakeholders do. The core of agile is not to carve your requirements in stone but rather have them emerge as you go, ...
user avatar
  • 16.1k
77 votes

How to develop excellent software with agile methods?

There doesn't even seem to be a place for attractive qualities in agile. You are comparing apples and oranges. In traditional waterfall, if your requirements say you need the must-haves, you get a ...
user avatar
  • 6,967
66 votes

Should the solution be as generic as possible or as specific as possible?

TL;DR: it depends on what you're trying to solve. I've had a similar conversation with my Gramps about this, while we were talking about how Func and Action in C# are awesome. My Gramps is a very old ...
user avatar
  • 2,011
55 votes
Accepted

How to deal with stories that share functionality

User Stories are not system specifications or functional requirements. Rather, they are the beginning of a conversation that can lead to such specifications or requirements. Accordingly, I would ...
user avatar
36 votes
Accepted

Robustness vs Correctness Competition

There are many situations in which these two might be in conflict. For instance, robustness can involve resilience under heavy load. If an approximate (i.e., incorrect) response to a request can be ...
user avatar
36 votes

Where can I find requirements specification for Open Source software?

Requirements don't need to be captured in a formal software requirements specification or any other kind of document. They can be captured in tests (primarily acceptance tests and system tests, but ...
user avatar
  • 76.3k
35 votes
Accepted

Should an e-commerce application reserve products before attempting payment?

You have two excellent answers (I've upvoted both). But they each address only a part of the problem, and this is why I feel obliged to come with a third answer Your challenge is hybrid: It's a ...
user avatar
  • 68.6k
32 votes

Should "between x and y" be commutative?

If your current spec leaves this undefined, the behaviour is completely arbitrary, there is no "right" or "wrong" definition. So if your QA engineer cannot point you to the exact paragraph in the spec ...
user avatar
  • 186k
30 votes
Accepted

Phrasing a requirement about filename encodings

The requirement, as stated, is fuzzy to me. The first question I would have is: how many character encodings need to be supported? Possible interpretations include: Every encoding ever devised, ...
user avatar
  • 1,558
28 votes
Accepted

How can user stories not contain requirements (when written on a card) and still be implementable

This answer will focus on how to work with User Stories and lower level requirements. I won't be discussing the virtues, or lack thereof, of Scrum or Agile. I won't be talking about gurus either. ...
user avatar
  • 11.5k
28 votes

How to develop excellent software with agile methods?

However, all agile processes I know strongly favor must-be requirements. These always get the highest priority. As they should - look at your Kano model again: if the must-be requirements are not ...
user avatar
24 votes
Accepted

How to avoid rewriting parts of an application

As I commented, I have a strong feeling that the requirements were not clear the first time or probably you missed some important details. Not everything can be addressed with better code, best ...
user avatar
  • 11.8k
21 votes

How to actually find out what has to be done in object oriented design?

So how can I learn to really do object oriented design? What I want to learn is: given requirements know how to get started working on them in a process that leads to find out what has to be done and ...
user avatar
20 votes

Is deciding the release date before collecting all requirements un-agile?

There's absolutely no "Agile" problem with having a fixed release date if you're prepared to move one of the other two edges of the "iron triangle": the requirements for what needs to be in that ...
user avatar
20 votes
Accepted

Where can I find requirements specification for Open Source software?

Don't let the software prevent you from seeing the projects. I challenge the idea that you need requirements for a software. And suggest that requirements are for software projects. And that there are ...
user avatar
  • 8,711
18 votes

Should an e-commerce application reserve products before attempting payment?

This isn’t a software problem, it’s a business problem. You should ask the business how they want to handle the situation. Perhaps they simply want to take the order and ship it a little bit late. For ...
user avatar
  • 3,468
18 votes

Where can I find requirements specification for Open Source software?

Some good answers here already, especially for your question where requirements are found in Open Source projects. Let me say something about the reasons why is it hard to find a formal spec document ...
user avatar
  • 186k
17 votes
Accepted

How to document non-functional requirements in User Stories?

Non-functional requirements come in many forms, but they have one thing in common: The don't describe functional behavior of the system but rather put constraints on the design choices that you can ...
user avatar
17 votes

Robustness vs Correctness Competition

These two are just examples as you said. In fact, all non-functional requirments of that sort can potentially conflict with each other. In the book "Building Evolutionary Architectures" there is a ...
user avatar
  • 14.3k
16 votes

When does the team discuss requirements when using Kanban?

You're right that Kanban doesn't have the concept of Sprints or Sprint Planning like Scrum does. That's because it's a leaner methodology. More things are done just-in-time. It's up to you to decide ...
user avatar
  • 76.3k
16 votes
Accepted

Why bother gathering requirements when we know they will change?

Because not all requirements do change, and not all requirements change in the same ways. You're not going to spend awhile working on software to manage a warehouse, only to suddenly decide to instead ...
user avatar
  • 27.2k
15 votes

How to deal with stories that share functionality

Don't: Try and split the stories, Do one story and then the other. Do: Ensure the dev team is aware of the second story. The problem with trying to plan out the detailed tasks and thing up a generic ...
user avatar
  • 65k
15 votes
Accepted

How to deal with a large codebase with no requirements and the responsible person leaving the company soon

I have ported several older VB6 applications to the .NET framework, all of them with almost no documentation, from that experience I can I give you some recommendations. First, let me say, getting rid ...
user avatar
  • 186k
14 votes

Phrasing a requirement about filename encodings

The requirement that you've written doesn't have the characteristics of a good requirement. Specifically, it's not cohesive, it's not atomic, and it's not unambiguous. Because of the lack of these ...
user avatar
  • 76.3k
14 votes

Should the solution be as generic as possible or as specific as possible?

Primarily, you should try to anticipate whether it is likely that such a change will occur - not just a remote possibility somewhere down the line. If not, it's usually better to go for the simple ...
user avatar
  • 2,647
14 votes

Should an e-commerce application reserve products before attempting payment?

Look at it from the user's side: would you like to order a product, go thru all the payment details page (including, for example, entering credit card data), having your card charged, then having the ...
user avatar
13 votes
Accepted

Requirements Gathering in SCRUM. Acceptable to talk about High Level requirements in first sprint?

In Scrum, requirements go in user stories. The product owner is responsible for talking to all of the stakeholders and gathering requirements. There is generally no single requirements document at ...
user avatar
13 votes

Should "between x and y" be commutative?

This is a usability or user experience question. How SQL or any other system behaves is irrelevant, the question is what makes most sense from a users perspective. The current behavior does not make ...
user avatar
  • 54.9k

Only top scored, non community-wiki answers of a minimum length are eligible