Archive for the ‘Community’ Category

B.D.D. Thoughts Reloaded

Posted Monday, May 3rd, 2010 by Michael Herndon

Its not exactly easy to get people to read requirement or technical specifications, much less write them. It’s also hard to get  developers to write tests. Its even harder to get them to write solid usable tests.

B.D.D (Behavior Driven Development) which is a spin off of T.D.D (Test Driven Development) focuses on the language of testing and and quality assurance of software, in hopes to make creating tests easier as well and specifications.

The concept was coined by Dan North. Since then new libraries like rspec, cumcumber, specflow, nbehave, machine spec have come about.

I can agree that sometimes changing the business language can help people with making associations and understanding of processes easier. And using “Behavior” instead of “test” does help in understanding that you need to validate how the software or code is supposed to behave.

Questioning The Boilerplate Human Readable Specifications

Where people need to be more skeptical is the question of is there real business value in getting code to generate boilerplate systematic specifications?

For an example, I’m pulling this from a cucumber example from github.


# language: en
Feature: Addition
  In order to avoid silly mistakes
  As a math idiot
  I want to be told the sum of two numbers

  Scenario Outline: Add two numbers
    Given I have entered <input_1> into the calculator
    And I have entered <input_2> into the calculator
    When I press <button>
    Then the result should be <output> on the screen

  Examples:
    | input_1 | input_2 | button | output |
    | 20      | 30      | add    | 50     |
    | 2       | 5       | add    | 7      |
    | 0       | 40      | add    | 40     |

We live in a time surrounded by constant news, media, following four subplots instead of one. Its hard to get people concentrate for long periods of time or sit still, much less to get them to read technical or requirement specifications.

Now I was to write this scenario for a requirement out as a spec, it would read like the following.



The mad scientist2 with his destructo calculator enters input 1
and input2. He manically presses said red button . The output
must be the sum of input 1 and input 2.

(i1 + i2 = output)

So why are we creating specifications that repeat words like I,As,When,Given,Then like bad boilerplate code? They might be human readable, but the questions of being understandable, easy to read, enticing to read, is a whole different story.

I have to honestly question that even if a developer takes their time and makes sure the code is up to spec. The question is are the specs kept up to day (requirements change). And are lay people going to want to sit through and actually read these things?

Is this a real business value?

I don’t see any at this point. I see no real return on time invested to write boring systematic specs and just to have them match up in some way with code.

Specifications, like any documentation worth it’s salt, needs to be able to:

  • be engaging and appeal to more than the logical side.
  • provide the meat of information that is digestible.
  • avoid templating that read like government contracts.
  • be terse and yet expressive.

We have been here before

Their have been tools like this before, (Fit, Finesse) before Dan North was really doing this thing. Yet you don’t see much usage from them across projects.

I think the reason why cucumber has caught on, is because the rails community has been keeping momentum from going from one “next big thing” onto the next one. Cucumber is the new pink.

But the end result is the same. Less than specular on par with boring. Hard to digest boiler plate specifications.

Don’t get me wrong, having specifications to work from is important. It helps to drive development and allows others to collaborate and work together. But this doesn’t mean B.D.D is on the right track with its story/QA methodology.

I think there is value of translating specs into code to some degree and testing against requirements.

I think the value is lost when:

  • coders who might not fully understand the business are writing specs.
  • business analysts who have no clue to code write specifications that affect how code is written.
  • specs written  in a templated manner that is the antithesis of being terse.

Should vs Must

Also the domain language is for B.D.D. a bit off.

If you’ve read technical specs, you know there is a vital difference between “Should” and “Must”. Should is something software could do, but doesn’t have to. Must is an absolute requirement. If you don’t believe me, check out the W3 specs sometime.

Yet, we’ve chosen “should” for some reason to put everywhere inside of our “specification” code. If we’re going to write specifications, we must chose words that fit.

Conclusion

B.D.D. isn’t evil or bad, but still needs to evolve, be debated, thought on, expounded.

I think the software community as a whole needs to watch out from getting caught up too much in trends for the sake of being first to do something and buying the t-shirt to say he/she was there.

beCamp 2010 is April 30 & May 1st

Posted Wednesday, March 31st, 2010 by Eric Pugh

becamp-badge-300w-white-2010beCamp 2010 is almost here! April 30th and May 1st are just four weeks away!

