Implicit Contracts in User Expectations

I’ve been wondering lately about change and how to better manage it. Particularly in the computer world, change is frequently accompanied by howls of rage by some people and tacit approval by others. In trying to understand this, I realized that people are frustrated by change when it violates an understood contract. This contract may not be defined anywhere, but your users still hold to it. These are not contracts in the legal sense, but in the sense of expectations.

Different people establish tacit contracts with applications differently. For example, when Microsoft redesigned Office with the ribbon UI, it didn’t bother me. My contract with them was to enable me to create a document. I just did so differently. The contract others held was that when I click here in the UI, X happens. This contract was invalidated by rearranging the toolbar.

A way of managing this change would be to focus in marketing on the document. “You can now create better documents.” “You can now create documents more easily.” By doing so, the user is willing to exchange the established contract for a new contract.

A ramification of this would be why systems like Google Now on my phone or a dynamic start menu do not seem to gain wide acceptance. When I use an application, I expect it to always accomplish the task for which I’m using it. If it stops accomplishing the task or fails to accomplish it, I cannot trust the application and will find something else. A start menu has the task of allowing me to open the application I want. If the application was in the first menu, I expect to be able to go to the first window and find it. If a dynamic start menu has detected that I’m opening a different application more frequently and moves that to the first menu, bumping the other application off in the process, even though it is theoretically more useful, the contract of “to open X application, I click the start menu and it is there” has been invalidated. A way of managing this is every time the system thinks it should change, ask the user: “You seem to be using X a lot. Would you like it on this menu?” Another option is to offer information about how the decisions are made, such as a click count next to the menu items. By doing so, the user now expects the menu to show the top used applications. They may still reject it, because they don’t want a list of the top used applications, but you stand a fighting chance.

Google Now is similar. It does some very cool things, like helping you with mass transit status, reminding you of things, telling you about game scores, et cetera. But I only use it for reminders. When I set up a reminder, I tell Google Now to remind me to do something at a certain time or place. Thus far, it has always reminded me. So I explicitly set up a contract with the application to remind me, and the contract is fulfilled. With directions, Google Now tries to guess where I want to go, but is inaccurate and gives me a combination of unneeded information and a lack of needed information. The implicit contract is that Google Now will know, without being told, where I want to go and help me get there. This contract is not fulfilled and so I don’t use the application.

Facebook’s main stream also has a contract problem. When I first started with Facebook, I had an implicit contract: when I friend someone, I will see their stuff in my stream in chronological order. When they started leaving stuff out, they broke this contract. When they started reordering based on perceived importance, they broke this contract. The contract they are trying to establish is: “trust us to tell you everything you want to know.”

This is the root issue with these systems. I don’t have a single system that I trust to just tell me what I want to know. I want to tell a system a set of parameters and have it always fulfill this contract by returning the information I asked for. These systems are expecting me to do something that I don’t even do with people. Imagine asking a person to let me know all of the things I want to know about my friends. I’d constantly miss things because of bad guesses. Why would I trust a computer application to be able to do something that a human can’t even do reasonably well? A way of accomplishing this goal would be to help the user set filters: “You hid this item, would you like to hide everything by this person?” Or even assign a displayed score with every item, and allow the users to decide what level they want. There is a paradox of choice here, but if the user doesn’t understand the choices made for him, he will not use it anyway or be frustrated by a lack of control.

This concept of tacit contracts has been helping me understand and manage change. If you can identify the tacit contracts your users have and manage that change, you can help dramatically with product releases. It also helps me understand why features don’t gain use. If a user cannot establish a contract with that feature, it will not be used.

Worship is not about time, it is about Time

Gottesdienst Online has some commentary about an article regarding a church who is introducing a worship service sans ceremony in order to fit it into 30 minutes to make it more palatable to the culture.

