Learning Poetry: Exercise 1

This is the first part in a series of posts documenting my efforts learning more about prosody:

If you've been following my blog at all, you may have noticed that I have posted a poem or two. These attempts at prosody are remnants of songwriting attempts – lyrics that never gained a tune. Though I enjoy writing lyrics and, on the odd occasion pretending they're real poems, I've never taken the time to learn about the art of poetry. Because of this, much of what I write lacks the structure and care that would indicate or more learned authorship and I expect to some I may just come across as nothing but a poetaster1.

With that in mind, a couple of years ago I bought a book by Stephen Fry while I was on vacation in San Francisco. It's called The Ode Less Travelled: Unlocking The Poet Within. Allowing for the appropriate length of procrastination, I started reading it this weekend on my trip to Chicago for St.Patrick's Day and I've really been enjoying it. Each concept is introduced with examples and analysis before the reader is given an opportunity to put their newly acquired knowledge to work in simple exercises (Fry's view is that we're each capable of poetry if we only try).

I won't recreate the book here, it would be a poor facsimile, but I would like to present my attempts from each exercise. Whatever you think of my poetic prowess (or lack thereof), I hope it will be fun to follow along as I learn and improve my prosody. I'll begin with a brief explanation of the exercise and then provide my attempts2. As I don't intend to explain the terms in detail, you may want a copy of the book or a dictionary in order to understand the exercise.

The Exercise

Write 20 lines of blank3 verse in iambic pentameter4.

The Results

When Mrs. Wilson claimed she was a bitch,
Miss Chrissy said it was not really true.

Tonight, I slept inside an apple core.

The night is young and eager for some fun,
but what to do, I'm bored and losing time.

This exercise is rather dull for me.

The driver stopped to get another fare.

His face was low, without a look of love,
yet some might say he's clearly lost in thought.

I'm learning all about iambic lines.

My friends will all be quite impressed with this,
I know a term or two about the moon.

It burns to think she left me all alone.
Where will I find a girl as bright as her?

Another dog falls foul of Sergeant Crow.
The pound is where he locks them all away.

Tomorrow takes a darker turn for me.
The crows come home to roost and bury me.

A line or two of prosody to write.

I stole a pack of mints from Mrs. Brown.

  1. A word I learned from my new poetry professor, Stephen Fry. It means 'bad poet'. []
  2. Each exercise is actually introduced with some rather detailed instructions in the book that provide additional guidance and challenges than the summary I will provide. []
  3. Non-rhyming []
  4. Verse with the metre 'ti-tum ti-tum ti-tum ti-tum ti-tum', also known as the Heroic Line. []

I Am An Addict

As the first line states, I wrote this a couple of months after I stopped smoking. It's interesting to me (and perhaps, only me) that the style of this poem seems more accepting and resolute than that of An Ode to Smoking, which seemed more reluctant about letting go of the cancer sticks. Writing really helped me get over the nicotine addiction and gave me something to do with my hands other than hold a cigarette.

It's been two months since I stopped.
I still feel like the very first day,
Fighting every urge of my being to resist.
That sweet siren song of the cigarette.
Of course, back then I chewed the gum,
Now it just rests in my shirt pocket.
A comfort blanket, a placebo,
It's presence, just enough to keep me sane.

Every day is like starting all over again,
Wiping the bad dreams of smoky fun,
From my over-active imagination,
and accepting the reality of a non-smoker.
The cravings come stronger now,
They burn like unrequited love,
For a stranger you meet every day.
Just one kiss and it would all be okay.

But I don't steal that kiss,
To do so would set me back so far,
I'd have to smoke just to beat,
the stress of failing to not smoke.
No, I take each day as it comes,
And it goes.
Knowing that it will always be this way,
I'm a smoker who doesn't smoke.

I don't smoke when I wake up,
And I don't smoke before I fall asleep.
I don't smoke when I'm driving,
and I don't smoke when out drinking.
I don't even smoke after a meal,
Or just before I go to see a movie.
Yet each of those times, I remember,
I remember the desire and the disease.

