If you don’t know me by now

“Disappointments are inevitable, discouragement is a choice”.

That quote was heavy on my mind, as I navigated the truck from Columbia back to Loganville.  As I worked my way through the Kubler-Ross Model, I admit that I lingered on step 2 for quite a while.

Throughout my life, I’ve kept so many sayings, quotes, and stories that I often lose attribution, who said that?

What I have learned in the past shapes the person I will be in the future, so it is in these crossroad moments of disappointment, that I make choices to heed the learnings or ignore the learnings.  My capacity for “breaking bad” is high.

Finally, I confronted step 4 and that saying popped in my mind: “Disappointments are inevitable, discouragement is a choice”.  The choice was obvious for me: I won’t get discouraged.

This morning I googled the saying to get who said it.  Wow #20!.  The bread cast out over the waters has come back.

In my bible study this morning, a Spurgeon devotional:

When we sail in Christ’s company, we may not make sure of fair weather, for great storms may toss the vessel which carries the Lord himself, and we must not expect to find the sea less boisterous around our little boat. If we go with Jesus we must be content to fare as he fares; and when the waves are rough to him, they will be rough to us. It is by tempest and tossing that we shall come to land, as he did before us.- Spurgeon

And now I have another story in my head, waiting to console me, at the next inevitable disappointment.

Posted in Spiritual | Leave a comment

The Engineer’s Dilemma

I’m not allowed to run the train
The whistle I can’t blow…
I’m not allowed to say how far
The railroad cars can go.
I’m not allowed to shoot off steam,
Nor even clang the bell…
But let the damn train jump the track
And see who catches Hell!

Posted in Uncategorized | Leave a comment

A testimony

It is comforting to read other’s testimonies that are like my own:

That’s because, for the last 35 years – whether in pain, suffering, joy, or jubilation, it makes no difference – I have known there was a purpose. I have known that I belong to Christ and that I am here on earth to advance His Kingdom.

 

Chuck Colson Reflects On His Conversion

Published August 25, 2008 Uncategorized 6 Comments

From an email:

Thirty-Five Years in the Light: Reflections on My Conversion
(by Chuck Colson, August 12, 2008)

A lot of people have asked me what I think about when I remember back to that hot, humid August night in 1973 when Tom Phillips, then the president of the Raytheon Company, witnessed to me in his home. I left his house that night shaken by the words he had read from C. S. Lewis’s Mere Christianity about pride. It felt as if Lewis were writing about me, former Marine captain, Special Counsel to the President of the United States, now in the midst of the Watergate scandal. I had an overwhelming sense that I was unclean.

After talking to Tom, I found that when I got to the automobile to drive away, I couldn’t. I was crying too hard – and I was not one to ever cry. I spent an hour calling out to God. I did not even know the right words. I simply knew that I wanted Him. And I knew for certain that the God who created the universe heard my cry.

From the next morning to this day, I have never looked back. I can honestly say that the worst day of the last 35 years has been better than the best days of the 41 years that preceded it. That’s a pretty bold statement, given my time in prison, three major surgeries, and two kids with cancer at the same time, but it is absolutely true.

That’s because, for the last 35 years – whether in pain, suffering, joy, or jubilation, it makes no difference – I have known there was a purpose. I have known that I belong to Christ and that I am here on earth to advance His Kingdom.

Would I have ever known that if Tom had not witnessed to me?

The reason I visited Tom that fateful night was that I was coming back to his company as counsel. But before he met with me, Tom prayed about how he should treat me. After all, here was his lawyer, mixed up in the Watergate affair. Tom later told me that God spoke to him: “Tell Chuck Colson about me, because he needs a friend.” God was certainly right! I was as desperate and lonely as a man could be.

But get this: Never before in Tom Phillips’s life had God told him to share the Gospel. Never before had he done so.

But in total obedience, Tom followed God’s lead, and the result? A ministry that now spreads all around the world to 114 countries, tens of thousands of men and women coming out of prison being redeemed by the blood of Christ, and then finding their place in community; and the whole Church being sensitized to the needs of the least of these in our midst.

I also wonder what might have happened to me, personally, had I not encountered the living God that night or some other time. I do not really think I would be alive today. Before my conversion I drank, partied, and smoked heavily. I do not think I would be seeing my 77th birthday, which I will this October.

And if I managed somehow to survive the high-powered party life in Washington among the rich, famous, and powerful, I would have been so miserable I don’t think I could have lived with myself. If I did not know for sure that the God who created us sent His Son to die on a cross that my sins might be forgiven, I would have long ago suffocated in the stench of my own sin.

So how do you celebrate 35 years as a Christian? By recommitting yourself to use every available moment, every ounce of energy, in service of the King. For what He has done for me, how could I ever do less?

Posted in Spiritual | Leave a comment

For your comfort

Psalm 91

Whoever dwells in the shelter of the Most High
    will rest in the shadow of the Almighty.[a]
I will say of the Lord, “He is my refuge and my fortress,
    my God, in whom I trust.”

Surely he will save you
    from the fowler’s snare
    and from the deadly pestilence.
He will cover you with his feathers,
    and under his wings you will find refuge;
    his faithfulness will be your shield and rampart.
You will not fear the terror of night,
    nor the arrow that flies by day,
6 nor the pestilence that stalks in the darkness,
    nor the plague that destroys at midday.
A thousand may fall at your side,
    ten thousand at your right hand,
    but it will not come near you.
You will only observe with your eyes
    and see the punishment of the wicked.

If you say, “The Lord is my refuge,”
    and you make the Most High your dwelling,
10 no harm will overtake you,
    no disaster will come near your tent.
11 For he will command his angels concerning you
    to guard you in all your ways;
12 they will lift you up in their hands,
    so that you will not strike your foot against a stone.
13 You will tread on the lion and the cobra;
    you will trample the great lion and the serpent.

14 “Because he loves me,” says the Lord, “I will rescue him;
    I will protect him, for he acknowledges my name.
15 He will call on me, and I will answer him;
    I will be with him in trouble,
    I will deliver him and honor him.
16 With long life I will satisfy him
    and show him my salvation.”

Ok, now here is my evangelical moment.

You have Isaiah: because of your sins, he does not hear you

You have Revelations: whomsoever will

Without the revelation, you don’t get the promises of Psalm 91, right?

Posted in Personal, Spiritual | Leave a comment

Blast from the Past

Good Ideas don’t die, they get recycledScreenshot from 2014-07-22 21:41:47

Posted in Software Development | Leave a comment

A learning I didn’t want to lose

So I posted it here

Genesis 1-2: Elohim or Yahweh?

Why does Genesis 1 refer to God exclusively by the Hebrew title Elohim, “God,” while the second chapter of Genesis, beginning in the second half of Genesis 2:4, speaks exclusively of Yahweh Elohim, that is, “the LORD God”? So striking is this divergence of the divine names that it has been common in critical circles of biblical scholarship to conclude that the writer, or, as those in the critical school prefer, the redactor (a sort of copyeditor) used basically two different sources for the two creation accounts found in the two chapters.

The person who paved the way for this theory of dual sources was Jean Astruc (1684-1766), the personal physician to Louis XV and a professor on the medical faculty of the University of Paris. While he still held to the Mosaic authorship of all of the Pentateuch, his volume on the book of Genesis published in 1753 offered the major clue that the names Elohim and Yahweh were the telltale traces that Moses used two sources to compose this material–material that obviously recorded events occurring before his time.

This explanation as to how Moses had access to material far beyond his own lifetime and the reason for the use of the dual names, however, was too facile; it failed to note that the variation in the employment of these two divine names in the book of Genesis was subject to certain rules that could be described rather precisely. First of all, the name Yahweh, “LORD,” (notice the English translation convention of rendering this name in large and small capital letters, as opposed to “Lord,” which renders another word meaning something like “master”) is a proper noun used exclusively of the God of Israel. Elohim, on the other hand, is a generic term for “God” or “gods” that only subsequently became a proper name.

Yahweh is used wherever the Bible stresses God’s personal relationship with his people and the ethical aspect of his nature. Elohim, on the other hand, refers to God as the Creator of the whole universe of people and things, and especially of the material world: he was the ruler of nature, the source of all life. This variation of divine names can be seen most dramatically in texts like Psalm 19. In this psalm Elohim is used in the first part, which describes God’s work in creation and his relationship to the material world. But in the middle of the psalm the psalmist switches to the topic of the law of the LORD and the relationship the LORD has with those who know him; there the name Yahweh appears.

A further complication occurs because Exodus 6:3 notes that God says, “I appeared to Abraham, to Isaac and to Jacob as God Almighty, but by my name the LORD I did not make myself known to them.” The resolution to this apparent contradiction to some 150 uses of the name Yahweh during the patriarchal period is to be found in a technical point of Hebrew grammar, known as beth essentiae, in the phrase “by my name.” This phrase meant that while Abraham, Isaac and Jacob heard and used the name Yahweh, it was only in Moses’ day that the realization of the character, nature and essence of what that name meant became clear. “By the name” is better translated “in the character [or nature] of Yahweh [was I not known].”