This kind of thing is a capitulation to our facebook-twitter immediate-gratification drive-thru-window entertain-me-and-quick-or-I-will-be-bored culture. Worship is seen as, at best, a duty, something to be endured. It’s funny how other things in modern life are seen in a radically different light, and if they go longer than usual, it is considered a blessing and a joy, a thing to be treasured: such as when the football game goes into overtime, the baseball game goes into extra innings, the band comes out for an additional encore, or the vacation gets extended by a few days.

There isn’t anything wrong with a short worship service in and of itself, in case anyone raises that strawman. Compline isn’t very long, for example. Sometimes very good reasons arise for an abbreviated service. A short service is better than none. The question is whether it is wise to modify worship for the unchurched, who incidentally are 100% opposed to worshiping God until the Word works.

I am somewhat confused on that point in this case. The Chicago Tribune story quotes Pastor Boshoven as stating that this is not an evangelistic technique:

The motivation behind a church service in Merrillville that lasts only 30 minutes isn’t to attract people who want to spend less time in a religious program, its creator said.

Rather, the idea is to introduce a new form of church where the focus is on stories from the Bible, rather than the traditional ceremonial aspects of worship, said the Rev. Richard Boshoven.

Yet, he seems to be dancing around that idea:

We believe that God’s word is transformational and able to change lives… But the word needs to reach people first. Yes… on the surface this seems like ‘low commitment’ which is attractive to many disconnected Christians. But in reconnecting to the Word, a whole new depth of relationship is fostering a commitment to living a life of faith.

I think the interesting bit in the first quote is actually: “the focus is on stories from the Bible, rather than the traditional ceremonial aspects of worship.” I would hope that it is a strawman. The focus in historic Christian liturgy should not be “traditional ceremonial aspects of worship.” If it is, then we have lost our way as assuredly as the church who guts the liturgy.

I said I hope that it is a strawman. According to the articles, this is merely an additional service. They still have the “traditional” worship services wherein I suppose they focus on the traditional ceremonial aspects of worship rather than stories from the bible. Why is this a dichotomy? Nothing is wrong with focusing on stories from the bible, indeed everything about that is right! Look at the lectionary, you see many, many stories. But this is merely because it reflects the historic nature of the Christian faith — something that exists in real time, not in a mythological alternate reality. Christianity is not about ceremonies or empty morality. Christianity is about mankind who sin and God who entered time and became enfleshed in the womb of a virgin to live and die and take the penalty of our sin, so that we could be with Him for eternity.

The liturgical ceremonies should never distract from this. It is a sad thing that in today’s age, the world is so empty of depth that when they encounter something with depth, they recoil and miss the point. So I understand why it would be appealing to have a 30 minute bible study and call it worship. Another example of trying to reach post-moderns.

Yet, I think one major mistake is made. I agree with Pastor Boshoven’s assertion that “God’s word is transformational and able to change lives.” That’s why we have deep, liturgical worship. Worship brings God’s gifts of Word and Sacrament to the worshiper. Every word in the liturgy is designed to do this. But the individual needs to be transformed (we call it regenerated) in order to appreciate these gifts. I hope that we can give the Holy Spirit credit for being able to do this, without thinking that He can only do so much and we have to dumb down the service to help.

Pastor Weedon made a comment on Issues, Etc which helped my thinking on this. To paraphrase (due to my faulty memory), he said that time was created for worship. Think of that when we begrudge worship our time, which is indeed merely on loan.

Ends Justifying Means

I just saw a Gottesdienst blog post raising awareness of the capitulation of Lutheran Child and Family Services of Illinois. Sad situation, and I’m sure the first of many, but one sentence caught my attention:

This is not really a tough decision ethically, because the bending or compromising of principles is never a good thing to do, no matter what good might come of it.

I guess I’ve never heard that so succinctly put. I know that I’ve often struggled with times when it seems like we might be able to compromise on our principles without giving too much, in order that some great good might potentially come out of it. But isn’t that just another case of the ends justifying the means?

Worship is Preaching

Below is an email I sent to the WELS Hymnal Committee:

Thank you for your patient work on the new hymnal. You have one of those impossible tasks wherein you will displease perhaps the bulk of people regardless of the result. Yet, it is a good work, and God will bless faithful work.

