• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Legacy code: Another hard one - no stories/scenarios...

 
Ranch Hand
Posts: 69
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Chris,
This is another I faced multiple times...
I love the behavior-driven development (BDD)
(http://en.wikipedia.org/wiki/Behavior-driven_development).
It always worked wonders for me...
The hard part is get the domain guy to write stories for you! ;-)
This is one of the toughest...
Verbal style of sharing requirements is far too common
(at least in the start up world here in India).
I have tried demoing the Stock story on the wiki page above -
but someone who has not done any coding - it is tough to see...
Demoing spock and those almost English like executable descriptions help,
but not too much...
I have found the domain guy is not to blame - he just is not equipped to see it all...
a bio-statistician (surprisingly this guy knew GNU R - however, didn't get the
happy path/error path stuff at all...
As a result - no stories (and no tests exercising them) - and it becomes tough to get at
the rationale for someone writing all this code in the first place ;-).
I realize there cannot be any one answer to this - get what ever docs you have - and make the best of it...
Would love to know your views...

 
Sheriff
Posts: 17644
300
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

atul khot wrote:Hi Chris,
This is another I faced multiple times...
I love the behavior-driven development (BDD)
(http://en.wikipedia.org/wiki/Behavior-driven_development).
It always worked wonders for me...


Sounds great, but this...

The hard part is get the domain guy to write stories for you! ;-)
This is one of the toughest...
Verbal style of sharing requirements is far too common
(at least in the start up world here in India).


belies your understanding of what a "story" is.

A "story" actually should be hashed out verbally during face-to-face conversations between stakeholders, developers, and testers. This goes back to the problem I mentioned in another reply. Most of the problems we have with software can be traced back to misunderstandings and failures to communicate properly.

I have tried demoing the Stock story on the wiki page above -
but someone who has not done any coding - it is tough to see...
Demoing spock and those almost English like executable descriptions help,
but not too much...
I have found the domain guy is not to blame - he just is not equipped to see it all...
a bio-statistician (surprisingly this guy knew GNU R - however, didn't get the
happy path/error path stuff at all...


And here lies another problem. All too often, developers want to pull non-technical people into their world and make them adapt to the developer's jargon and way of thinking. That needs to change. Again, we need to communicate better. At the very least, developers need to meet their customers halfway. Step out of your world and look at things from the customers' point of view. Use the language that they use. These things have been said before, in particular, by Eric Evans in his famous book, "Domain Driven Development" (DDD).

As a result - no stories (and no tests exercising them) - and it becomes tough to get at
the rationale for someone writing all this code in the first place ;-).
I realize there cannot be any one answer to this - get what ever docs you have - and make the best of it...


User stories are simply reminders of a future conversation. If you claim to have no stories, then that probably means that you didn't have any meaningful and memorable conversations. How can you expect to write good software that way?

I like the way Jeff Patton puts it in his book "User Story Mapping", which BTW, is an EXCELLENT book that every developer should read, even if you aren't doing Agile development.

Jeff Patton wrote:Shared documents aren't shared understanding... Shared understanding is when we both understand what the other person is imagining and why... The real goal of using stories is shared understanding ... If you're using stories in development and you're not talking together using words and pictures, you're doing it wrong.

 
Junilu Lacar
Sheriff
Posts: 17644
300
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Here's another part of the quote from Jeff Patton's book that I think bears to be seen on its own merit:

Jeff Patton wrote:Stories in Agile development get their name from how they should be used, not what you write down.


If you are not doing Agile development but want to claim that you're using stories anyway, then at least use them the way they are supposed to be used. Any technique or tool used in a way that it's not meant to be used will not be effective.
 
atul khot
Ranch Hand
Posts: 69
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Junilu,
Thank you for the detailed reply... I got a pretty fresh perspective of things...

Step out of your world and look at things from the customers' point of view. Use the language that they use.



Yes - for example - the terminology specific to the domain - I try to use that to invent good identifier names...
This helps other developers co-relate - the jargon so to say emerges...

If you claim to have no stories, then that probably means that you didn't have any meaningful and memorable conversations. How can you expect to write good software that way?



Sorry for the misunderstanding - I mean when you come into a legacy project - and there are no stories...

I wholeheartedly agree with Jeff Patton's advice (will read the book) - yes it is about shared understanding

However, as a developer coming into a legacy project - there is no simple way to co-relate the code...
(I mean you can talk to the people if they are there - try to glean as much information as you can - it is still largely undefined/uphill IMHO)

Again I realize there is a goodish people side to it - a lot of context too - no one answer - so rather wanted what people think about this...
 
Junilu Lacar
Sheriff
Posts: 17644
300
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

atul khot wrote:Sorry for the misunderstanding - I mean when you come into a legacy project - and there are no stories...


Luckily, that didn't result in a bug in the conversation

I think the argument stays on the same line here: if there are no good records of the conversations that happened during the development of the legacy application, then you pretty much have to start from scratch and create or recreate those conversations yourselves.

Documentation can come in many forms: traditional text documents, meeting recordings, photographs of whiteboard drawings, screen captures, scribblings on paper napkins, test code, production code, etc. I talk about code as documentation in a response to another question here. Of course, the problem with legacy applications is that there is very little documentation of any form that is useful. Your responsibility as the heir to a legacy application is to change that.
 
And then the flying monkeys attacked. My only defense was this tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic