So Don, what's your background with computers and programming?

   I've been involved with computers and programming since the early
   80's.  I started writing programs in college for VAX/VMS and Unix
   systems using Fortran, Pascal and C. My first job out of college
   was developing software used in the design of VLSI chips.  For
   about the past 13 years, I have been out of software development,
   designing VLSI chips.

   Since leaving software engineering, most of my programming has been
   in hardware description languages (including Verilog and SystemVerilog)
   and scripting languages (such as Perl and Python).

   About six years ago, I started the GRAMPS project and have been
   involved in Python coding ever since.

Is GRAMPS the first piece of software you have worked on?
  - If yes, how did you manage to create such a comples piece of software first time? 
  - If no, What other software have you worked on?

   GRAMPS is the first Free Software program that I have worked on.
   Early in my career, I developed specialized software for the
   development of VLSI designs.

How did you learn to program and how long did it take?

   I'm pretty much a self-taught programmer. Other than a college
   course in Fortran and another in Pascal, I had no real formal
   training. I learned programming from experience, working with other
   people, and reading books. 

   But after 20 years, I'm still consider myself to be learning.

What gave you the inspiration to create a genealogy program?

   The inspiration for GRAMPS came from my father. He was researching
   the family tree, but he was having considerable trouble with
   Windows and the genealogy program he had been using. He wasn't able
   to convert to Linux until he had a working genealogy program. So,
   figuring it would be easier to write a genealogy program than to
   try to fix Windows, I started working on a program. After I had
   something that was basically working, he convinced me to release
   it.

How long did it take you to create the first stable version of GRAMPS?

   Well, a lot depends on what you mean by "stable". It took almost 
   three years to release the 1.0 version, but people were using it
   very successfully for a long time before that. The first release,
   version 0.0.1, took about two months to put together.

What advantages does GRAMPS have over other genealogy software? 

   In the true Free Software style, GRAMPS makes sure that you own
   your data.  Most programs lock your data into their own,
   proprietary format. At this point, you are at the mercy of the
   program for access to your data.

   While most genealogy programs can export GEDCOM, they usually do a
   poor job of export. This is due to GEDCOM being an inadequate
   format, and programs developing their own, incompatible
   extentions. Quite often, some of your data is not exported, making
   it impossible to transfer all of your data to another program.

   GRAMPS will export to GEDCOM, but it will also export to an XML
   file that contains all data in the database. We even provide an XML
   DTD.

How would you rate the success of GRAMPS, and where would you like to see it 
going? Are there any specific changes in GRAMPS you would like to develop?

   A lot depends on your definition of success. GRAMPS is a pretty obscure
   program compared to Firefox or Evolution. However, if you consider the
   "target market", GRAMPS is well known in the Linux genealogy community.

   But my definition of success would be - "Is the program what you
   expected it to be?"  And I would have to say that GRAMPS has far
   exceeded any of my expectations.

   GRAMPS is maturing, and the feature set is settling down. This will
   allow us to spend less time on database and GUI issues and more time on
   report generation and data analysis.

How do you find so much time for a product that obviously gives you great 
pride, but no financial return?

   Well, I have a very understanding family. My wife has gone back to
   college, so I need to have something to do while she works on her
   homework :-)

   My ability to work on GRAMPS varies over time, depending on work
   hours and family time. Usually, when I get too busy, other
   developers can help take up the slack.

Each release of GRAMPS has a name taken from lines in Monty Python show 
script, was there a particular reason for choosing Monty Python?

   Many on the development team are fans of Monty Python. Since GRAMPS
   is written in the Python language, it just seemed appropriate. And
   you have to admit, "Monty Python and the Holy Grail" has to be one
   of the funniest movies of all time.

GRAMPS is a powerful database but has been getting more complicated for new 
users. How do you balance simplicity and useability for new users with the 
demands of database integrity and functionality for seasoned data handling 
genealogists?

   We have created a fictional "Aunt Martha" who we use as our target
   audience. Everyone has an Aunt Martha in their family. She is the
   computer user who doesn't know a lot about computers, and really
   doesn't want to know more. She just wants to use a few things on
   her computer without having to invest a lot of time.

   Every feature that we add goes through the "Aunt Martha Test". We
   ask ourselves if Aunt Martha could reasonably be expected to
   understand the feature. If the answer is "no", then we have to ask if
   the feature should be included, if there is a way to simplify the
   problem so that she could understand it, or if we could handle the
   feature in such a way that she would not have to worry about it.

   In the GNOME tradition, we try to offer reasonable defaults. Many
   times this is enough to handle complex issues. For most people, the
   default operation is just what they want, and they never have to
   worry about anything beyond that.

Do you have a preferred Linux Distro to work in?

   All the machines in my house (six at last count) are running
   Ubuntu. My server runs 6.06 LTS, and the rest are running
   7.04. I've been running Ubuntu since the release of 4.10.

How do you cope with producing so many translations into other formats for 
other Linux distro's?

  [ Note: I wasn't really sure if this question was asking about
    language translations or packaging for different distributions.
    So, I provided two answers, and you can pick based of what the 
    question really was. ]

   Language translation answer:

      We have a good team of translators on the project. GRAMPS is a
      rather difficult program to translate, since it generates text
      based reports.  The translators put in an amazing amount of work
      to provide translations.

   Packaging answer:

      The official release out of the GRAMPS project source code, not
      any particular installation package for any distribution. We have
      volunteers to package the program for different distributions, 
      such as Ubuntu, Debian, Fedora, SuSE, and even Windows.