I also remember the smell of my clothes,
Or at least I remember discovering it,
When I stopped.
That's something new that I'm grateful for.
If I had never smoked, I would never know,
To the extent that I know now.
I would never appreciate the scent of fall,
my nephew's skin or fresh clean clothes.

So, I fight everyday, just as I did before,
But this time, I am armed more heavily,
With memories of what I gained,
And of failed attempts to gain them.
With the stench of smokey clothes,
And the stains on yellow teeth in the mirror.
With my nicotine gum and my will,
I will fight till the death, whoever may win.

It's been two months since I stopped.
I still feel like the very first day,
Fighting every urge of my being to resist.
That sweet siren song of the cigarette.
Writing this fought them off one more time,
Until the next, and there will be a next time.
I am an addict but I will not give in,
Not yet, but tomorrow, I might celebrate with a smoke.

October 2006

St. Patrick's Day

static class Program
{
    public static void Main()
    {
        EnjoyStPatricksDay.WithAGuinness();
    }
}

static class EnjoyStPatricksDay
{
    public static readonly Person Me = People.Jeff;
    public static readonly City CurrentCity = Cities.Chicago;

    public static void WithAGuiness()
    {
        if (CurrentCity.HasGuinness)
        {
            EnjoyStPatricksDay.WithAGuinness();
        }
        else
        {
            EnjoyStPatricksDay.WithAWhiskey();
        }
    }

    public static void WithAWhiskey()
    {
        if (CurrentCity.HasWhiskey &&
            !Me.PassedOut &&
            !Me.SickAsADog &&
             Me.HasMoney)
        {
            EnjoyStPatricksDay.WithAWhiskey();
        }
        else if (Me.HasMoney && !Me.PassedOut)
        {
            try
            {
                Me.EatFood();
            }
            catch (VomitException)
            {
            }
        }

        while (!Me.PassedOut)
        {
           try
           {
              Me.FindingWayBackToHotel();
           }
           catch (LostException)
           {
              Me.CatchTaxi();
           }
           finally
           {
              Me.Sleep();

              do
              {
                  Me.Snore();
              } while (Me.PassedOut);

              Me.DoHangover();
           }
        }
    }
}

Drink responsibly and have a great day!

An Ode to Smoking

I can only presume this coincided with an attempt to stop smoking that lasted less than a month. I know this because just over a month after I wrote it, I actually stopped smoking and have been mostly smoke free for over 5 years now. The keen-eyed among you may notice this was written 3 months before Shattered – this may give you some insight into the emotional effects of nicotine withdrawal.

The smoking doesn't soothe me anymore,
It used to even out the bumps but now I just feel sore,
From burning air as I inhale,
Clothes that smell so stale.
What is it for? I can't take it anymore.

It used to feel good with a beer,
Having that fire in my hand but still the smoke would shed a tear.
I guess the novelty wore off,
Now all I have's this smoker's cough.
And death to fear. I hope the air will clear.

I know I've tried this all before,
Stopped smoking cigarettes and tried to fight the war,
Between my body and myself,
My pleasure and my health,
To find a cure and become a little pure.

I know it won't be an easy thing to do,
I'll need some help; a patch or just some gum to chew,
I'll need my friends to understand,
If things don't go just how I planned,
When I feel blue, not that it's something new.

With one last breath I've said goodbye,
To a two-faced friend that couldn't help itself but lie,
It won't be easy as we part,
But I know deep in my heart,
That I must try. One of us must die.

The months ahead will be my trial,
I know from times before how hard the final mile,
Can be to win the race,
I can't take second place,
I must maintain the pace,
And all the while, grit teeth and smile.

July 2006

Change Requests

Much like my previous post on Meeting Etiquette, this is a topic I feel strongly about. I am sure there are good reasons that people will hate some of my suggestions and I'd love to hear them, but here are my views on change requests1 based on my personal experiences.

All work is a change

