In 2015, I finished my transition from being a stay-at-home mom to working full time. I am now a software developer. I enjoy getting to work on problems and getting the tests we write to pass and I’m on a great team.
When we work on an app, we are given a list of features that the product manager wants, for example, “As a user, I want to be able to sign in and see my name in the navigation bar next to the log out link.” It’s small, and it’s straight-forward. At least at first.
In a recent app, we were dealing with a problem like the feature above. Our “user” needed to fill out a form and we needed to display the name in some tables on the admin side of the app. Name formatting is an interesting one. You can start with “Last name, First name.” And that works for probably the majority of your users. But what if a person has two last names? Or a long hyphenated one: will it fit into the table? If a person has two last names, do you display them both or choose the last one no matter what the user prefers? Can your database store special characters like apostrophes and hyphens?
Many problems are like this. We get the basic case set up, but then spend 80% of the time on edge cases: the things we don’t plan for and cause bugs. What if the person clicks on the text instead of the picture? Should the picture be a link? What happens if they click on the edge of a table instead of the table cell? What if we want 700 pieces of data from an API, but only gives us the first 100? How can we get the other 600? Will loading all these icons slow our page to a halt?
As I was working one day, I thought about edge cases and how they are what we put most of our effort into. It’s the stuff that we think won’t ever happen, but actually does happen, and enough to render our apps unusable or frustrate the user so much they won’t come back.
When we talk about the “ideal” (life, family, choices) at church, I’ve heard, “We have to teach the ideal” as if addressing the exceptions will mean the “ideal” will be forgotten somehow. And this turns into the teaching of the ideal for 3 hours every Sunday from nursery to Relief Society.
But let me be honest: I think we have the “ideal” down pretty well. We know what it is. It’s solved. In the app example, it’s the easy, “Last name, first name.” Let’s take that quick solution and start looking at the edge cases. It’s going to take us a bit longer to address those.
As a developer, I could turn to my product manager and say, “Let’s just accept user emails which are gmail accounts because it’s easier to code and will save us time” (I actually use apps like that, though I’ve not programmed one like that). This might mean I finish this feature quickly and can move on to the next feature, but I do that at the cost of alienating lot of potential people who could use the app and we shrink the customer base. At the end of the year, we might have lots of apps in our “ideal” world (look at our portfolio and how productive we are!) but most of them would be unusable in the real world.
As a teacher at church, I can turn to my young women and say, “A temple marriage is the only way to true eternal joy because you can’t enter the celestial kingdom without it and so you should make that your life’s goal.” And the result would be that my lessons are neat and follow the manual well and have lots of general authority quotes to back them up. But I do that at the risk of alienating the girls and the risk of outright lying to them. What happens if one of them have a family who is not sealed in the temple? What if they have dreams and goals that would bring them happiness and end up neglecting them because I promised true “joy” though marriage? What if they never get married? What if they get married to a person who hurts and abuses them? What if they have a baby outside of marriage and have to wait to get a temple sealing? Suddenly, very few of the girls will relate to my lessons. Or they will relate right now because they’re sure their future self will have everything in place, but then it doesn’t work out that way. Ultimately, I’ve failed at preparing them for living the gospel as adults in the messy world of life.
What if we spent 80% of our time teaching to or discussing our exceptions and edge cases? What would church look like? Sound like? I imagine more people would feel welcome and come to church.
Start counting the number of people who fall under the “exceptions” category in your life. I imagine it’s about 100%. After all, we have only one ideal person: Christ. This means in some way, every single person is an edge case and flawed human being. I’d like to propose we teach more (only?) to the edge cases and ditch the ideal. Let’s talk about how to handle life and turn to God when things aren’t “working.” After all, that’s the only state our spirits are ever in.