Agile FAQs
  About   Slides   Home  

 
Managed Chaos
Naresh Jain's Random Thoughts on Software Development and Adventure Sports
     
`
 
RSS Feed
Recent Thoughts
Tags
Recent Comments

How can we eat our own dog food?

While everyone agrees with the value of eating your dog food, some people claim that this principle cannot be applied to all software industries.

Let’s take the Medical Health Care Industry. Who should build software for Doctors and Nurses to be used in the hospital? Its very unlikely that Doctors will start building software in the side. How do apply this principle here?

What we have today is a bunch of people trying to build software for the hospitals (most of them have not clue on how a hospital operates, those who know a little become Subject Matter Experts and take charge). Similarly there are lot of other industries.

You ask their users how they like the software and you would know. Its not that the development team did not do a good job of building the features right or the business did not do a good job of articulating what they want well. Its just that this model is setup for failure.

  • The Agile community realized that, they need to bring the users in and collaborate with them much more.
    • The Scrum community identifies one person or a group, call them Product Owner. They are part of the planning meeting, daily scrum and even the retrospectives & demos. Some (0.1%) of teams are able to get actual users during their demo. Are they confused about the PO being their User?
    • The XP community demands an onsite customer who can guide the team not just during planning, but also during execution. Again the same confusion exists. But the situation is slightly better.
    • Having said that, I really appreciate XP for pushing the knob on automated testing. Automated Testing (esp. Developer testing) is a great way to eat your own dog food. Remember how useful your API tests have proved to be. Tests are clients to your code and they consume your code by acting as client.
  • The Design (UX) Community are lot more User focused and tend to spend more time with the actual Users, but that’s very sporadic
  • The Lean community have realized that they need to have the development team sit with the business in their work area. They have realized that there are a lot of important lessons to learn from the context of the work place.

Personally I think we need to go way beyond this. If you look at some organizations (esp. Web 2.0 companies and Open Source Projects) they are their own Users. We can certainly learn something from them.

How can we do this? Here are some ideas:

  • At least to start with, have the team members take a formal education in the domain they are building the software. Do some case studies and then, spend quality time with the Users (actual Users). Not just interviewing them, but actually working with them (at least shadowing them or being their apprentice).
  • Educate the Users more about Software development process and have them work with the team for at least a week or two to under it.
  • May be hire people who have actually worked in the field. (You want to make sure their knowledge is up-to-date and they actually know the business really well). Also very important to maintain a good ratio. 1 member for a 10 people team is scary.
  • Build tools that can help the actual end users build/configure their software. As developers we build tools which we use on our own projects. Same tools (which were driven by eating their own dog food) can now be used by others to build their software. For years, creating a web presence for a company was a specialist’s job. Today with Google Apps and others, anyone can set up a website, add a bunch of forms, set up email accounts and all that Jazz. The line between a specialist’ role and a business user is blurring. Coz we have the tools to help. Esp. tools built by people for their personal use.
  • Again all of this can get you one step closer. But nothing like eating your own dog food.
  • shahkalpesh

    I think, your analogy of healthcare industry making the software for its own use in the sense of “eating one's own dog food” is misplaced.

    Medical Health industry should not be worried about its own software development. They should do what they are good at & try its use with its own people first.

    Software development is not that industry's prime job.

    http://en.wikipedia.org/wiki/Eating_one%27s_own

    This relates to software industry more because the need of writing software comes from the deficiency one faces/d while using existing software that didn't meet the needs completely.

    And people won't like my software, if I didn't use it enough for myself to be critical of it.
    That is the reason we see lot of companies releasing software frequently, beta invitations etc.

    Another example is that – Many processes (whether govt or private) are established by people who might not have clue of shortcomings or enhancements that can be added. Processes are setup top-down with very less chance of review and changes.

    The famous Toyota example is “eating one's own dog food” (in a related sense) where workers decide in a responsible manner as to when to stop the process, suggest the changes.

    Before this came into effect, it wasn't “eating one's own dog food” (the people who created the process weren't working as part of the actual line of assembly).

  • shahkalpesh

    I think, your analogy of healthcare industry making the software for its own use in the sense of “eating one's own dog food” is misplaced.

    Medical Health industry should not be worried about its own software development. They should do what they are good at & try its use with its own people first.

    Software development is not that industry's prime job.

    http://en.wikipedia.org/wiki/Eating_one%27s_own

    This relates to software industry more because the need of writing software comes from the deficiency one faces/d while using existing software that didn't meet the needs completely.

    And people won't like my software, if I didn't use it enough for myself to be critical of it.
    That is the reason we see lot of companies releasing software frequently, beta invitations etc.

    Another example is that – Many processes (whether govt or private) are established by people who might not have clue of shortcomings or enhancements that can be added. Processes are setup top-down with very less chance of review and changes.

    The famous Toyota example is “eating one's own dog food” (in a related sense) where workers decide in a responsible manner as to when to stop the process, suggest the changes.

    Before this came into effect, it wasn't “eating one's own dog food” (the people who created the process weren't working as part of the actual line of assembly).

  • Pet Shop18

    Excellent post about pet product helpful site. Pet shop18 is the best place for online shopping in India where you can buy online dog products,pet foods and more online pet supply with fast delivery.
    Online Pet Foods in Delhi


    Licensed under
Creative Commons License