I wanted to add some lay comments to the recent discussion of variety in worship (http://www.welshymnal.com/blog/feedback/rites-variety). It is a difficult thing to balance, but I would encourage you to lean towards consistency.

The practical concerns of the ability of young, old, and guests to grasp a consistent service have been beautifully expressed by Rev. Schroeder. I’d like to add a theological concern: worship is preaching.

One of the problems with Pop American Christianity is the search for that which is new and exciting. Everyone wants to find a new approach to scripture, a new and exciting way to read the bible. This is reflected in their theology, which all too often strays into the heresy of enthusiasm, and their practice, which is typified by driving rhythms and emotional appeals. Not a new problem, of course. Luther speaks of them as “the fickle and fastidious spirits who rush in like unclean swine without faith or reason, and who delight only in novelty and tire of it as quickly, when it has worn off. Such people are a nuisance even in other affairs, but in spiritual matters, they are absolutely unbearable.”

Yet with worship, we all too often fall in the same hole. We constantly look for new rites, new settings, new prayers, new lectionaries, et cetera. This can come dangerously close to being a search for novelty and innovation, and sometimes results in importing the practice — and unintentionally the theology — of those who are really good at novelty (and heresy).

I’ve heard it said that when one reads the sermons of Luther and the other Lutheran fathers, one can get frustrated by the lack of Gospel. Yet, the reason given for this is the amount of gospel in worship itself. Every collect, exhortation, and hymn — indeed, every part of the ordinary and propers — beautifully preach Christ crucified, for you.

When pastor so-and-so prays the collect, he doesn’t have to worry about the theological soundness of something he wrote last week. The congregation doesn’t have to spend time analyzing what he wrote. He and the congregation can simply pray, knowing that these beautiful words have withstood the test of time, that they have been vetted by generations before us. Pastor so-and-so ceases to be important. The liturgy places him back in his preaching office, wherein he teaches and expounds the Word as he is called. He doesn’t have to reinvent the wheel every service. He simply uses the beautiful wheel which has been passed down through the ages. Each generation adds a bit of polish to this wheel, one adding a little here, one removing a little there, keeping it fresh but still delivering God’s good gifts to us in need of them.

I once heard a pastor describe the liturgy as learning to die. That, as we get older and approach death, we remember the beautiful collects, hymns, and other poetry of worship, and this keeps us strong in our faith. Life isn’t variety. It is a simple walk through our daily callings, sometimes doing the same thing day in, day out for the rest of our lives. Worship reflects this.

During some periods of our lives, we find life exciting and exhilarating. Likewise, we sometimes find worship exciting, during the feast of Easter, or perhaps even just realizing the incredible beauty and awe of watching heaven and earth meet in the sacraments. However, during other times of our lives we get up in the morning and do the same things we did the day before and will do the next day. We do the same thing with worship. “Our father, who art in heaven…”. Same old words. Both times are equally blessed, and equally gifts from God. And frequently, the difference is merely perspective.

My state before God changed in baptism. I was there brought into his family, given new life, a new Adam, and a new deadly enemy. My state will change one more time, in death. Then, I will lose the old Adam and strife with the enemy. In between, what I need doesn’t change. I still need God’s strong Word which bespeaks me righteous, delivered to me via the mouth of the pastor and in bread and wine. The consistency of worship should reflect this.

I will submit that when we search for the new, we should repent and humbly rejoice in the old. God’s Word is not new.

Yes, there is a time for careful, thoughtful, prayerful consideration of changes to our liturgies. They are indeed adiaphora. Change is not bad, as long as it is change for the better and not change for change.

I hope to see a return to much of the beauty of the past. I would personally love to see a rediscovery of the beautiful art of chant. I would love to see an emphasis on weekly communion. I would love to see the historic festival liturgies dusted off and used once again, the Tridium for example. I’d love to see the daily offices restored: Compline, Vespers, Evening Prayer, Matins, Morning Prayer (as distinct liturgies). I’d love to see a strong one year lectionary.

But ultimately, I hope to see a restoration of consistency in worship. Week in, week out, worshiping God with the same words and the same setting.

I’d suggest for serious consideration, dropping most of the divine service settings. Alternative service settings, Divine Services from the Supplement, Service of the Word, et cetera. Create one, consistent liturgy. Base it off of the Common Service. Call it Divine Service. Focus on one, beautiful, simple setting of this liturgy. Then, add variety in the propers, including restoring the propers which CW didn’t include. And focus on clear, complete rubrics.

Then work on variations on this for specific festivals. A liturgy for Easter with is used every year, for example. There are enough feast days and festivals in the church year that they do a splendid job of keeping monotony from setting in. Not large variations. But specific things which are special and saved for those days.

I think that this can result in a consistent worship which we can all grasp and learn. Where WELS laymen who travel will find familiar worship each Sunday. Where we are united around a common doctrine and practice which reflects this doctrine. Where every sinner can recall the words of confession and absolution. Where we are unified in doctrine and practice.

The result would hopefully be worship which consistently preaches Christ crucified without striving for novelty or entertainment.

I am but a young layman who is learning humility. Clearly I haven’t learned the lesson well enough to refrain from wanting input on this project. But I hope that at least some of this will spark some thought and discussion. Feel free to jettison the rest.

In Christ Alone,
~William Johnston

Weird Rails behavior with has_many through

I spent the better part of today struggling with Rails while upgrading some old code. Documenting this here in order to hopefully save others the time.

In a case where you have three tables, e.g. Wizard, Dungeon, and DungeonWizard, where DungeonWizard is the join table, you cannot make the foreign keys in DungeonWizard constrained to not null.

In the below code, if you run these statements:

The output is:

Notice the INSERT followed by the UPDATE? This breaks when there is a null constraint on the join table.

Code:

A reason for the new WELS hymnal project

I’ve been looking for a stated reason why we are making a new hymnal. I’ve been afraid that the primary reason was simply to create something new, a generally bad reason for almost anything, but especially bad applied to the public worship of God’s people. However, in the March 2014 WELS Connection Close-up, there is a lot more background on the hymnal project, including an interesting quote from Rev. Bryan Gerlach, the director of the Commission on Worship for the WELS:

“The goal of a new hymnal 30 years after Christian Worship allows for several benefits. It provides for earlier and wider usage of excellent new hymns, addresses beneficial worship trends, consolidates WELS’ primary worship resources into one book, and contributes to unity within the WELS.”

There is a lot of latitude within the statement, but at least it can indeed be taken positively. Outstanding questions I notice are:

  • What “excellent new hymns”? There are indeed great new hymns, but wasn’t this addressed by the supplement?
  • What “beneficial worship trends”? I’m excited to see a focus on rediscovering music throughout the service, especially in the form of chant. Some of what I saw at the 2011 WELS Conference on Worship and the Arts was very exciting. Is this the direction? Or are we going in the negative direction of continuing to walk as close as we can to the precipice of “contemporary worship” without thinking we’ve fallen?
  • Wouldn’t consolidating WELS primary worship resources into one book be achieved by publishing a Hymnal+Supplement? I’m a little worried that this is a pipe dream, given that the church I attend hasn’t even purchased pew supplements. We rarely even open the hymnals anymore, opting to reprint the bulletin each week. (A necessity when the liturgy rarely is verbatim CW/S/OS.)
  • “Contribute to unity in the WELS…” I’m somewhat cynical here. Unless we are actually willing to address difficult questions of practice and doctrine when people disagree, there is no way we will achieve unity. See the ongoing NIV2011 debacle for an example. Those who are trying to create a mishmash “blended” worship experience will not be constrained by a new liturgy. Those who are trying to go full bore CoWo are (hopefully) going to find nothing in a new hymnal project. Those who want a strong, solid, confessional, historic liturgy will hopefully find a wonderful resource in the new hymnal, but I’m only mildly optimistic about this happening. How does this contribute to unity?

One encouraging quote from the director of the new hymnal project, Rev. Michael Schultz:

“This project is predominately about continuing to make excellent worship resources available to the congregations of our synod. With the expectation in our day and age that these resources will be digital and downloadable device-ready, the technology aspect of the project will certainly be receiving our attention. We do recognize, however, that before worrying about the method of media delivery, we have a higher concern about the integrity of the materials — that they are faithful to God’s Word and that they proclaim Christ as Savior and King.”

Nitpick: Proclaim Christ crucified. I’m sure that he meant this, but it is so incredibly easy to fall into the Theology of Glory trap that so much of modern “worship” falls into, we should be very specific. Worship is about bringing God’s gifts to His people. In the process of which, they proclaim Christ as Savior and King. I fear that we often go off base by reversing this.

I am encouraged that although technology seems to be a focus, they place a higher emphasis on the “integrity of the materials”.

The Worship Conference this summer will be interesting. I’m hopeful that the new hymnal will be a massive improvement over the existing one — and there are definite places the existing one falls short — and pray that we don’t fall into the trap of trying to please everyone at once.

Change directory to parent directory closes shell

Documenting this in case someone else runs across it. I just had a weird issue where if I ran cd / in my Mac OS X bash shell, the shell closed. It happened if I cd‘ed to any directory outside of my home directory structure.

In my case, I figured it out when I opened a shell within my terminal by running bash and then trying. The bash shell exited with an error: Abort trap: 6. It turns out that something in the system must have changed, and I needed to recompile my homebrew bash.

Misplacing Theology: Why style matters

Gene Veith points out an interesting article by Matthew Sigler, a “ThD candidate in liturgical studies at Boston University where his work has focused on the history of Methodist worship as well as lyrical theology. In addition to being a student, he has served for the past twelve years as a music minister in the church.”

In the article, Sigler – a charismatic – bemoans the loss of the connection between charismatic theology and the music in mainline protestantism. He examines its roots and why “praise and worship music” exists.

This is interesting for a confessional Lutheran as well. Some key sections from the article:

Many forget (or don’t know) that “contemporary” worship was inextricably linked to the Charismatic Movement of the 1960’s and 70’s. This connection forged a musical style that was rooted in a particular understanding of the Spirit in worship. Specifically, the singing of praise and worship songs was understood sacramentally. God was uniquely encountered, by the Spirit, in congregational singing.

I find this statement interesting, as we so adamantly try to make the assertion that contemporary worship can be removed from its heterodox context and welded to our orthodox theology. This reminds me of the metaphor from “The Fire and the Staff” where Klemet Preus describes contemporary worship as serving wine of the highest quality in foam cups. Contemporary worship is designed to replace the sacraments of the altar and font with the sacrament of “experience”.

…a premium was placed on intimacy with Jesus in congregational singing. This emphasis was largely due to the influence of John Wimber and the Vineyard movement of the late 1970’s and 1980’s. Though he was not the first to say so, Wimber emphasized that the Church needed to sing songs “to God” and not “about God.” Lyrically, this was manifest in the frequent use of the personal pronoun, “I.” Just scan through the catalogue of songs published by Vineyard Music during the 1980’s and see how many of them emphasize the importance of the individual engaging the second Person of the Trinity in the lyrics. While the intimacy motif wasn’t new in the Church, it was an important development in what would become known as “contemporary worship.”

The use of “I” and a focus on intimacy is usually not criticized except in its most egregious forms, usually as a “love song to Jesus”. However, it has theological implications. Singing songs “to God” instead of “about God” is a concise way of expressing the difference. Look at the core Lutheran hymns, “A mighty fortress is our God”, “Thy strong Word did cleave the darkness”, et cetera. The vast majority of them are talking about God. Lutheran theology describes a God who works through means to bring us salvation. He works through bread and wine and water to deliver salvation to us. He proclaims the Gospel in His Word. So, in a way, we also view music sacramentally, however it is God’s Word proclaimed that works faith, not our experience toward God that saves.

During the 1990’s many mainline congregations began to import the songs, sounds, and some of the sights (like hand raising and clapping) of the praise and worship style. In many cases, what got lost was the robust pneumatology behind this approach to worship. In other words, many mainline churches brought the form, but didn’t bring the theology of praise and worship into their congregations. This is a gross generalization, but I think it explains some of the dislocation that occurred during the “worship wars” of the 1990’s. The result was that the songs themselves and the style itself became the focus. Particularly in mainline congregations influenced by the Church Growth Movement, “contemporary worship” was a technique for reaching out—the concept of “praise and worship” as sacramental/encounter was diluted at best.

Thank goodness for that. Although we seem to be short-sighted in some ways, so sacramental/encounter theology creeps in unexpectedly on occasion. Especially when our parishioners are constantly exposed to the sacramental/encounter theology in the rest of life alongside the contemporary music, we shouldn’t be surprised when they import that into Lutheran worship seeing that the music is the same.

Contemporary-styled congregations would do well to examine their own understanding of the Spirit’s activity in each part of the service. Regardless of how local congregations understand the role of the Spirit in worship, all congregations can benefit from a perspective that considers every facet of the service as part of our worship to God.

This has a different meaning for the Lutheran. If we are in a congregation which is pursuing “contemporary” worship, we should think hard about what we are doing. We are importing musical style which have clear heterodox theological roots and trying to shoehorn them into an orthodox theological framework. But why bother? We have a beautiful heritage of music, texts, and an approach to musical expression which has arisen from our theology. Let’s use that!

At a bare minimum, we should take from this article another nail in the coffin of the belief that there is no or little relationship between style and doctrine. There are very clear links, and we should be very attune to this. When a practices arises from a doctrine and we import the practice, we should expect confusion in our doctrine at best and increasing resemblance to the originating doctrine at worst.

Some thoughts from a day of procedural coding

More for my personal future reference, but perhaps this may be useful to someone.

I’ve been trying to improve my programming, striving for clean, elegant, maintainable, readable code. Over the last couple days, I tried to understand how a one-off PHP page might be coded in an object oriented manner. Each possible architecture resulted in classes that were purely containers for smaller code snippets. They weren’t particularly testable and weren’t easy to read. There was also a lot of them, resulting in a ton of code for a small app.

On a whim, I decided to learn more about procedural programming, the very thing I was trying so desperately to avoid. I discovered that I may dislike procedural code simply because it always turned into spaghetti in my hands. But it was probably my fault, rather than the fault of the methodology. Here are some thoughts…

I made all of my code exit at the bottom. This meant making sure that all my code flowed to one exit point. This worked rather nicely, since the code really was designed to output a page at the end, unless an error occurred.

I caused all error states to throw exceptions, which I handled at the bottom. This is the part I’m least sure about, as far as best practice goes. The main flow of the code was all in a try block, with a series of catch blocks at the bottom. I created a number of simple subclasses of Exception in order to categorize types of error states. Individual error types were handled by codes which I set as constants in the exception classes to make it easier to follow. Since all errors should output an error page, this made it very easy to reduce code duplication within a catch block. It also allowed me to easily handle more errors. Prior to refactoring, I disliked checking for and handling possible issues, since it involved another level of if/then statements and a bunch of code inline which made the main flow very hard to follow. By simply checking for an issue and then throwing an exception which was handled at the end, the main flow of the application wasn’t interrupted by error handling, and I was happy to be more careful and check more things. Hopefully this will result in a more robust application later.

I eliminated most functions. My reason for this was to try and reduce code duplication within main flow of the application. It also made the code easier to read. By writing all of the code as one large block, it was easy to follow the logic, and easier to debug.

This code was essentially procedural and small enough for this methodology to work well. I needed an easily readable, robust, maintainable set of code, and embracing procedural programming helped in this endeavor. If the application were larger, I think it would fall apart, and I would go back to a properly architected OO methodology.

Hopefully, a step forward in my development as a software engineer, and another tool in my proverbial toolbox.