If you’re a geek in or around the Charlottesville metroplex or even if you’re merely tech-curious, this is the event you don’t want to miss. beCamp is Charlottesville’s version of the BarCamp unconference phenomenon—organized on the fly by attendees, for attendees. Realizing that the most energizing parts of any tech conference are the ad hoc conversations that take place in the hallways between the sessions, beCamp facilitates these types of interactions for an entire event.

As of this writing, we are at 87 campers! To participate, just add your name to the wiki page!

A big thank you to all our sponsors, including at this point,  Hotelicopter, Google, Perrin Quarles and Associates, NRAO, and University of Virginia ITC.  Interested in supporting the Cville tech community?  Check out our needs at http://barcamp.org/sponsor-beCamp-2010.

The state of opensource on the Microsoft stack.

Posted Thursday, March 18th, 2010 by Michael Herndon

This is like the state of the union address, except in mid march, and the only thing I’m president of is my current residence. If you have ever studied Science, you know about potential energy vs kinetic, Or maybe a better metaphor for the reality TV generation, is the Swan.

Opensource software on the Microsoft stack has tons of stored potential, even some movement, but it is still left wanting. The evil empire has embraced opensource software, releasing jQuery with Visual Studio, starting codeplex.com and the Codeplex Foundation.

The are tons of abandoned projects or ones that have gone stale (log4net anyone?). Compared to java or even the new kid ruby, we’re lagging behind. We don’t even have a fully managed opensource enterprise web server, compared to Java’s n-th variety of containers to pick and use. Even rails has a built in server.

Of course there is kayak http web server framework and webserver on codeplex, but they’re new, far from mature and their not an industry defacto standard like jboss or tomcat.

Don’t get me wrong there are some amazing opensource projects out there. Gallio, db4o, Subtext, blogengine.net, facebook developer toolkit to name a few.

However, there are gaps in having a full opensource Microsoft stack. We have plenty of unit testing and mock testing libraries, but with NDoc gone, left to SandCastles release schedule, libraries left to rust like log4net wit not even .net 4.0 beta build or silverlight build. CruiseControl.Net is in dire need of revamp and version 2, at the very least it needs some decent competition that isn’t java.

With plenty of single person projects out there who just end up getting burnt out, seemingly stagnated public dialog from the likes of the code plex foundation, its hard to really get developers to rally and get some much needed things done.

The community need some decent leaders, organizers, and some company backing. Most software vendors and clients get a great productivity boost from these projects. It would only make sense to invest in their growth, even pool resources for joint projects.

Organize some hack-a-thons days with some cool prizes for work top-notch work. Even put together a small guild of programmers, just have 20 or so companies pitch in, put their banners on a website and churn out some decent open source projects that everyone can use.

.Net isn’t going away and its time the community and companies invest more into the opensource community instead of letting all that potential go to waste.

Will FOSS Damages Finding Spook Government Agencies?

Posted Tuesday, February 23rd, 2010 by Jason Hull

Last week, the U.S. Federal District Court of Northern California found a software developer liable for unattributed use of a Java Model Railroad Interface.   The lack of attribution, as required in the license, the Court found, violated the Digital Millennium Copyright Act.  While the Court’s finding has limited legal jurisdiction, it does set a precedent which will surely be cited in future cases looking for both damages and to set further legal precedent and define more fully the cases in which stare decisis will apply.

While, analogously, no different than any other license violation, I predict that this finding will have a ripple effect in government adoption of open source projects in their applications, further dampening the adoption rates.

  • Many government agencies are skeptical of open source in the first place.  Open source projects, rightly or wrongly, have a blanket aura of the two high school kids in a garage image.  Most government agencies like controls and process, which they don’t perceive exist in open source projects.  If some of them tried to become committers on major projects, perhaps the perception would change.
  • Very few open source projects have sales representatives.  The sales representatives at major software companies such as Microsoft do an excellent job of the appropriate education and shepherding to provide assurances to the government buyers.
  • Walking through a purchase process gives the perception of license compliance.  A contracting officer can say that they have made a purchase and have a license and feel like they are in compliance, although audits oftentimes reveal shortcomings.  With an open source project, anyone can download source code and deploy the software onto a system, creating manifold increases in risk of license violations.
  • Most legal counsel isn’t familiar with open source licensing requirements and restrictions.  Rather than digging into and understanding GPL or “copy-left” restrictions, it’s easier to just stay away from it.  Again, there are probably as many, if not more, EULAs than accredited and accepted open source licenses, but there are also sales representatives to walk through EULAs whereas the open source projects do not have such champions.
  • It’s easier to create blanket restrictions than to make judgments on each case based on the specific merits of the case.  The finding in Jacobsen v. Katzer makes it easier to point to a known and potentially quantifiable risk to deny use.  The Government is, and in most cases rightly so, risk-averse, and this finding creates a potentially big risk.  The risk may be a black swan, but it is very hard to measure and, in a perfect (in the Government’s view probably an imperfect) storm, could be potentially exceptionally large.

