20040302MarcLaporteInterview
Interview with Marc Laporte (Tiki CMS/Groupware)
Language: English
March 2, 2004, 1700h CET, interviewer: Stefan Haefliger
Link to the audio file (MP3)
Below is the original transcript. It has be corrected and hyperlinks have been added.
S: [intro, presentation of project, research goals, interview format] could you start with telling something about how you got involved in this project?
M: i've been in websites for several years as my job, i was doing classical websites with software installed on your computer, loading the files, and i was doing some websites for non-profit organizations for which i was volunteer, and often in those organizations i ended up having to do all the updates myself. and i felt it was becoming time consuming and it wasn't something that was going to get better. if people are using the website a lot i was going to have to spend more time. i wanted something where i could, once installed, people could take ownership of the website and of the project and contribute themselves, and have me out of the loop. i tried out different software, looking what was available, found some cms, phpnuke
S: you're basically involved in everything right now as an administrator?
M: yes and no. i'm not a programmer, i just hack around and i'm able to find bugs and correct bugs, i'm not a programmer per se, i'm an IT manager. that's why i really want to focus on getting more developers, that's something i don't do and typically in os projects there's not much marketing done and i decided we had a really good project and needed to get it more known. if people would know about it they would join and make the project better. so i focused on getting more and more programmers on board, normally in os it's release early, release often, what i try to implement is recruit early, recruit often. anytime somebody comes up with a patch i say, why don't you work with us in the CVS instead of sending patches. people were sending patches but weren't getting any feedback, it was just laying there. i felt like they should be a closer part of the team.
[10:55]
S: can you talk a little bit about your experience in the project, when did you observe code to have been imported, and what type of code is being imported and what have you taken from other projects?
M: i think that depends on where you come from. as i'm not a programmer and it's not something i can do easily, my first reaction is to get, well somebody has done it before, how can we get somebody else on the team to work on it or use their experience, but when for programmers sometimes they feel it's easier to do it themselves, if they like programming, that's often what happens, the programmer's first reflex is how could i write it, and it's probably easier and simpler for them, and for me it's, why don't we get a partner to collaborate. most of the time when we want new features, and everybody agreed on, we want tiki to be able to be used by different people, different websites, the long debates if we should include a third party or write our own, and sometimes i was in favor of using another php forum, but the programmers explained to me, look it's too integrated, too complicated, it's better to write on our own. and try to link the wiki syntax. and i just trust their judgment, and say ok. we looked at that option and it looked simpler, easier, better in the long term to do it that way.
S: do you have an example for that?
M: there was cases where it was better to have a third party program, ok, for example JGraphpad
S: what type of format does this have: is this LOC, a project or a library?
M: it's another open source project, in java, they have an applet version and a desktop version, the data is saved in xml, and that's how it's possible for the information to be exchanged between the two programs. another good success story is with the HAWHAW
S: is that a project of itself? and how is it spelled?
M: h-a-w-h-a-w. for all the partners you can look at: http://tikiwiki.org/Tikipartner
S: what is about the time frame that you talked about before, when you joined, and this just happened a few months ago. were you talking about the last two years? just to have an idea.
M: the project started in october 2002, it's a very young project. there were lots of releases in the first few weeks: 8 releases in the first 10 weeks, something that impressed me a lot. then i started getting very involved somewhere in may 2003, when i started to be very active, almost full time. somewhere in june, mose also became very active, and there was al brown, and we started working on the 1.7 version, at that time luis was becoming less available.
S: the examples you gave me were basically whole projects, that you got to partner, integrate and work together. are there examples of smaller pieces, modules or LOC?
M: yes. the basic foundations of tiki, we're using php, that's our programming language, the main thing, for the template engine we're using smarty, that allows tiki to have any "look & feel" you want.
S: what does that mean? what is a template engine?
M: smarty template engine
S: what does a template engine do?
M: it separates the business / application logic from the presentation. it permits you to have graphic artists which working on the "look & feel" of the sites, working on the templates and not touching any of the programming code, so they can't mess anything up. they can only play with the "look & feel". on the other side, the programmers can concentrate on the php files where they can work out the business logic.
S: smarty, what type is it and how is it being integrated?
M: i think it's the most popular and biggest template engine in php. it's pretty big.
S: you're basically reusing it and it's used by other projects and comes from the php distribution.
M: mhm. it's used by a lot of projects. this is something else that helps. we have quick development, we've been using very good components. the other main component is the database layer. we used to use pear:DB, and now we use ADOdb
S: what was your reason to change?
M: we wanted really to have database abstraction, it was there in theory in tiki 1.7, but it wasn't really tested and not all the queries, and wasn't done everywhere in tiki thoroughly and properly so it worked on different databases. mose and Florian (redflo) from Germany, decided to pick this up and make sure we have database abstraction, and did all kinds of research and tests on what abstraction layer were the best, there were about 5 available, and the best ones seemed to be pear:DB and ADOdb, and after lots of mailing list discussions ADOdb was picked, then flo and mose spend several weeks rewriting all the queries in tiki to make them work with ADOdb, and that's why we have database abstraction today. and that's also used by lots of different applications, postnuke also e.g. uses ADOdb.
[21:48]
S: can you talk about how you learn from other projects before you program, if you go to see how other projects they do it?
M: i personally do that a lot. in the case where the other project has the same license as we do, what's really great is that we're allowed to copy their code as they're allowed to copy ours. and what's really interesting is not the project with the exact same license in terms of user interface, and what features are available. so that was very interesting. so typically, that's the role i have been playing, a bit of a product manager role. for example calendar. i think it would be a good feature for us to have: a good work group calendar. so i have been looking at dozens of os applications and listing all the features that they have and making one master to do list: this would be the perfect calendar. In terms of discussions with other projects, I think there are way too many open source content management systems. There are hundreds of open source CMSs in php. I think that's a waste of talent and energy, but that's how it is, what can you do? But hopefully, instead of starting their own little project, people will join larger projects and we'll have more high quality projects. What I try to do is to have discussions and exchanges with other projects. e.g. the Horde
S: (some talk about OSCOM
M: There was a conference in boston
[27:59]
S: when you compare calendars, is it on the level of features that you do that, or on the level of the code: how did they solve this?
M: i always look on features, personally. i figure what i wanted to do and i just throw it to my team. and they figure out what's the best way, i trust their judgment. people doing their job, they should do it how they feel they should do it. i don't really get much involved in that.
S: over the history of tikiwiki so far, what do you observe how the importing and the acquiring of partners develop? was it more in the beginning, more right now, do you observe a change?
M: there's definitely a difference. i've always been interested in having partners, for the reasons discussed. what's different with time, as tiki is getting bigger and more known, it's a lot easier to start a partnership. recently, we started using phplayersmenu
S: basically, there's your effort towards that, but the age of the project: did it come down to having more partners in recent times than when you started?
M: I'm not sure. because, earlier it was more like components: smarty, php, ADOdb, more stuff which was in the project, the low level, very programmer. stuff which we have now is more stuff which touches the user, more high, interface level. phplayersmenu, we have something now for the calendar, a javascript interface calendars. we try to get as many as we can – as soon as we need one, we look what's available. once you've done a feature, you can't redo it. in one sense i feel like the number of partners is slowing down, but it's also because it's hard to add when we had 8 releases in the first 10 weeks, it's tough to keep up that pace.
S: how would you say the license matters? is it important for importing knowledge?
M: that's a big point right now. we use the LGPL license, why i'm not sure that's how it was started and now that's the way it is. i don't think it's very realistic to change it, because there have been 100 people contributing code so it would have to get everyone to agree to change it. i'm not saying we want to change it, but it's not possible anymore. the difference between LGPL
S: because yours would become GPL as well.
M: exactly. that makes it a bit more complicated for us. e.g. our webmail, i would like us to have a really good webmail interface. there are a few good projects, SquirrelMail
[34:39]
S: how does the language impact on what you can use from other projects?
M: you mean php?
S: yes, yours compared to others
M: i don't have much experience in the other ones, but why i chose tiki, in general when i look at applications, php looks like the ideal language. it's easy to use and fast and lots of people using it. so it's a good choice, and a definite advantage. it's easier to find programmers, easier to do patches, i think it's one of the factors why we're doing so well.
S: is there another factor you could think of that makes tiki particularly open for others and for features to be included? the size e.g.?
M: It's a bit like the highgrade sausage. (Advertising: "Everybody likes it
because everybody eats it and everybody eats it because every body likes"), where the more people using it it gets better the more people are using it. there's lots of really great projects out there, we don't know how many people are using which project, theoretically it's probably 80% of the people using 20% of the projects. since there's not much marketing done on os projects, lots of nice things don't get known. what was tough is getting past the initial point of getting registred at all the websites and getting recognition. it's a long process and not really dependent on you. you can do a good job on your code, but it doesn't mean it's known and there's reviews. one of the important things was version 1.7, that was like the first major version. up to 1.6. not that many people were using tiki because it was so new, maybe a few 100 sites. version 1.7, it was the first real big version, high visibility, and lots of features, so it was getting interesting. the fact that there's a wiki makes a big difference compared to all the other application. if you look at postnuke, zoops, geeklog, truepull, there's like dozens of really good projects but not many include a wiki. there may be a php wiki plugin or module, but it's not really tightly integrated, so the number of cms projects which really have tightly integrated wiki is pretty small. a year and a half ago, when it was called tikiwiki, but then it had so many features i felt it had to be called something else, so in version 1.7 we called it tiki cms groupware. i asked on the mailing list, and we had a few exchanges, but lets call it, we finally decided to call it tiki cms groupware. i decided that people don't really know what a wiki is, and those who do, we don't want them to think we're just a wiki. this is good, let's focus on the cms groupware. so an application that combines both in one is very interesting. there's lots of nice groupwar packages but not so many cms packages, packages that include everything, there's not that many. a year later, now wikis are getting more and more known, it's actually positive to be a wiki, in terms of marketing it becomes a differentiating factor. a look at it as market share and i want as many developers as possible. they have needs and they want a tool, my goal is to get them as much as possible to use wiki and to contribute their patches to tiki.
S: is there anything you could think of, what project- related factors influence the reuse of code and features?
M: it could be stuff like personal contacts. e.g. when we discussed using ADOdb, one of the reasons why we finally chose it, is we were in contact with one of the developers, because we were working on something else relating to ADOdb, and tried to get another module included. we were interested in one of the things he was doing, sometimes you don't have much to go on, so the fact that we liked one of the things he was doing, the other is probably also interesting. that was a factor. another example for contacts, we have a maps module now in tiki 1.8. the person who was working on an independent map project, and he was friends with one of our developers, so that makes a lot easier, we didn't spend that much time looking at different map projects, he had one, he know our team, so that's how it happens.
S: does that mean the governance structure, basically the management style impact on that? have you made such an experience.
M: i don't know if i can call it management style or governance (laughs)
S: how you organize the project, or how people join...
M: it's very much a meritocracy. anyone who asks has access to the code. they just show us what they can do. one of our rules is, you can add anything you want as long as you don't break anything. and you make it optional. that's one of the things in the philosophy of the project, which makes it interesting for people to have projects, they know that if they need something specific, they just have to make it as generic as they can and add it to the code as an option. and it's in the code. and they don't have to worry about synchronizing versions later, they can just follow it, and somebody else may need that code at one point. obviously, this makes tiki very big. it's a big project, program, like a big boat. it's longer to steer, there could be performance or security issues, but so far we prefer to have it open and let people prove what they can do, and if there's a problem we will teach them or learn from them and correct. but so far it has worked out great, and i don't see many changes in the style. this is my first time in an os project, and at least two persons in the project, luis who started it, a very talented and experienced programmer who's written books on php, when he wrote tiki at the beginning, he did a great job at the basic infrastructure, and when mose joined and worked on 1.7. mose has lots of experience with os projects, and it wasn't just the code, but the development philosophy, how many branches we do and how we work in CVS, all that experience is really helping out. and the irc chatroom is also excellent, 24h /day, if you have questions, just pop on there and ask – somebody knows the answer. the people are very friendly. people are looking at different projects try a few out and come to our chatroom and get an answer, that could be the difference for them choosing tiki. since tiki has gone public, i could say, with v1.7. and the large distribution and diffusion, there's been lots of work on installation scripts, what used to be difficult to install, but since we get lots of support requests, the developers really worked on the install scripts to make it more robust and easier to use. that makes it easier for people to try it out and learn.
S: could you recommend me another programmer in tiki who i might also talk to?
M: i think you should speak with mose. we're six admins on the project, luis was the head developer, and for the last few months, mose has been the lead developer.
S: [thanks and outro]