Thus the name Yahweh is used when the Bible wishes to present the personal character of God and his direct relationship with those human beings who have a special association with him. Contrariwise, Elohim occurs when the Scriptures are referring to God as a transcendent Being who is the author of the material world, yet One who stands above it. Elohim conveys the more philosophically oriented concept that connects deity with the existence of the world and humanity. But for those who seek the more direct, personal and ethically oriented view of God, the term Yahweh was more appropriate.

Accordingly, Genesis 1 correctly used the name Elohim, for God’s role as Creator of the whole universe and of all living things and all mortals is what the chapter teaches. The subject narrows immediately in Genesis 2–3, however; there it describes God’s very intimate and personal relationship with the first human pair, Adam and Eve. God is depicted as walking and talking with Adam in the Garden of Eden. Therefore Yahweh is appropriately joined to Elohim to indicate that the Elohim of all creation is now the Yahweh who is intimately concerned to maintain a personal relationship with those who will walk and talk with him.

Posted in Spiritual | Leave a comment

Accountability

The Oz Principle defines Accountability as:

Accountability: “A personal choice to rise above one’s circumstances and demonstrate the ownership necessary for achieving desired results—to See It, Own It, Solve It , Do It®.

I’ve really tried to embrace the philosophy because it’s highly regarded at Turner.  But it always seemed to be adapted from Steven Covey’s Seven Habits of Highly Effective People, minus the emphasis on personal development.

At the root of my struggle was the O.P. definition.  I couldn’t wrap around it.  Today I hit on a definition from Tony Schwarz that I do identify with:

“Accountability is a means of regularly facing the truth about the gap between your intention and your actual behaviour.

At its best, accountability is both a protection against our infinite capacity for self-deception and a source of information about what still stands in our way.”

Now that’s perfect.  It’s quiet mornings like this one, that I acquire the most knowledge.  Now let’s go hold myself accountable to my mission statement.

Posted in Personal, Spiritual | Leave a comment

The Death of Agile

The death of agile?

  • The skills and talents of individual programmers are the main determinant of software quality. No amount of management, methodology, or high-level architecture astronautism can compensate for a poor quality team.
  • The motivation and empowerment of programmers has a direct and strong relationship to the quality of  the software.
  • Hard deadlines, especially micro-deadlines will result in poor quality software that will take longer to deliver.
  • The consequences of poor design decisions multiply rapidly.
  • It will usually take multiple attempts to arrive at a viable design.
  • You  should make it easy to throw away code and start again.
  • Latency kills. Short feedback loops to measurable outcomes create good software.
  • Estimates are guess-timates; they are mostly useless. There is a geometric relationship between the length of an estimate and its inaccuracy.
  • Software does not scale. Software teams do not scale. Architecture should be as much about enabling small teams to work on small components as the technical requirements of the software.
    Coconut Headphones: Why Agile Has Failed

The Rest of the Story

Posted in Software Development | Leave a comment

My Babe Ruth

I did a demo of an ad-served mobile application-to-application deep link from a NASCAR app to a CNN app.

I pondered how to harness this new power.   Babe Ruth pointed to the stands before he hit that famous home run.  Here’s mine.

I want to get NASCAR to run a house ad that clicks thru to some CNN article that NASCAR values, via deep linking.

Like maybe this one.

Maybe CNN does a special page to highlight some NASCAR technology, so its a barter ad.  Maybe

NASCAR and CNN? I can hear your questions.  Yeah, it’s my destiny, and one day I’ll ping back to this post to prove it.  :)

Posted in Uncategorized | Leave a comment

Why we moved from Scrum to Kanban

Why we moved from Scrum to Kanban

When I joined my current team, we were a full on Scrum shop: three roles (product owner, scrum master, team), three ceremonies (sprint planning, spring review, retrospective), three artifacts (etc), the whole shebang.  And, it mostly worked, in that things got done, software got shipped.

However, in our retrospectives we had a few recurring issues that kept coming up:

  • Our sprint planning meetings were horrible.  They went on forever (at least half a day), were exhausting, and everyone left them feeling like there must be a better way
  • Testing was always getting squeezed towards the end of the sprint
  •  A reasonable proportion of stories (~30%) fell into the next sprint

When we delved into these, we developed some detailed explanations.

Sprint Planning Hell

