3: Know My Customer

I know my customers, those in the field and those at headquarters.

I'm an engineer; or I was formerly one. Well at least I used to write code for a living. And that gives me insight into a secret engineering credo: we are our own customers!

You see proof of this secret all over the software you use.

Example 1: You click on a button and receive an error message like the following: Function lpzWinRandomFunction returned 0xfe02facd.

Example 2: What should be simple functions (like mail merge) in popular software programs actually require end-users to write "code" in order to get them to work properly (e.g. if/then/else statements, db queries, formatting).

Example 3: Features which have major bugs are left in the software with the excuse that: "It doesn't happen all that often--and the user can just re-start or re-boot. No big deal..."

This kind of stuff is infuriating. It's why software development gets such a bad reputation. Consumers don't tolerate that kind of negligence with their toaster or with their TV. But the industry has been conditioned to tolerate it with software.

We're trying valiantly to be different in our department. Warning: we're not remotely perfect on what I'm going to talk about here. But this is why we have this principle listed: so that we can put it in the forefront of our department's focus.

Good software development starts with understanding one's customer. This can be quite a difficult endeavor. One can always question who the customer is: Is it the Product Manager requesting the solution or feature? Is it his management? Is it the end-user using the feature(s)? And what do we do when priorities conflict among those three. This is a continual struggle for us.

We're doing a couple of things to help with this problem and to better understand our customers.

1) We're dedicating development resources to customers (or portfolios of customers who have similar businesses). We don't actually change the reporting relationship of those developers, moving them to those departments. Not moving them allows us to keep the ability to have a career path and to create centers of excellence in development methodologies, good coding & qa practices, etc. But we leave developers focused on a customer from one project to the next. Critical context is retained as developers continue to understand a customer deeper and deeper.

2) We're dedicating infrastructure generalists to customers so that customers don't have to wade through the technical silos that infrastructure specialization demands. 

3) We're designing iteratively, relying on prototypes. This allows us to have a great idea of what the customer is looking for before we ever start coding heavily.

4) We engage users in testing. We try to take each iteration from our dev environments, through test and staging and into production each milestone. We then ask our users (or subsets of our users) to help us test the bits.

5) We test internationally. This is a hard mindset to change for us. Because the development team is in the U.S., it's easy sometimes to think of the international areas last. We're trying to change that and simultaneously design and ship our solutions in the U.S. and at least a couple of other countries simultaneously. We can't always do it all of the time, but we're doing better at doing a few simultaneously to make sure we iron out localization bugs.

6) We're trying to focus on "listening." It's easy for engineers to be arrogant--to think we know better than others. But that can't be the case. We have to listen or we can't really understand what problems we (and our customers) are trying to solve. Some of the times we have to listen "between the lines," so to speak, where a customer knows that something is wrong, but they aren't quite sure what it is--or what the solution might be. This is an art we practice.

I know it sounds cliche--that we need to "know our customers," but it's a focus that we've needed in our department and one that we're improving upon.