GRAMPS has been ported not only to various Linux distros but to Mac and 
Windows variants. How do you feel about your program, being expanded for 
other distros?

   GRAMPS is released under the GPL. This allows people to port it to
   whatever platform they desire. While I personally have no interest
   in either Mac or Windows, I see nothing wrong with these ports.

   That being said, I have noticed a general difference between
   Linux users and Windows users. Linux users are more likely to
   interpret "Free Software" in terms of "Free as in speech". They are
   more likely to participate in the project and help us improve the
   program. Windows users are more likely to interpret "Free software"
   as "Free as in beer", looking for a program that doesn't cost
   anything. As a result, they do not tend to participate as much.

Are there many difficulties adapting the system for different cultures and 
languages, when the family references are different across the world?

   Much of the complexity in developing GRAMPS comes from attempting
   to handle all the variations around the world. For example,
   something as simple as a name, is in reality, very complex. In some
   cultures, a name is displayed in the format of GivenName
   FamilyName, in others, it is displayed as FamilyName
   GivenName. Some cultures use patronymic names, other don't. To
   properly handle names, we had to develop a highly flexible system
   which allows users to customize how they want to display names.

   In other cases, we've had to develop specialized code for different
   locales. An example of this would be the Relationship Calculator.
   In many English speaking areas, there is a fine granularity of
   relationships between cousins. You will find terminology such as
   "second cousin once removed". Other cultures do not make that
   distiction, but will instead differentiate between a male and a
   female cousin. 

How do you manage a team of developers, across the world to produce a cohesion 
in developing a single product?

   Our IRC channel (#gramps on irc.freenode.net) has been key in
   communication between developers and users. While differing
   timezones can make the IRC channel a bit difficult at times, it
   offers many benefits. Not only are we able to get good discussions
   going on in real time, we also have a chance to get to know each
   other. Once you get to know each other, it becomes much easier to
   work together.

   An important thing for any project is to make sure that you put
   aside your ego, and work towards a concensus. Usually, a bit of
   discussion and a bit of compromise produces a better idea in the
   end.

How difficult is it working with other formats such as GEDCOM and other 
genealogical programs when conversion into GRAMPS is requested.

   The closest thing to a standard format in genealogy is GEDCOM. But as an 
   interchange format, it is very poor. The format was designed by the LDS
   Church to handle the needs of the LDS Church. However, there are quite
   a few things that GEDCOM cannot handle. 

   Most commercial systems have closed formats. We do not try to reverse
   engineer these formats. There are quite a few programs out there with
   quite a few different formats. It is not practical to try to handle each
   revision of each proprietary format.

   We would prefer a standard genealogy format the resolves the
   deficiencies of GEDCOM. Unfortunately, this does not exist. In the
   past, we tried to get other projects interested in working towards
   a common interchange format, but we found little interest. 

You have spent a significant proportion of your time developing GRAMPS, which 
is licensed under GPL. Do you ever feel your code, even if used within the 
licence, could be developed and promoted by another team, calling it a new 
name and taking the spotlight away?

   I'm not concerned about this at all. If someone else could take the
   code and improve it, while adhering to the GPL, then more power to
   them. This only benefits the user. After all, this is what Free
   Software is all about.

   This would not be unlike the Debian/Ubuntu relationship or the
   Ubuntu/Linspire relationship.

Do you have a strategy to recruit more developers?

   Even though we need addtional help, I don't actively recruit
   developers. Several years ago, we attempted a bounty program, with
   no success. This has led me to believe that a person has to be
   self-motivated to be a valuable contributor to a project.

On the system as a whole, the program developers and community, what would you 
say your strengths and weaknesses are?

   I would say that our strengths are a good code architecture and a
   good community.

   Our biggest weakness is a lack of developers. GRAMPS is a
   complicated program, and requires a lot of support. Quite
   frequently, the support demands are overwhelming.

Much talk has been made about the strength of the Ubuntu/Linux desktop now, 
especially compared with the commercial Windows Vista. Do your family use 
Linux or is it hard to promote it in a currently Windows dominated 
environment?

   I have used Linux exclusively for about seven or eight years
   now. My wife and son both run Linux, reverting to Windows only for 
   specific programs (AutoCad and iTunes).

   Linux would be easier to promote to your average Windows user if a
   wider range of programs were offered. Linux has more than its share
   of music players, IRC programs, and RSS aggregators. But these aren't
   the programs that appeal to your average Aunt Martha. And until Linux
   developes a wider range of software, it is going to have a limited
   appeal.

   If you walk into a store that sells software to the masses, you can
   get an idea of the kind of software that Linux is missing. About a
   third of the software consists of games. Another third consists of
   virus checkers, firewalls, anti-spyware, and other system
   utilities. The remaining third is the interesting set. This
   category consists of genealogy programs, greeting card programs,
   recipe programs, landscape and home design programs, and similar
   programs. And regardless of what you think of these stores, they do
   know their customer base and what that customer base desires.

   Part of the reason that GRAMPS was created was to help fill this
   void. My personal opinion is that if Linux wants to attract a wider
   base of users it needs to widen the types of programs that it
   offers. 

What programs and development systems do you use to produce GRAMPS?

   GRAMPS is built using Python, PyGTK, and Glade. As far as
   development, about the only tool I use is Emacs.

And finally; what advice would you give to a budding programmer?

   Make sure you are programming because you enjoy programming. Be
   willing to put aside your ego, and listen to others. Not only will
   you learn more, you will also discover that the ideas of others can
   really improve your project.

----

full circle would like to take this opportunity to thank Don for taking the time to sit under the spotlight and be grilled!
