On every project I've ever worked on, specs were ephemera, falling out of
date almost immediately despite occasional herculean efforts to keep them
up-to-date.

Personally, the best answer I've found to the spec/code dilemma to be
automated tests, as they evolve along with the code and fail if they're out
of date.

It sounds also like the project you're talking about had a lot of good ol'
fashioned technical debt. Code won't be readable if it's badly written -
but neither will natural language.

Cheers,

Chris


On 22 May 2013 20:29, Tim Daly <d...@axiom-developer.org> wrote:

> Is "the ground truth" your spec or your code?
>
> Here is an interesting read:
> http://shanecelis.github.io/2013/05/20/why-im-trying-literate-programming
>
> Shane started with a co-worker, working from a spec, to create a program.
> He eventually found that only he could make changes because only he
> understood the code and the spec was out of date.
>
> The last big project I worked on had 6 people for 6 years. The central
> data structure eventually became complex. It had optimizations and
> mountains of code that depended on them. When we tried to write a new
> and "better" central algorithm it turned out that nobody knew all the
> various substructures embedded in the main data structure so we
> couldn't make the improvement.  The person who "managed" the main data
> structure had left the project, taking with him all the knowledge.
> The program died.
>
> Are you limiting our ability to collaborate because you don't communicate?
> Do we have to read (and reverse engineer) your code before we can write?
> Does your code "add, change, or extend" the spec with special cases?
>
> Can you keep up with the whole team using reverse engineering?
> Can you identify "the person" who holds it all together?
> Is your whole project "dead code" if certain people leave?
>
> If you want your code to live, communicate.
> Write words for people who will maintain your code but you'll never meet.
>
> Tim Daly
> Knuth fanboi
>
> --
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to