While it won’t have an immediate effect, the end result, I expect, will be an even more rigorous set of processes to complete for approval of the use of most open source software within the government.  I hope this is not the case, because there are many cases where open source software is the best solution.  Furthermore, I truly believe that:

  • By and large, open source developers are not a litigious group.  They want to write software which makes life easier, and as long as they get the credit and attribution they want, they’re happy to share.  It’s what’s written in the licenses.  Plus, legal paths are expensive, and very few can afford to go down that path.  Compliance with a very few legal requirements or selection of a different platform will avoid any potential legal pratfalls.

Thanks to Onlyopensource for pointing out this article!

James Bach, the bad boy of Testing?

Posted Monday, October 26th, 2009 by Eric Pugh

So, is James Bach (@jamesmarcusbach) the bad boy of testing?

I flew up to Boston on Monday to lead some workshops on Continuous Integration. I checked into my room at the Hyatt and then went downstairs to see who was around. I ran into a couple of speakers milling about, and eventually joined one of them, and we headed over to the MIT Press bookstore, me to look for my Solr book. I wasn’t too sure of the name of the other speaker I was with (I asked once, but couldn’t quite remember what it was…). So we got to the book shop, I ask my fellow speaker again: James Bach. The name I was familiar with, but couldn’t quite place it… I ended up buying Parentonomics, and then we go for coffee.

So, over coffee, he asks me about what my topic is, and I gave him the brief summary of my two CI related workshops. Wow.. Little did I realize that I was sitting with the guy who rails against the “fetish” that Agile folks have for automated testing! That his entire approach to “testing” is to use skilled, motivated folks who do “sapient testing”. And I’m the guy who’s selling an approach that REQUIRES automated tests! That encourages expanding the use of automated testing!

He actually walked me through a process of talking about how to “think like a tester”, and it was really great mini-workshop.. He definitely subscribes to the socratic approach, and believes in his message, I was sweating at the end of it! That chat probably sparked more ideas in less time over that coffee then anything else this week. I also heard a lot of ideas and phrases that were echoed in Michael Bolton’s keynote later on in the week. Clearly a lot of collaboration between the two!

Probably the biggest idea that James and chatted about was the idea that automated tests really aren’t automated tests, they are automated checks. They verify that the expected behavior of the code was met. His argument that if you want to do testing, real testing, then computers, automated processes can’t meet that need, only people can.

Now, I don’t know if I believe that is completely true, but I am very aware that the “manual testing” where long test scripts written as Word documents are executed by human beings by hand are really a waste of human potential. And that those test scripts are really, to use James terms, “check scripts” because the people are not using any creativity! In fact, a lot of my interest in CI comes from the idea that people should not do monkey testing, that machines can do it much better, and my frustation with the perception that testing is a low value activity and can be easily shipped off to low skilled folks.

I think that this shift away from the term “test” for automated tests is actually happening in many places. In the Ruby world, we have libraries like Shoulda that are moving from using words like assert to other words like should. A Cucumber test really shows how controlled the space that a test needs to be to work well in an automated fashion:

Scenario: See all vendors
Given I am logged in as a user in the administrator role
And There are 3 vendors
When I go to the manage vendors page
Then I should see the first 3 vendor names

So while I don’t know if I am bought in on the idea that only people can do “testing”, and machines can only do “checking”. Tools like Heckle try to simulate aspects of what a human can do. While not suggesting that we can automate the “does my website look okay after someone changed the CSS” type of work today, in the future our automated testing will be more capable then just “checking” because we will move beyond the very constrained tests we have today to ones that mimicing the richness of the simulators that Airline Pilots use. Instead of testing the training given to pilots, we’ll be testing the robustness of software via simulations!

At any rate, James Bach, while taking a rather provocative approach to sharing his ideas, does subscribe to my favorite bullet in the Agile Manifesto: Individuals and interactions over processes and tools.