The problem with our sprint planning meetings was that nobody wanted to commit to building the story until they understood how they would build it.  Consequently, each sprint planning became a design meeting, and often asked questions that the product owner couldn’t answer, because at that point the story consisted of “As a user I want to A so that B”.
So we moved to asking the analysts on the team to develop a lightweight spec for the story before bringing it to Sprint Planning.
This resulted in the planning meeting becoming even more of a design session, which then often asked technical questions which couldn’t be answered without some investigation.
So then we moved to having a ‘solution design’ session for each story before Sprint Planning, so that there was an approved technical design in place before we did planning poker on the story.
When was this analysis and design being done?  During the previous sprint, of course…

Squeezed Testing

You can’t test until there’s some code to test.  Of course, you can do test prep, you can write the acceptance criteria, you can set up test data, but… ultimately, if you’re a tester, you’re at the back end of the process.  And this is a problem, because any overrun by anyone ahead of you in the process affects you.  Was it ever thus.

Consequently our testers were always under pressure – either they have to bust a gut to test the story before the end of the sprint, or they had to be the bad news bears and tell the Scrum Master (me) that the story wouldn’t be ready and would have to be completed in the next sprint.

Stories Over-running

This issue is really a symptom of the previous two – with analysis and design being squeezed out of the front of the sprint, and testing out of the back, the sprint really just became the actual coding phase of the activity.  We even considered formally moving testing out of the sprint, but I drew the line at that one, and started looking for a better way.

Problems with Traditional Scrum

Based on the above, I thought Scrum had the following problems:

It assumes that everybody can do everything

I’ve never worked in a team like this.  At the very least, all the teams I’ve worked with have a split between analysts, developers and testers.  And within these, there will be people with specific skills – one story might need some serious database analysis, another some significant graphic design activity. Different people have different skills, and whatever process you use should recognise that.

It assumes that developing stories is a single task

Even within the (good) disciplines of a two week sprint, a story needs to go through a number of phases:

  • Elaborate
  • Develop
  • Test
Inside these can be multiple other steps (design, style, review, etc).  These steps are sequential – you can’t style the UI until it has been designed, you can’t test the story until the code has been written.
The combination of these two problems, that building software has different sequential steps and these steps are typically done by different people, led us to look at Kanban.

Why Kanban Works For Us

This article doesn’t have the space to describe the history or background of Kanban – the web is awash with such articles, and I don’t think I have a great deal to add to them.
The key thing Kanban brought to our small team was the concept of flow.  That a story flowed through a sequence of steps, from “As a User I want to A so that B” to some shipped working software.  This flow has a sequence, and some dependencies.  Anyone who’s worked in a team building software for more than ten minutes knows this, so let’s recognise it and make it explicit.

Our First Kanban Board

As is traditional, we got a whiteboard, some markers, some post-its, and constructed our board.  It consisted of six columns:
Next
The next story to be pulled from the backlog
Elaborate
Add detail to the story so that it can be coded, together with a technical design
Develop
Write the code
Test
Test the code
Review
Business review the implementation, to make sure it meets the original idea
Closed
Released!
Each story flows across the columns, and, importantly, is pulled from left to right by the following step.  So, developers pull elaborated stories only when they’ve finished the story they’ve been coding; that story, in turn, is now ready to be pulled into test.

WIP Limits

A key feature of Kanban is its ‘work in progress’ (WIP) limits.  This is the way of defining when a stage in the process flow is at its limit, and no new work should be pulled.  In the early days, we didn’t impose these, wanting to see if any natural limits emerged.  In practice they did, and once everyone realised that the essence is only to pull new work when you have capacity, we had few problems, and didn’t need to enforce WIP limits.

Advantages of Kanban

Having been running Kanban for over a year now, we’ve found the following advantages:

Visualisation

The state of play for the whole development team is immediately obvious to everyone in the office – including all the people who don’t work on the software delivery team. We used to have the Kanban board in the open part of the office, where everyone could see it.  We now have a big screen TV showing the virtual board in our ALM software, but that’s a whole different blog post.
Of course, every article out there on Kanban promotes visualisation as a key benefit, but I just wanted to add my voice to the crowd.

Continuous vs Batch

To me, Scrum often felt like a ‘batch process’ model of software development – you do these things, heave them over the wall (into production) and then do the next things.  Everything had to fit the two-week sprint cycle.  With Kanban, I feel like we’re now using a continuous-flow process – small stories scurry across the board quickly, and can be shipped when ready; larger stories take longer.  I think it’s no accident that this is a good fit with the ‘continuous delivery’ model of software delivery.

Posted in Software Development | Leave a comment