DEV Community

What if Business Requirments where semi-structured files in project's repo

Thomas Sarmis on September 22, 2019

During my dev career, I have many times witness the case that business requirements (and thus, consequently, functional specifications) were not tr...
Collapse
 
jingxue profile image
Jing Xue

I believe the only way to keep code and requirements (any documentation about the code really) is, well, to keep documentation part of the code. This is where TDD comes in. Your requirements are codified into test cases. It's a lot harder for your code to go out of sync with the requirements when the corresponding test cases blow up in your face during CI. :-D

Collapse
 
jappyjan profile image
jappyjan

That’s absolutely true and I agree with that. As long as we’re only talking about coding/technical requirements which only developers need to understand.

As soon as a third party needs to understand the same documentation your solution becomes useless as they don’t understand tests....

Collapse
 
jingxue profile image
Jing Xue • Edited

Well, maybe not completely useless. I believe we have gotten to a point technology wise where it's relatively easy to express test cases in DSLs or DSL-like APIs. In almost all modern programming languages, we can write test cases in a way that almost all technical details are hidden, and they can be comprehensible to non-programmers. On top of that we also have tools (e.g. Cucumber) that support near-natural-language test case composition directly.

Collapse
 
sarmis profile image
Thomas Sarmis

I believe what I am looking for is for the middle ground between TDD and BDD with the option for free txt for these businesses guys...

Collapse
 
elcotu profile image
Daniel Coturel

Hi!

I've gone a little to far maybe, and I put an essential part of requirements, what we call "Needs", in the database.
So, I have all needs mapped with status, customer, contract and user. There I record:
1) What they want
2) Why they want it
3) How am I going to deliver it

I don't regret this, since it is giving me a lot of benefits in a dayly basis. So, my advice is, as much structure you can get, get it

Collapse
 
jappyjan profile image
jappyjan

Actually loving the idea!
This is one of those things where a relation between two things (code and definition) makes sense and is definitely a great improvement!
I'd love to see a first prototype soon!

Collapse
 
sarmis profile image
Thomas Sarmis

glad to hear that. btw, you may want to check cucumber and executable requirements it's like what I would like to do (well not exactly)