Here is him giving a great presentation with the subversive title of “How to Fake a Project” that was incredible entertaining, and also quite thought provoking:

James Bach talking about "Faking a Test Plan"



What do you think? Automated testing is a fetish of the Agile community?

OpenSource Connections Announces Matching Donation For American Freedom Foundation

Posted Tuesday, October 20th, 2009 by Jason Hull

As many of you know, I am a disabled veteran, but I was fortunate in that my injuries were very minor, particularly compared to what many of our Wounded Warriors go through on a regular basis.  OpenSource Connections is a sponsor of the November 7 American Freedom Festival, presented by the American Freedom Foundation.  Proceeds for that foundation go directly to help Wounded Warriors get back on their feet after their service for us.

Today, we’re announcing a little effort to help raise some funds for the American Freedom Foundation.  It’s VERY simple.  All you have to do is go to their Facebook page at http://www.facebook.com/pages/American-Freedom-Foundation/132999207220?ref=ts and become a fan!  OpenSource Connections will donate $1 to the cause for each new fan up to 500 new fans between now and 5:00 PM on October 30.  Please go to the fan page and become a fan and find out more about the great work that the American Freedom Foundation is doing for our Wounded Warriors!  Thanks!

Good Will, Coffee, Help Desks and Software.

Posted Friday, October 9th, 2009 by Michael Herndon

There is a true story behind this odd ensemble of a title. I remember it like it was yesterday. In fact, it was yesterday…..

The Story.

I was packing up my laptop when I was abruptly cornered by an energetic fellow.  He rattled off his problem in such a degree I could only process bit and pieces of his story.

He had spent 9 hours working with a software vendor who-must-not-be-named for credit card processors. They had gotten no where.

The first question screaming in my mind was why I being singled out to help him with a computer problem? I hide my geekness very well.  I strive to to prevent the typical questions like: will you fix my computer, vcr, dvd player, etc? Will you build me a website? Teach me HTML, please?

People fail to realize the differences between developers and IT. They also fail to see the different roles and specialization of certain knowledge for various parts of software development.

Touching a computer makes you liable for scape-goat-itis to consumers. Not only that, people have a bad habit of donning  you to become their free tech support [expletive deleted], whether you want it or not.

I turned around to see a co-worker,  that I now call Brutus, paying for coffee at the counter.  Having this flaw called empathy, I caved to energetic man in red. I agreed to look at the program and see what I could do.

Surprising the daunted man in red and the owner of this awesome local coffee house in the downtown mall of Charlottesville: I fixed the issue in about 3 minutes.

I’ve never seen the software before. The help desk and the developers of the software who connected remotely could not fix it. Why could I?  And no, I’m not super-developer-guy in skin tight and equally frightening spandex.

The Real Problem

The first part of the problem of is because many software vendors use a broken system. The help desk personnel reads scripted dialog, they don’t know the ins an outs of the software.

Some of help desk personnel at various companies even refuse to take initiative to go past the script. Even if its simple as searching google, they won’t do it.

Software developers are seldom familiar with the nuances of the operating system or system environments. They  are paid to develop software, not administrate or navigate all the pitfalls of minor differences in environment.

Thats why testing software and working with IT staff, users, clients, and people who know the business is so important.  Its important to have people who specialize in different aspects, like the desktop environment, performance and usability testing.

The attitude and mindset of the developers you hire is also important. If they stamp it “well it works on my machine” or “it the users fault”, its going to hurt your business and even hurt your clients/users.

The other major issue was that the developers did not take the time to really analyse the error message.  Instead they chased Alice down the rabbit hole, rather than simply listening.

The Solution.

I used the tech support cheat sheet that most of us savvy developers use to fix family computers and other things.

Taking the key parts of the error message, I put them into google. I glanced over a couple of posts. I saw a feasible issue. I verified the issue. The program was being started in a compatibility mode for windows 2000 on windows XP.

I tweaked the folder settings so the compatibilty mode was showing. Changed the compatibility mode. Restarted the application. They were now on their way.

So the solution was really listening to the problem and resolving to fix it.

The Story. Second Act.

It was an inconvenience to me. Helping people generally is.  But I’ve lost hours of life to soul-sucking computers and software issues.  I know pain and thy name is crappy software.

