13 votes
Accepted

What is the reason that CSS variables are defined using two hyphen characters (--)?

When CSS Variables were introduced, there needed to be a syntax that does not clash with existing CSS versions, and allows future CSS versions to declare new properties. Properties that begin with a ...
amon's user avatar
  • 134k
10 votes

In TDD, should we specifiy all classes to implement before start coding

TDD is a design exercise. It does not mean "we have to design all test cases before implementing." Quite the opposite, in fact. In TDD, you repeat the following cycle many times: Write exactly one ...
Karl Bielefeldt's user avatar
9 votes
Accepted

How important is documentation?

Everyone agrees that documentation is important. However... Many programmers believe that code should be "self-describing," that the code itself should act as the documentation, and that ...
Robert Harvey's user avatar
8 votes

Can we ever fully, completely specify anything?

Yes, it is possible. Mathematics and formal logic allows you to define computations that have exactly the properties you want and nothing else. And then the same logic allows you to prove that it is ...
Euphoric's user avatar
  • 37.4k
8 votes

what is the difference between system requirements and software requirements?

If all you are doing is writing software, then the distinction is largely meaningless. System requirements relate to the system as a whole. They may relate to hardware, software, processes, ...
Simon B's user avatar
  • 9,631
8 votes

What is the point of the URI specification?

URI's are designed to unambiguously identify a resource across different namespaces and addressing systems, like HTTP, FTP, NNTP, Gopher, email etc. Hence you need the scheme to indicate which ...
JacquesB's user avatar
  • 59.6k
7 votes

How important is documentation?

Up-to-date, correct and well-designed documentation is a must. However, if it doesn't fulfill those three criteria, then it's worse than useless: It's a time/disk/soul-sucking hell. One of the ...
jpc's user avatar
  • 87
7 votes

Can we ever fully, completely specify anything?

Recall that a programming language is a specification, usually written in English -with the ambiguity of natural language- in some technical report. A programming language is not the same as its ...
Basile Starynkevitch's user avatar
7 votes

Where do Interface descriptions belong in a spec?

If you're being rigorous in your interpretation of the three levels, an interface declaration as such would go in the middle level, but it would "extend" into the levels above and below, like this: ...
biziclop's user avatar
  • 3,361
7 votes

Use case for interface

If we don't know about [the] implementation, just the requirement specification, then go for interface. What that means is that you can sketch out an architecture by designing and writing the ...
Robert Harvey's user avatar
7 votes
Accepted

If logging in is not a Use Case, then what is it and where do I describe it?

I'm not aware of any good argument for "logging in" to be considered a use case. Looking at Alistair Cockburn's Writing Effective Use Cases, this is the definition of a use case: A use case ...
Thomas Owens's user avatar
  • 82.7k
6 votes

Should I use future or present tense when writing a design spec document?

Take into account whether your document will be read after the software is finished! If you are writing a proposal which describes what you want to build, then future tense is Okay. If you want to ...
Tali's user avatar
  • 181
6 votes

How do you adapt to changes to product specifications during development?

Your parser approach is definitely a step in the right direction. To deal with what you describe, you need to follow two well known software engineering principles as rigidly as possible: 1. Single ...
Doc Brown's user avatar
  • 208k
6 votes
Accepted

Is it appropriate to use Semantic Versioning for the specification for a key/value file format?

Semantic versioning's main advantage is to other developers who rely on your interface. It would be a great way to signal to other developers whether or not the changes to the file format might break ...
david25272's user avatar
6 votes
Accepted

How to avoid or amalgamate tiny late-project user stories?

A small user story should not be a problem. If your process adds a lot of overhead to managing user stories, you need to look into your process or tools to streamline it. In a modern issue tracking ...
JacquesB's user avatar
  • 59.6k
6 votes
Accepted

How to specify that a number is a random number, or a rounded number, etc

For properties like (pseudo-)"randomness" or "rounded" there exist well-known mathematical definitions. If you want to have an unambigous specification, there is no way round to utilize these ...
Doc Brown's user avatar
  • 208k
5 votes
Accepted

Algorithms for color blending modes: hue, saturation, color, luminosity

Update: During the implementation of all the algorithms I realized that this would probably make for a pretty nice package. In case you're interested you can get it on npm. So good guy Christos ...
Loilo's user avatar
  • 231
5 votes
Accepted

Who (client or provider) should write the specifications document

It is your responsibility to gather enough information to make it reasonably possible to write an application that substantially fulfills the client's expectations. Usually that means going back to ...
Robert Harvey's user avatar
5 votes

Requirement Specification - How to write an "as much as possible" requisite

Requirements can be checked objectively. Functional requirements specify a capability of the system and can be tested fairly easily. E.g. the requirement “As a user, I can click a button to get a ...
amon's user avatar
  • 134k
5 votes
Accepted

Where should I specify validation messages?

Functional errors belong to the functional specification document. What are functional errors? If the product is user-facing (such as a desktop application or a web application), then functional ...
Arseni Mourzenko's user avatar
5 votes

How to specify that a number is a random number, or a rounded number, etc

You just make it a type. Then you make sure your random number generators return that type rather than an int (though you probably care about real random numbers vs pseudorandom if you care enough to ...
Telastyn's user avatar
  • 109k
5 votes

In TDD, should we specifiy all classes to implement before start coding

It sounds like your team has a fundamental misunderstanding of how TDD works. As with all things, there's the doctrine and there's reality. First the doctrine. Starting with a blank slate: Write a ...
Berin Loritsch's user avatar
5 votes
Accepted

Specification pattern and maintaining domain logic inside entity

It is easy to miss the point what the concept of a Specification is about, because there are so many bad articles floating around in the web. Before the question was edited, you originally wrote: And ...
Doc Brown's user avatar
  • 208k
4 votes
Accepted

What is the meaning of the data inside wave_format_ieee_float?

As you have probably already surmised, the data points in a WAVE_FORMAT_IEEE_FLOAT are 32 bit or 64 bit floating-point numbers that vary between 1 and -1. The values 1 and -1 simply represent the ...
Robert Harvey's user avatar
4 votes
Accepted

Are Program Managers still being used?

Programme managers in general ? Programme manager is a job function which is not specific to software. The term "programme" in it is not directly related to "programming" or a software artifact. "...
Christophe's user avatar
  • 77.3k
4 votes
Accepted

What to specify as interfaces in component diagrams

In an UML component diagram, the interface represented by a connector should have a name that describes the service (behaviour) that the consumer needs, independently of the specific component that ...
Christophe's user avatar
  • 77.3k
4 votes

In TDD, should we specifiy all classes to implement before start coding

In TDD, should we specify all classes to implement before start coding No -- in fact, TDD is specifically an alternative to that. Specifying all classes first is what we call Big Design Up Front. ...
VoiceOfUnreason's user avatar
4 votes

Should operating system configuration parameters, like disabled automatic updates or sleep timer, be part of the software specifications?

To me, testing is about validating the required functionality, testing is not about how a requirement is implemented. Since disabling updates is required functionality, it should be tested. That's ...
Jeff Siver's user avatar
  • 1,721
4 votes

What is the point of the URI specification?

The scheme for a URI provides context and meaning for how you should interpret the URI, and ultimately request the resource being identified. The "U" in URI means "Universal" — you ...
Greg Burghardt's user avatar
3 votes

Specification languages vs automated tests

Personally, I write executable tests for my code. I see the tests as a specification, which has the huge benefit of proving whether the code conforms to it. This is not a proof. If you think of the ...
Basile Starynkevitch's user avatar

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