I loathe projects that differentiate new work from changes to existing work. It creates two different process flows for little gain, creating points for confusion and mistakes. If all work items, whether new features, bug fixes or enhancements to existing features are raised as change requests, the work flow is the same. Everything should be tied back to requirements, regardless of the type of work, so arguments that claim there is a difference just don't wash with me. Consider a new feature as a change from not having it to having it, after all, that's exactly what it is.

Whatever the work is that is being conducted must still be implemented, reviewed and tested against requirements. Why make it harder than it needs to be?

Specify requirements, not solutions

There are many times I've been assigned a requirement that tells me how to fix something, not what needs fixing. Let's face it, everyone has an opinion but change requests are not the place to express them (except perhaps as a suggestion in the comments somewhere). A change request should clearly state the requirements that drive the change (i.e. the things that can be used to identify when the change request has been resolved) and any other information that may help (for example, steps to reproduce a bug or some rationale behind the change required).

Be descriptive

If I see one more change request with a summary or title like "Change to menu dropdown" or "Display control update", I will be rather miffed and may hurt someone (I'm British, "miffed" is just above "peeved" on the British Standards Anger Scale2). The title of a change request is very important and should give a clear indication of what the change request actually requires. Think of it a bit like twitter; it's much nicer reading some useful information in a tweet than it is to learn that someone just had a coffee. If the title is not clear, time is wasted in going to look at the description every time someone sees that change request. Every status meeting, every discussion, click click click. Save everyone the effort and get it right first time, and if you spot a title that isn't clear enough, fix it right away.

Add value

Finally, when adding comments, additional description, attachments or anything else to a change request, make sure it adds value. Leave an trail for those who follow in your footsteps so that they can discover what changed and why. Document important discussions and decisions. If you don't, you are destined to go around in circles.

Manage releases by managing change

Target changes at releases and review new changes regularly. This way, new requests raised during that release cycle can be considered for inclusion and deferred changes can be ignored until after the release. Each time a new release is started, review all the open requests and determine if they should be rejected, deferred or included in that release. Justify and document rejections in case a duplicate is raised and make sure to link duplicate issues as they can add value to one another.

Have meaningful states

I feel that there are the following possible states for a change request in any sane process to manage them.

  1. Raised
  2. Assigned
  3. In progress
  4. Ready for review
  5. Passed review
  6. Merged to trunk
  7. Rejected
  8. Closed

These are clear, unambiguous states.

  • If something is marked as "Raised", it hasn't been assigned to any release and no work should be happening on it.
  • If it's "Assigned", it should be targetted at a release (even if it's only intended for investigation at first – it can always be removed from the release back to "Raised" or rejected and closed).
  • If someone is working on something, that something should be marked as "In progress" as this helps to track progress at a glance and can also be useful if resources become available and things need reassigning.
  • If something passes testing, close it, unless you really don't trust the test team, in which case have a "Passed test" state and then review the results before closing3.

Considering these basic states, the workflow looks something like this:

State flow diagram
State flow diagram

You could add additional states if you so desired but I feel that these cover the bases well enough and provide an easy to follow work flow.

Closed means closed

Change request management gets messy when the process allows for closed requests to be re-opened. If a closed request seems like it really is now needed, raise a new request. Don't close change requests just because they aren't being done right away; if it's a real issue, then it should remain open until it is resolved.

Not always, but mostly

The guiding principle for me when it comes to change requests is simplicity. Don't make your process more complicated than it needs to be. Make it easy to follow and hard to get wrong. While I'm yet to encounter a project that required anything different to what I've suggested, I am certain there are exceptions, so if you have any, let me know. This is often a contentious, polarising topic, so I expect someone, somewhere to emphatically insist I am wrong. I can accept that, so I look forward to finding out even better ways to manage change.

  1. I made that up []
  2. You may also know them as issues, bugs, defects or some other moniker that ultimately means "a repository of things to do". []
  3. Flippant remarks aside, this may be valuable if you need to perform a round of customer acceptance testing after internal testing before closing out change requests. []