Besides with only a few minutes of my time, I was able to save a few people hours of pain and possible even a few premature grey hairs.   It was a good feeling to help someone and not deal with scape-goat-itis.

The man in red was certainly gracious. The store owner was kind to present me a token. A gift certificate for coffee. I really did not want anything, but its also rude to refuse a gift. It was kind of him.

With a few minutes of my time, I was able to help a local business owner and the man in red. The man in red, turned out to be a recent veteran, who was in business of credit card  processors.

It always cool to be able to help someone who served for this country.  They work hard and almost never expect anything in return.  They deserve much more than they ever receive. They never complain about it. Its humbling.

Even during lunch at a near by restaurant, the man in red came by to thank me again. Then voiced his disheartening opinion of the software that was just installed. I have a sneaking suspicion that the man in red, won’t be using that particular brand of software again anytime soon.

Things to ponder.

If you are using consultants, hiring software developers, or buying software; the question you should ask is who are you actually doing business with?

How much is your time worth?

Are they honest and transparent?

Do they cost more because of quality or support they provide, or because they are a brand name?

EdUI 2009 Conference Workshops Recap

Posted Thursday, September 24th, 2009 by Michael Herndon

What is the EdUI Conference?

The is a new conference held by the University of Virginia for the niche of web professionals in higher education. Do not let the tag line fool you. A good portion, if not all information, provided by on-the-front-lines professionals easily translates into other domains of business on the web. The various headlining speakers were all top notch.

I had the privilege of going to one workshop and visiting the condensed version of another. Both were wise investments of time. This website, my BHAG website (amptools.net), and O.S.C. (opensource connections) clients will be able to reap the rich benefits from EdUI in the near future.

Workshop Beyond Blah Blah: Creating Great Content for the Web.

This great workshop was created by of , a company Mr. Poteet founded. The workshop was centered around the ‘best of’. Concentrating in areas of creating/writing great content and essentially it’s architecture.

Some of the sources used to put together the workshop were the “Wizard of Ads Trilogy“, Made to Stick by Chip & Dan Heath, and a white paper called “Designing for the Scent of Information” by Jared Spool. Anyone related to or responsible for marketing in your business should/must read the Wizard of Ads trilogy if they have not already.

The notes that I took from the workshop are pretty much in the actual slides. They center around 6 tips for developing and organizing content on your site. That being said: the notes and slides are pale in comparison to actually doing the workshop with David. We actually were lead through the KJ session, writing exercises, and more during the workshop. All of these were invaluable experiences.

Beyond Blah Blah: Creating Great Content for the Web. takeaways

See the notes are at the end of this blog**

Workshop New Insights In Web Standards

, former group lead of WaSP, co-author of The Zen of CSS design, and all around free spirit, did the workshop on new insights in web standards. The focus here was definitely on HTML5. The results of even the condensed workshop was eye opening.

Unfortunately, I was only able to see the condensed 2nd day version of this workshop. I generally keep tabs on emerging software technology, HTML 5 and CSS 3 being a few of those. I even read W3C specs, which read like legal documents on a good day.

The opportunity of getting the word of mouth version from someone like Molly, saves me a few headaches and hours of reading. Plus gaining another perspective from someone never hurts.

New Insights In Web Standards Takeaways

  • HTML 5 is an application markup language.
  • HTML 5 is here (partially). Google Wave is an HTML 5 application.
  • Backwards compatibility on the web is a must. (however this should be pushed more onto the browsers supporting old documents, not developers/designers)
  • The web means open standards, HTML 5 is pushing that, with forcing browsers to provide things like video and audio codecs, animation, etc.
  • First html spec that all browser vendors are behind, which is almost scary.
  • XHTML 2.0 and its w3 group is gone at the end of this year, no more xhtml. yes. i’m serious.
  • XHTML is considered to be a failure.
  • IE still slowing down the web. (Well we’ve know this for years, but it might be wise for everyone to charge extra to clients who require IE 6 compatibility or just render plain white document style content to IE 6 users).
  • HTML 5 will come in 2 flavors SGML/HTML syntax & XML.
  • Opera has the lead on HTML 5 completion, including web forms 2.0 at the moment.
  • Javascript is the glue of the web. (fellow Javascript developers, can we say job security?)
  • Designers who work CSS and HTML, will now have to be pseudo developers with HTML 5. For Hybrids like me who can do both, that is not a big deal. However being able to do design and development is a rarity. So this will place a burden on many who see themselves as designers.