22 comments:

  1. I am surprised there are no comments here yet. Very good ideas. I've seen many bug reports with a message of the type "This should never happen" :-)
    Speaking of bugs/features in the kitchen equipment, though. One time I was pressing a button on a microwave repeatedly trying to see what happens. It eventually responded with an error message that said "Child".

    ReplyDelete
  2. Knowing ones customers and understanding their needs is the most critical part of developing sound IT products. It's funny how often we as IT folks forget this.

    A couple observations on your methods from my experience:

    Method 1:

    I've found most IT resources have a hard time operating in a matrix form of management. If you truly intend to specialize resources in different business areas, it's imperative to put the onus of managing resource and requirement conflicts on the techniccal managers. Try to keep the developers as far from the politics and struggles inherent in a matrix form of management.

    Method 2:

    Great idea! Just be sure the generalists (we call them prduct managers in my organization) have a firm understanding of the technical capabilities of the IT departments. That way they can help the business units "see the light".

    Method 3:

    Another great idea! The industry has shown that classical waterfall methodologies make it difficult to define and adapt to user needs. By protoyping and using an iterative development methodology, you should be able to produce quality products much faster.

    Method 4:

    The one caveat I have here is the need to distinguish between functional testing and user acceptance testing (UAT) in your QA and QT processes. Customers often have a hard time differentiating between bugs and potential enhancements. If not managed properly, a project can stall when a user won't sign off on a product until new features they feel are important are added. I've seen the death of many products and projects due to this conflict.

    Method 5:

    This is always a challenge for US programmers and testers, good luck and let us know how you implement it. I'd love to hear about it seeing as we are looking at moving to a global market with our products.

    Method 6:

    I think we're all guilty of not listening enough...at least my wife tells me that. ;)

    Customer focus is one of the most important and challenging areas of IT. Good luck, and our prayers will be with you.

    ReplyDelete
  3. This is a great blog site, so I subscribed to this blog so I'd get it in my e-mail, which is great, only problem is, the font is so small I can't read it even w/my glasses on. Any ideas? Also, I don't see a link to provide general comments not related to a specific blog entry - possible?? Thanks!

    ReplyDelete
  4. Just discovered your blog today. Very nice to see the Church adopting blogging as a way to communicate. I hope we'll see more of this kind of thing, even down to the membership level (though, I don't know how you'd address the incivility that often comes as part of the blogosphere).

    Anyways, I wanted to ask you whether the Church has found it challenging to know its customers, especially if they are lacking access to regular and/or speedy web access. People in the U.S. often take for granted that we have the technologies that we do. How is the Church getting to know its customers and bridge that digital divide. I know there has been GREAT progress with providing satellite downlinks outside of the U.S. and Canada. But how do you reach Juan Miguel Santos in the Guatemalan highlands? A computer lab in each chapel with a satellite web connection might work. But at that point does it become too much cost for too little gain if people aren't inclined towards using the technology in the first place.

    Very interested to know your thoughts.

    ReplyDelete
  5. The Six Stages of Debugging

    1. That can't happen.
    2. That doesn't happen on my machine.
    3. That shouldn't happen.
    4. Why does that happen?
    5. Oh, I see.
    6. How did that ever work?

    ReplyDelete
  6. Your overall approach is reflective of one of your suggested books: The Inmates are Running the Assylum. For #6, let me suggest that your real intent is to listen, rather to understand. In fact listening can be problematic since the customer often doesn't understand what the problem is. There is great danger in this distinction, because as you correctly point out we often try to impose our world-view on the customer because of our arrogance. But it is an important distinction nonetheless. Without Understanding, you're what Delivering Profitable Value author Michael Lanning calls Customer Compelled.

    There are a number of tools for developing Understanding, but one that I've found particularly useful is Contextual Inquiry and Design. It is documented in the book Contextual Design by Karen Hotlzblatt and Hugh Beyer--or you can ask some of the members of your staff that I know are familiar with the methodology at some level.

    Keep up the great work.

    ReplyDelete
  7. doc - We'll look into it. Thank you.

    Rob - The lack of internet connectivity everywhere makes creating standard, global solutions a huge challenge. Haven't solved it yet.

    jrj - :)

    Sister Phyl - Thank you for the suggestion. We're definitely looking at forums as a way to share information among some of the more technical roles.

    Great feedback, all. Thank you!

    ReplyDelete
  8. Talk about listening to your customers is well and good but acting on what you hear is essential. Take the case of Linux users; we have needed a working Ancestry file maker for at least the last 5 years and as for myself I have requested this several times. As of now there is still PAF for Windows. Are not Linux using members welcome?

    ReplyDelete
  9. Another ward web master here. I also have suggestions from leadership and ward members for enhancements/improvements in regards to the ward/stake website and would like to know where to direct them. I would very much like to see a forum in the future for us. I would especially enjoy communicating with other LDS female techies (we are rare but our numbers are increasing!).

    I would love to be able to implement CSS better when coding the news and information area and the calendar. I can get color and font changes yet would love to add some other tweaks to the information to make it more attractive and stand out more. (i.e. pictures within the body of the paragraph, background images, borders, tables).

    Glad to have found this blog!

    ReplyDelete
  10. Thanks for the inside look at the Church's IT department. As a member of the Church seeing the results of the department in all of the applications we use as church members, I was certain there were some very inspired leadership happening. It's nice to see the details of that inspiration right here on your blog though.

    Keep up the great work! If I were to ever accept employment again, it would probably be at the church so that I could contribute there.

    Speaking of that... are there volunteer positions in the IT department? I am a 22+ year IT veteran with code in orbit and in many medical devices. I'm not interested in a J.O.B., but am always interested in volunteer positions within the church where I can be most effective.

    -James D. Brausch

    ReplyDelete
  11. Joel,

    I have to ask you about your first statement, "We’re dedicating development resources to customers".

    As I do not work for ICS (I have a few friends that do) I have always gotten the feeling that there are deadwood in positions like this. Chuch IT has been notorious as well as government work for having employees that have stuck with this one siloed job for years and never advancing in their career. How are you planning to address this problem? I would think that shifting technologies every couple of years makes it hard for engineers to master their skill. The two are quite different problems in my mind, mastery of skill, stagnation in duties.

    Sorry for asking such a pointed question, but this blog has helped to answer a lot of questions that I have had for some time now.

    Rolf-

    ReplyDelete
  12. Jack,

    I recently had success with Ubuntu Linux and installing/running PAF with Wine. You can also use Cedega.

    Good luck!

    ReplyDelete
  13. As long as we're making requests, any idea when or if the financial and membership clerk computers in the U.S. might get Internet access? I know there are concerns about misuse, which probably answers my question. But it would be nice when working as a membership clerk to be able to do a quick search for individual addresses and phone numbers at one of many people search sites. As it stands now, I have to make a list of individuals and then go home to research their whereabouts, call them, and then return to re-key that data.

    Maybe filter all sites except the people searching sites. :)

    Just a thought.

    ReplyDelete
  14. Dear Joel,
    I am fascinated that you are going to have an open forum to explain to members about the computer processes that go in to keep track of records and other purposes of the church. I second Joel and others with the painful realization that if I do not use Windows, PAF will not work for me. I use Linux and Mac OSX. There should be something like PAF that will work on other systems than Windows since there are many users of non Win PCs. Thank you for the open forum. We are listening!

    ReplyDelete
  15. I found this blog quite by accident. I can tell you that I am one of those customers who do not understand computers well, but can use the programs. In using the LDS.org website, I tend to get very frustrated, because I can't find things that I need to find. For example, I wanted to get a copy of the Living Christ in Spanish. How to search for it? Using your website's search, I couldn't find it. I eventually found it in the shopping category, but it was too small to read. I ended up going out of LDS.org and using a Google search. The website needs a general search. It is hard to figure out where the meetinghouse locator is unless you know exactly where to look and this is often the case for many of my needs.

    ReplyDelete
  16. Thanks. Like James, I'm interested in working for the Church, but I am considering full time employment. I encountered a full time spot in your job database, but it lists "North America" as the location. Does that mean that the Church allows some of its web and IT managers to work out of their homes?

    As I am currently living in Chicago, that would be something I'd be very interested in. I have a good broadband connection and more technology on-hand than I probably should have. Would just need to put up some french doors to keep the kiddies out of the computer room while I'm working. :) My resume is in your HR database now.

    ReplyDelete
  17. Hello Rob. We don't today allow inter-state telecommuting. Thanks for your interest and for applying online!

    ReplyDelete
  18. Hello again Pops. We do use focus groups for applications, and are starting to do it more and more. They have to be used carefully or design becomes "design by committee" and good usability is mistaken for good discoverability. We are working on tools for allowing feedback from within the application for all of our applications.

    ReplyDelete
  19. Because of the slow connection speeds streaming video doesn't work very well here in American Samoa. Would it be possible to archive General Conference sessions and firesides as downloadable Windows Media files like the Feb 2006 Worldwide Leadership Training. That way I can download and watch with out constant buffering.

    ReplyDelete
  20. Since I'm here, I'll add this thought -

    If found scriptures.byu.edu a phenominal tool in doing gospel research and seeing what the modern church leaders have said about a specific scripture and how they have used and interpreted it. unfortunatley it is a well kept secret. Could you/someone in your team help to publicize it, make it more readily available?

    Mike

    PS are there other similar well kep secret resources available?

    ReplyDelete
  21. I spend a lot of my time making sure that our project managers understand who their customers are. This is a very hard concept for many technical (and non technical) people to understand. During my Six Sigma Black Belt training, the instructor that I had was fanatical about making sure you understood who ALL the customers were. I have always remembered this and always try to teach this to others. I have also found this is a good concept to apply to all aspects of life including Church callings.

    ReplyDelete