My Notes from David Poteet’s workshop**

  1. Give them what they want.
    1. “people come to your web site running”
    2. what are you audience’s key goals.
      1. decide what is important.
      2. take away choices where i do not need them.
      3. make choices clear & distinct.
    3. how do you know what they’re looking for?
      1. listen to them.
        1. interviews & focus groups.
        2. social media sites, blogs, forums.
        3. search logs.
        4. mental models.
        5. carewords survey.
        6. KJ Session.
  2. Use words that smell like goals.
    1. Readers are like bees
        • people hunt for information like bees seeking nectar or hounds on the trail of a fox.
      1. “Scent” or “Trigger” words
        1. What worlds would be in someone’s mind if they were pursuing a particular goal?
      • information Scent Theory
    2. What they don’t do
      1. read left to right, top to bottom.
      2. look at all the options and choose the best one.
      3. Instead, they SCAN and SATISFICE.
    3. Write for scent
      1. each link needs to have a strong “scent for the content that lies beyond it.”
      2. 5-7 words are optimal.
      3. Users expect each click to lead to information that is more specific.
      4. when users click on triggers words, they expect to see those words on the next page.
      5. Don’t let clever kill clear. Trigger words need to be readily understandable
      6. Users search when they can’t find the words on the page.
    4. Am I in the right place? Are your credible?, where can i go from here?
  3. Write “visually.”
    1. Do they ever read?
      1. yes, when they get to the content they’re looking for.
      2. % of the story read by format:
        1. 75% o
    2. Shorter sentences and short paragraphs
      1. in most cases not more than 50 words per paragraph
      2. one sentence paragraph is ok
      3. So are fragments.
    3. Lots of headings/sub headings.
    4. Using Images
      1. User pictures that mean something on context
      2. Use icons if meaningful.
    5. Meet users’ expectations for visual formats, for example:
      1. address
      2. game stores
    6. Use lists
    7. Use tables. collage mural
      1. data compare
      2. cross reference
      3. options
  4. Show don’t tell.
    1. give sensory details and substantive facts.
    2. let them come to their own conclusions.
    3. They’ll realize it with greater conviction.
  5. Not everyone thinks like you.
    1. Write for temperaments
      1. four temperaments
      2. Guardian(sj) idealist(nf), artisan(sp), rational(nt)
      3. Methodical, humanistic, spontaneous, competitive.
    2. Methodical
      1. details
      2. fine print
      3. how does it work
    3. spontaneous
      1. quickly
      2. superior
      3. customize your product/service
      4. narrow your choice
      5. enjoy life more?
    4. Humanistic
      1. How will the product make you feel
      2. who uses your product service
      3. who are you, let me see bios
      4. what will it feel like to work with you
      5. what experience other have with you?
      6. Can I trust you?
      7. What are you values?
      8. How will this help me strengthen relationships?
    5. Competitive
      1. What are you competitive advantages?
      2. Why are you superior choice.
  6. Say something they’ll remember (and care about)
    1. Left Brain vs Right Brain
      • logical vs intuitive
      • Sequential vs Chaotic
      • Objective vs Subjective
      • Analytical vs Holistic
      • Right or Wrong vs Likes or Dislikes.
      • Grammar & Vocabulary vs Intonation & Accentuation
      • Exact Numeric Computation vs Approximates, Estimates
      • Tempo, tone, & interval vs Music
    2. Implications
      1. Intellect and Emotion are partners who do not speak the same language. The intellect finds logic to justify what the emotions have decided. Win the hearts of the people.
      2. Keys to the emerald city
        1. storytelling
        2. the unexpected
        3. verbs
        4. poetic meter
        5. humor
        6. leave something to the imagination
      3. Storytelling
        1. we are hardwired to remember stories.
        2. Adrenaline is the biochemical adhesive that turns short term memories into long-term memories.
        3. Stores are a great way to both SHOW an idea and engage the reader mentally and emotionally, resulting in:
          1. transfer to long-term memory.
          2. Persuasion / conviction that something is true.
          3. motivation to act
        4. Who is your story about?
        5. simple
        6. unexpected
        7. concrete
        8. credible
        9. emotional
        10. stories
          1. the sooner you can put a verb in the better.
          2. put words to music.
            1. music enters through Right Brain, bypassing Broca entirely.
            2. Poetry allows us to put music to words in our minds.
        11. What do you remember?