Loading...
 

Modelo

Esta página visa explicar o modelo Tiki e responder:

  • O que é o Tiki e no que ele é diferente?
  • Como e porque ele funciona??
  • Veja também Tiki

     Plugin disabled

    Plugin translationof cannot be executed.


Audiência:

  • tomadores de decisões tecnológicas
  • desenvolvedores
  • qualquer um que se pergunte: O Tiki é uma boa escolha para o meu projeto?

Tiki tem um modelo de desenvolvimento que é diferente da maioria se comparado com outros projetos. (realmente!) Resumindo: Um aplicativo feito do modo wiki e do jeito

 Plugin disabled

Plugin translationof cannot be executed.
.


O "modelo Tiki" consiste em:

  • Comunidade Wiki Aberta (do-ocracy) (Semelhante à Wikipedia, mas voltado para o desenvolvimento de aplicativo ao invés de conteúdo)
  • A participação no código no Jeito Wiki (500+ with full write access to the complete code base)
  •  Plugin disabled

    Plugin translationof cannot be executed.
    (lançando 2 principais versões por ano com Suporte a Longo Termo para as versões (LTS), semelhante ao Ubuntu)
  • O código do base é do tipo Tudo-em-um (1 000 000 linhas de código, com tudo incluso. Cada característica é opcional)
    • Lançamentos próprios sincronizados (todas as características têm que estar prontas ao mesmo tempo)
    • Metade do código vem de outros projetos tais como Zend Framework, JQuery, Samrty, etc.
  • Muitas características, mas sem duplicação (no wiki, conteúdo similar / relacionado são combinados, o mesmo se aplica as características)
    • Tiki é

       Plugin disabled

      Plugin translationof cannot be executed.
  •  Plugin disabled

    Plugin translationof cannot be executed.
    (Tiki é uma comunidade recursivamente desenvolvimento um sistema de gerenciamento de comunidade)



Vídeo

Image
Marc Laporte, um administrador de longa data do Tiki e membro do conselho da Associação de Software da Comunidade Tiki é entrevistado pela the 146th FLOSS Weekly netcast, com Randal Schwartz e Simon Phipps, atual Presidente da Iniciativa de Código Aberto [Open Source Initiative (OSI)]

Model

Wiki community

It's a Do-ocracry. Everyone is a volunteer. Things get done because someone like you decides to take the time to make it better. Join a

 Plugin disabled

Plugin translationof cannot be executed.
!

Participate in a

 Plugin disabled

Plugin translationof cannot be executed.
!

Wiki way participation to the code

While many open source communities have a send-a-patch-and-someone-else-will-commit approach*

We use this method for commits to the stable branch (Ex.: 3.1 -> 3.2 -> 3.3) but when developing the new major version (ex.: 3.x to 4.0), all contributors commit directly to the main code base. We feel this is a great balance of
* having lots of innovation and low coordination overhead when developing the future version.
* while having minor versions with as few regressions as possible.
So if you need a lot of stability you should skip .0 releases (which really, you should avoid for any project) and have an upgrade pattern of 3.1 -> 3.2 -> 4.1 -> 4.2 -> 5.1, etc

, in Tiki, we encourage everyone to commit directly to the source code.
  •  Plugin disabled

    Plugin translationof cannot be executed.
    (out of 500+ which have access)
  •  Plugin disabled

    Plugin translationof cannot be executed.
    (as easy as it gets!)

Scheduled releases

Scheduled releases are a fundamental part of the Tiki model. As a large community, it makes it clear for everyone what to expect.

There are two major releases per year (October and April), with several minor releases in between. Please see:

 Plugin disabled

Plugin translationof cannot be executed.
and

 Plugin disabled

Plugin translationof cannot be executed.
and

 Plugin disabled

Plugin translationof cannot be executed.


Whatever is not ready in time for a release is pushed back to the next. If you are late for a train, you may miss it, but you'll be early for the next one :-)

Why every 6 months? Why not 4? 8 or 12?

4 was too short. 12 was too long.

6-8 months was just about right. It's long enough to make big changes, yet it's short enough that you don't have to wait forever. For people in a business setting, it's essential for them to be able to a commit to a date with their customer. By having a set date, there is an incentive to commit to trunk, and know when it will become stable. 6 months has the benefit that we can choose good months to release (October and April) that are the same every year. In the future, it may become even faster (3-4 months), but it will certainly not become longer than 6 months. People who need a slower cycle can use

 Plugin disabled

Plugin translationof cannot be executed.
.

How can we know there will be enough new features to justify a major release?

During a 6 month period, there are several thousand commits, which is more than enough to justify a major release. Just check

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
and

 Plugin disabled

Plugin translationof cannot be executed.

All-in-one codebase

All functionality is in the core. Developers are collaborating throughout the whole codebase (Over 1 million lines of code) vs third-party module developers cooperating, or coordinating around a common "core." As far as we know, Tiki is the Open Source Web Application with the most built-in

 Plugin disabled

Plugin translationof cannot be executed.
. Read more about cooperation vs collaboration.

Inherent synchronized releases

Releases take more planning and coordination because all the features are released at once, but since it's de facto Synchronized Releases, the whole community can collaborate right away on the next release and this permits rapid major releases (even with such a vast code base). See

 Plugin disabled

Plugin translationof cannot be executed.
.

Compare Tiki's all-in-one model makes it resistant to the typical issues faced by other applications, as explained by CMSWire...
Yes, Drupal 7 is officially available for download. But it's important to recognize that this is just the Drupal 7 core — the release status obviously does not apply to the thousands of modules (add-ons) contributed by the community. Although there has been much support from the community that supplies contributed modules, and an entire movement that pledged to have their modules D7 ready by release time, it hasn't exactly happened.
CMS Wire (Jan. 5, 2011)

Lots of features, but no duplication

Tiki is a "1-stop shop" with tons of features. In fact, Tiki is the

 Plugin disabled

Plugin translationof cannot be executed.
. However, there is but one forum, one blog, etc. Having duplicate features would lead to all kinds of problems and would splinter our user & developer base. If several people want to improve a feature, they collaborate and extend, in the wiki spirit. This is why we can give highly descriptive names like Tiki blog, Tiki forum, etc :-) All features are optional.


On Wikipedia, when two pages are about the same topics, they are merged:
http://en.wikipedia.org/wiki/Wikipedia:Merging
In Tiki, it's the same idea but for features.

Dogfood

We eat our our own

 Plugin disabled

Plugin translationof cannot be executed.
and we hope you will as well :-) All *.tiki.org sites are powered by unmodified versions of Tiki. And new versions of Tiki power the sites before the official versions are released.


FAQ

Decision-making & Governance

Decisions

Tiki is a do-ocracry. Join a

 Plugin disabled

Plugin translationof cannot be executed.
!

Ok, but who decides?

The vast majority of decisions go to the ones actually doing the work (be it code, translations, documentation, etc). There is a very strong collaboration culture in Tiki. So contributors discuss and find better ways to do things. You may have the impression that this is a big and complicated thing, but it's not. The vast vast majority of things to decide, everyone agrees. (it's easy to agree on the ideal; the real challenge is deciding on what you can do with limited resources, but since it's a do-ocracy, this solves itself.)

No offense but sounds like a "hippie mumbo jumbo". If the shit hits the fan, who decides?
The project admins as listed on

 Plugin disabled

Plugin translationof cannot be executed.
. For example, they act as a safe guard, as a last resort to deal with

 Plugin disabled

Plugin translationof cannot be executed.
.

Ok, but what if these people make a really bad decision?

Anyone can take the source code and start a fork

Ok, ok, but what are the general priorities of the community?
Please see

 Plugin disabled

Plugin translationof cannot be executed.
.

Is it backed by a big business?

While many Tiki developers run consultancy businesses around Tiki, yes, decisions are made in the best interest of the community, not of one or many businesses. For example, a business wants to find a way to lock you in. http://en.wikipedia.org/wiki/Lock-in Some could be tempted to make hosting more tricky so they can promote their own hosting offer. We want Tiki to be as easy as possible to install, via Fantastico panels for example. We are not just some geeks who are running Tiki on dedicated servers as root. We do care about the little guy on a budget shared hosting account.

Is there an association?

Tiki is Community managed and open development with an official

 Plugin disabled

Plugin translationof cannot be executed.
.

What is the business model?

Tiki as a project, has modest expenses, which are covered by

 Plugin disabled

Plugin translationof cannot be executed.
. It doesn't need a "business model" like a company that has expenses or employees to pay. While

 Plugin disabled

Plugin translationof cannot be executed.
are available for hire, Tiki is "Community Open Source" and not "Commercial open source". If you would like to hire or offer Tiki services, please see

 Plugin disabled

Plugin translationof cannot be executed.
.

Is it sustainable?

Absolutely! Various Tiki contributors can come and go. But, Tiki, as a project & community will continue no matter what. No one can lock down the code and require people to pay for it. Tiki evolution & development is in no way, shape or fashion the result of VC funding.

Who contributes to Tiki?

Users, just like you!

Typically,

  1.  Plugin disabled

    Plugin translationof cannot be executed.
    , which offer Tiki services
  2. IT departments in organizations
  3. Volunteers which are using for personal projects


License

Tiki is LGPL 2.1

Ok, but is it really free? I want to develop websites and I don't want my customers to know I am using Tiki.

Some systems have restrictions on removing promo link or logo. Some software is GPL but they ask money to remove the Copyright messages. With Tiki, you can do whatever you want. There is no commercial license. Since it's LGPL, you can include in commercial apps, sell, etc. Of course, we hope that you will want to contribute code, documentation, bug fixes, bug reports, feature requests, translations, or even money, etc. and/or hire some of the consultants, but you are not required to do so.

Will it always be free?

Yes, because Tiki is a community project.

Core & module developers

In CMS {add your CMS name here}, there is the core and there are 3rd party modules. There are core developers and modules developers.


In Tiki, that distinction doesn't exist. Or if you wish, all developers are core developers. We have a mods system to share code without being in the official release. However, this is the exception rather than the rule. Pretty much the opposite to many other systems...

Why don't you fix/improve the existing features instead of adding new ones?

This is a common concern/frustration of users. Especially when struggling with a bug.

Who would decide the priorities? Person A may think the priority is to improve feature X, but for person B, feature X is good enough, and adding Feature Y is more important. Of course, each person will tend to think their thing is the most important.

Tiki is a do-ocracy. Tiki is a diverse community. While many people have Tiki as their main livelihood, they don't work for Tiki. They work for various entities that use, love, (sometimes hate!), depend on, contribute to and want to see improve a project. But each has their own priorities. This diversity is part of the strength of the project. The answer is that different people that work on different things. The

 Plugin disabled

Plugin translationof cannot be executed.
has that name because it's things that people wish for. These can be bug fixes, feature requests, etc. The line between a bug fix and a feature request is often muddled.


Even if we somehow did stop people from adding new features (imagine the discussions!), would they really re-allocate their energy to fixing bugs? Since they may need a specific feature for a project, so if they are not allowed to contribute, perhaps they would use another CMS/Framework or they would do it anyway but not contribute. None of which is in Tiki's interest.

Now, to avoid regressions in the stable branch (3.1 -> 3.2), some developers have volunteered to form the

 Plugin disabled

Plugin translationof cannot be executed.
.

Drawing the line

Why don't you draw the line and say, "this is what we do and that's it"?

  • Because of intertwingularity, it's very difficult to draw any lines. This is true for knowledge, it is also true for software functionality.
  • And also, see answers previous question.

I reported a bug several months ago and it has not been fixed

Pretty much the same answer as "Why don't you fix/improve the existing features instead of adding new ones?" above.

Are features ever removed?

Yes, but with care and consensus. We want to keep upgrades easy.

The goal is to have a useful application. Typically, features are removed because of the evolution of browsers or the web makes them obsolete. Or it could be because another feature in Tiki becomes so powerful that it makes this one useless.

In a traditional small-core-and-tons-of-extensions model, code will die off on its own by lack of interest. In a wiki way, the community must proactively do housecleaning. This is much like wiki pages, which should be re-factored, deleted or merged. Please see:

 Plugin disabled

Plugin translationof cannot be executed.

Will features continue to be added forever?

Well, that depends on the people that participate in the community. So far, the number of features has been an asset, not a liability. Should this change, we'll adapt at that time. It doesn't matter how many features you offer, people still ask for more.

Of all the innovations, the rate of the totally new features has been slowing and what we see a lot is how various features are each improving and blending more tightly with other features. Ex.:

 Plugin disabled

Plugin translationof cannot be executed.
.


You can shape the future of Tiki smile

Continuity

How can I know Tiki will be there in 5-10 years? What about stability/long-term support?


Predicting the future is very hazardous. However, as the past can often be an indicator for the future:

  • Tiki has evolved since 2002. Please see

     Plugin disabled

    Plugin translationof cannot be executed.
    .
  • The source code is free software and will always be.
  • All the data is stored in simple database tables. If need be, it can be exported to be re-imported in another application. Of course, this is not trivial, and migration tools from one app to another tend to be fragile. However, the data is there.
  • There is a large install base.


So, Tiki should be around as long as the technology is around. If you know what will replace the web browser, please tell us :-)

So Tiki will be around. But how good will it be? Well, the rate of evolution, innovation, etc. depends on the participation of people just like you :-).

Thus, think long-term. Overall, we should be mindful about how our immediate actions fit in the long-term. Tiki will never be "finished" so any shortcuts now can come to bite us down the road (especially if someone else is stuck cleaning up the mess). See:

 Plugin disabled

Plugin translationof cannot be executed.

All in one model

Tiki has an all-in-one approach to

 Plugin disabled

Plugin translationof cannot be executed.
. Think of it as a suite of applications like Open Office. The features are built-in and all optional instead of offered via 3rd party modules/extensions/plugins. Because of this model (and the open participation), Tiki has more built-in features than any other Open Source Web app (if you know of one, please let us know!).

Best-of-breed applications

I prefer a collection of best-of-breed applications that I assemble


This can work only if you have the skills to tweak these applications to make them work together. And when each component is upgraded, you have to make sure the glueware is still working. And you need the programming skills to make this happen. If you don't complete the job, you will have a "Frankensite" patchwork of 3-4 apps, each with their own username/group & permission system. Each has its own template & menu system (if you care to unify the look & feel + navigation). Each will have its own search engine.

Lean apps / complexity

I like simple apps because I can easily tweak the code to my liking
Tiki is a large application and there is a learning curve. However, it is easy to tweak. It was designed with simplicity & community development in mind. Please see the introductory documentation for developers and

 Plugin disabled

Plugin translationof cannot be executed.
.

Survival of the fittest

Most other CMS systems have several "modules" to choose from. Since there is competition amongst the "modules", it is the survival of the fittest


That sounds like it could work and of course it can. However, this is open source software, not biology... So is it the most efficient? There are several challenges with this approach.

  1. The site admin has to find, evaluate, test, install and maintain each one of these modules. If there are 3 wikis for Xoops for example, which one to choose? In Tiki, we believe if several people want to work on a specific feature, it is a lot more efficient, (and fun!) to work together. Please see this interesting Drupal note and this one too.
  2. The site admin must manage the versionning of the application vs the "modules". Some "modules" can be abandoned by their authors. So in the end, it is very important to choose your modules well. And again, choosing the tool according to your needs.

Yes, but competition is good

Competition is not the only path to innovation. Say you wanted to have the best possible definition for a word on Wikipedia and you have 9 volunteers to help. What would you do? Would you create 3 teams of 3 and pick the best definition? Or would you have all 9 people collaborate? If you split into 3 teams, chances are, when you evaluate what the three teams came up with, each team will have something you like. Yet, by picking 1 team and discarding the two others, you are wasting talent, motivation and energy. Now, it makes perfect sense to split the 9 people in smaller teams according to specific responsibilities towards a common goal. If this model makes perfect sense to generate content for Wikipedia, why is it not a good model for software development? Imagine 2 communities of the same size. One with the competition model and the other, with the collaboration model. Which one will have the most code review? which one will have more code/functionality duplication?

Feature interaction problem

Features in the core generally tend to interact better together than external code. So how is this in Tiki?


Feature interaction is a huge challenge with all software. In Tiki, it's not perfect but it's quite good.

  •  Plugin disabled

    Plugin translationof cannot be executed.
    indicates less than 2% of reported bugs as "Bug: conflict of two features (each works well independently)"
    • It's surely higher than 2% because not all people reporting bugs may have detected this as the cause of the bug. However, it's massively lower than core/third-party extension system.
  • All the features are in the core so they share the same eyeballs
  • There is very little feature duplication so this limits the Combinatorial explosion you have with hundreds or thousands of 3rd party extensions.

Lack of feature development

If there is only one of each feature, what happens when it doesn't do what I want/need?


Avoiding feature duplication doesn't prevent people from improving since participation is open. If there are several authors that want to improve a feature, but have different needs/goals, they can just make them optional, and let end-users choose. It's free software. If you can code, just add the feature you need. If you can't code, try to find someone to help you.

Yes, but system Z has hundreds of modules. Extensions / 3rd party modules listings of popular PHP applications:



In the early days, search engines would boast on how many million web pages they indexed. And we had to navigate through pages and pages of results to find relevant stuff.

The important question is: does the system do what you need now and for the foreseeable future. (This is just as true if you are picking Tiki vs another solution)

Tiki has over 1500 preferences/features/settings built-in, vs the sometimes 10 000+ external extensions/mods/plugins of some fine applications. But let's not forget that some of the those external packages are features duplication.

The important thing is do you see a feature that you want / need that is not offered by Tiki (please see feature list, modules list, mods list and all plugins)

Feature-creep

What about feature-creep? If you let just anyone add anything, it'll be chaos.


One person's "killer app" feature may be useless bloatware for another.

Tiki is a shared resource. We want it to be useful for various people, to solve various needs, in various contexts. If it's not solving your problem, chances are, an enhancement would be useful to other people. The trick to try to use & extend the existing feature set. If there is nothing there that can help, it's to translate your need into something as generic as possible, so many problems can be solved with the same code, by changing labels or flipping a few switches. Of course, it's tricky to know this if you are new to the application, so you can work with the community to find solutions. A good example (of a generic feature) is trackers. Trackers are a database, forms and report builder, so you can create a bug trackers, a todo list, a mini-CRM, etc, whatever you want. You can build unlimited custom applications specifically tailored to your needs.

The real challenge is to find a technical and organizational way to deal with the Law of Software Envelopment.

 Plugin disabled

Plugin translationof cannot be executed.
has filters in the admin panels which will lower the learning curve.
But too many features is confusing!

Yes, it can be. If you don't use a feature, don't activate it! And http://profiles.tiki.org are there to help

"I just need a {add your feature name here}. This site is just a hobby, won't be big and professional like... "


Even if you think you just need a wiki or a forum now, isn't it nice that if you need a new feature later on, it will be there waiting for you? Just activate it, assign permissions and add links to your navigation.

Dead-end features / Dependency hell

I was using system X. My problem: I was using a third party module. It is no longer supported. The developer has given up. I can't upgrade my site without breaking the module. Could this happen to me with Tiki?

This is called Dependency hell. The way Tiki is designed and organized, this has much less chance of happening. Yes, some

 Plugin disabled

Plugin translationof cannot be executed.
can become unmaintained. However, they continue to work. If a developer enhances something in Tiki which breaks something else.
  1. The developer has access to all the Tiki code so (s)he can test and fix anything that is risky.
  2. We will know quickly via bug reports &

     Plugin disabled

    Plugin translationof cannot be executed.
  3. The developer can fix whatever he broke because everything is in SVN. The code is not scattered across dozens of websites. Tiki is very centralized. All info on *.tiki.org sites and in SVN. For better or for worse, backward compatibility (we call it "Respect Environment") is a rule of Tiki.
  4. While for Drupal, "Any feature that we add to Drupal core needs to be good enough to last us at least 3 years in a relatively unchanged state.", if you like biology, think of it as Tiki being more adaptable to changes because we don't have to worry about breaking hundreds of third party modules/plugins. We can undertake massive changes with each major version, like

     Plugin disabled

    Plugin translationof cannot be executed.
    in

     Plugin disabled

    Plugin translationof cannot be executed.
    .


How many times in the 10+ years history of Tiki have users ended up with data in dead-end abandoned code? This is very very rare (This could have happened with daily snaphosts of SVN versions, but not when using stable versions)

Reinventing the wheel

Tiki is like its own World, it is always reinventing the wheel.

While Tiki is self-sufficient, it offers many

 Plugin disabled

Plugin translationof cannot be executed.
with the outside World (services, technologies, standards, code re-use, data exchange, etc). Also, Tiki

 Plugin disabled

Plugin translationof cannot be executed.
.

Yes, but what about phpBB?

Sometimes, it's less work and more future-proof to develop your own features. Just because Tiki doesn't integrate phpBB like many other projects out there, it doesn't mean we are reinventing the wheel. Tiki forums are very powerful and support threading, wiki syntax, attachments, etc.

In reality, Tiki relies heavily on

 Plugin disabled

Plugin translationof cannot be executed.
, to have less code to maintain and to leverage other projects experience. We try to contribute back (upstream) as much as possible. More than half of

 Plugin disabled

Plugin translationof cannot be executed.
is from other FOSS projects.

Waste of disk space

Yes, but Tiki take a lot of disk space, especially for a PHP application.
Tiki 3.1 weighs 78 megs unzipped (24 megs zipped). Hard disk is really cheap these days. You can also use

 Plugin disabled

Plugin translationof cannot be executed.
to have one set of files for several Tiki-powered sites.
  • If you really need to save disk space, you can delete a few files.
    • Just the changelog.txt is two megs!
    • There are also the language files in lang/. You can safely delete languages you are not using. There are 23 Megs (29% of total) for the 39 languages. Recent versions of Tiki now have much smaller language files.

Ok, so if it's so easy, why not package them separately?


Sure, if someone wants to do it :-) Do you volunteer?

But it's really just simpler for everyone to just bundle all in one clean (albeit large) file. Many people install via

 Plugin disabled

Plugin translationof cannot be executed.
and thus, don't necessarily use, know or even have access to FTP.

Performance

Tiki is really slow, consumes a lot of RAM & CPU cycles
In Tiki, we have a concept called

 Plugin disabled

Plugin translationof cannot be executed.
. What You See is What You Can Access. The permissions system is very elaborate. Each user has a different experience, showing him/her what has changed since their last login (and only showing links for items which they are allowed to see). This takes more queries.

Yes, but even for anonymous users, Tiki uses way more resources (SQL queries, RAM, etc) than other CMSs
It would be interesting to have a real analysis to see if it's true. You would have to compare several apps with relatively similar content, features, etc. It's not that easy because apps are different. But let's say it's true -> Short answer for 98% of websites out there: who cares? Computers are getting faster & cheaper every month. People power is more expensive than machines. Yes, the code could and should be optimized in certain places. Yes, we should put some indexes on certain tables. However, we must always keep in mind that keeping the code simple makes it easier to understand, to customize and to fix. For the 2% of high-volume read-only sites: Please collaborate within the Tiki community to find ways to make Tiki faster. Ex.: http://varnish-cache.org/ Please also see

 Plugin disabled

Plugin translationof cannot be executed.
for advice.

Security


Bottom line: Systems that are heavily reliant on plug-ins are more apt to have security vulnerabilities for which there is no known patch. Why is this? Even frequently-used plug-ins are not always actively maintained and enhanced by their original developers. Source

Another risk: http://wpmu.org/why-you-should-never-search-for-free-wordpress-themes-in-google-or-anywhere-else/ Tiki (by default but can be changed by the admin) doesn't permit PHP code in templates, which is a nice benefit of

 Plugin disabled

Plugin translationof cannot be executed.
.


On the other hand, Tiki has more code. And more code is more potential issues. Our solution to this is simple but effective: Each file in Tiki has a feature-check, which essentially renders the file inactive. If a security vulnerability is disclosed, admins can turn off that feature.

Both models have risks. We feel it's a good trade-off.


API

Yes, but system Y has an API


Everytime people ask for an API, it's important to ask the question: "What are you trying to do?"

Tiki has no formal "API" but has several ways to connect/enhance/interact. It is designed to be easy to add functionality. Do you think over 200 people would have contributed via SVN if it was difficult?

 Plugin disabled

Plugin translationof cannot be executed.

Now, depending on what people are trying to do, they should look at

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
,

 Plugin disabled

Plugin translationof cannot be executed.
, etc.


Extensibility

Examples of success with plugin model

Yes, but Firefox uses the plugin model and it's very successful


Please read:
http://www.howtogeek.com/179213/why-browser-plug-ins-are-going-away-and-whats-replacing-them/

There is no question that the plugin model can and does work. This is to illustrate and explain how/why the all-in-one model works for Tiki.

  1. We have to be careful about comparing a web application to a desktop app.
    • File permissions is tricky for web apps.
  2. Firefox has a nice installer to upgrade the extensions, which makes it very easy for the end user.
  3. If you have many extensions, you will have noticed that they are not always compatible with the latest release.
  4. Do Firefox plugins have any kind of interaction with other plugins? If this is what you have in mind, please see mods and plugins)
  5. Add-ons behaving badly: the challenges of policing the Firefox ecosystem
  6. Open Source Browsers Change Their Tunes on Extensions

Experimental

But what if a feature is not good (yet)?

During the development phase, developers can use

 Plugin disabled

Plugin translationof cannot be executed.
.

Once a feature works (even if basic), it can be added to the main code base, and tagged as

 Plugin disabled

Plugin translationof cannot be executed.

Is the Tiki model better?

It is very risky to say something is better. The answer is it depends.

The Tiki model works for Tiki. And the community will adapt as needed. The Tiki model has benefits and drawbacks, therefore, the Tiki project has different challenges to tackle than other comparable projects.

In the small-core-and-thousands-of-extensions model, an important core competency is the Package management and the big challenge is dependency hell, which has prompted calls for Synchronized Releases.

Tiki has always, by its all-in-one model, had synchronized Releases. However, this brings another set of challenges. (There is no free lunch!).

Benefits

  • Tighter integration
  • Less feature overlap/duplication
  • Less code duplication & more code review
  • Higher collaboration
  • Lower total cost of ownership for users (easy upgrades, less chance of being in a dead-end feature)
  • Users and developers can count on the fact that code or features are present.
    • This reduces code duplication because developers can call that code. (instead of duplicating code to avoid adding a dependency)
    • Something like http://profiles.tiki.org which helps to configure your site is possible. Otherwise, it would involve downloading additional code and it would be complicated.

Drawbacks

  • Huge codebase (Over 1 million lines of code)
    • Most users only use a small (but different!) part of it.
  • Huge admin panels with over 1500 settings/preferences/options...
  • Big concern for backward-compatibility, which can slow progress.
  • Inconsistency in codebase.
  • Learning curve
  • Dispersed focus
  •  Plugin disabled

    Plugin translationof cannot be executed.


Some things are good in Tiki and can be attributed to the model, but that doesn't mean other projects don't or can't have.

For example, Tiki, has one full documentation for the whole application (over 1000 pages). It would be more difficult, but not impossible to make a similar resource with the small core/thousands of extensions model.

Open participation

If you let everyone contribute, it'll be chaos. How can it possibly work?

That is what some said about http://wikipedia.org/

Conflicts

If I add my features to the core, then, any of hundreds of people can break my code!

Why would they possibly want to do that?

If you let "just anyone" participate, won't you get in trouble with malicious or incompetent people?


Answer: eyeballs

Documentation

The documentation is missing, incorrect, out of date or just plain bad.


The quality of the documentation is variable. Some parts excellent, some are bad. There can be a correlation with the quality or activity level of the feature itself.

The good news is that it's a wiki, so please login and fix it. If you know it's wrong but don't know what is right, ask in the

 Plugin disabled

Plugin translationof cannot be executed.
, forums or http://irc.tiki.org

The project should disallow code submissions without documentation updates.


This is certainly a possible model and likely used by some other projects. However, this is not the case in the Tiki community.

  1. Some developers are fluent in PHP/MySQL but are not good in written English.
  2. Some developers are not interested or good at writing documentation.


If you force developers to make unit tests, add documentation, or whatever, you will end up with less contributions. There is a valid debate to say "I prefer less contributions of higher quality". We are in the "commit early, commit often" mood and "things will improve with each version".

Some could argue that it's preferred to focus developers on adding/fixing features and it's up to the documentation team to handle documentation.

Whose job would it be to refuse (rollback!) a wanted feature because the developer didn't document? Can you imagine the debates there would be?

What often happens: Developers put up a skeleton documentation. Enough so that end-users get an idea of what it does and then, they can write proper documentation (hopefully with screenshots) from an end-users's perspective. Power users can also "interview" developers and capture this information to the documentation.

Code quality

The code sucks and is inconsistent
Tiki is the

 Plugin disabled

Plugin translationof cannot be executed.
, is 10 years old and 250 people have contributed to the code base. It's not surprising that code quality and style varies.


Take any open source application and ask around if the code is good, is modular, scalable, etc. Someone will always find something to complain about. "critique" is very easy. I am sure if some of your work is available to public scrutiny, you will know what I mean :-) The question should be: Does it work or not? Does it solve my needs for now and the foreseeable future? Can I improve it? Most people use Tiki without changing any code. So code structure/philosophy/organization is of no importance to them. They just want something that works and something which they can upgrade easily over time.

Also, Tiki was started with the technologies available in 2002: PHP 4, MySQL 3, Smarty 2, and no jQuery!

The good news is that various parts of Tiki undergo massive improvements. Ex.:

  • Change to new

     Plugin disabled

    Plugin translationof cannot be executed.
    (Tiki3)
  • Moving to

     Plugin disabled

    Plugin translationof cannot be executed.
    1.10 (Tiki3)
  •  Plugin disabled

    Plugin translationof cannot be executed.
    (Tiki3)
  • Moving to PDO (Tiki4)
  • Moving to jQuery (Experimental in Tiki3, official in Tiki4)
  •  Plugin disabled

    Plugin translationof cannot be executed.
    to permit better category permissions (Tiki4)
  •  Plugin disabled

    Plugin translationof cannot be executed.
    (Tiki4)
  • Toolbars refactor (Tiki4)
  • Preferences in admin panels moved from static to dynamic, to permit searchable admin panels (Tiki5)
  • Slideshows moved from native code to S5 (Tiki5)
  • Logs revamp (Tiki5)
  • Javascript refactor (Tiki5)
  • UTF-8 support revamp (Tiki5)
  • WYSIWYG from FCKEditor2 to CKEditor3 (Tiki6)
  • Spreadsheet from native JavaScript front-end to jQuery.sheet (experimental in Tiki5 and default in Tiki6)
  • Blog revamp (Tiki6)
  • HTML5 (Drop support for IE6) (Tiki7)
  • Mobile from HAWHAW to jQuery Mobile (Tiki7)
  • Theme revamp for theme generator (Tiki7)
  •  Plugin disabled

    Plugin translationof cannot be executed.
    revamp for drag & drop (Tiki7)
  • Search with Zend_Search_Lucene (Tiki7)
  • Use PHP autoload (Tiki7)
  • Parser revamp for plugins (Tiki7)
  • Zend Framework 1.11 (Tiki7)
  •  Plugin disabled

    Plugin translationof cannot be executed.
    revamp in Tiki7 and Tiki8
  • Language handling (getstrings) (Tiki8)
  • IPv6 support (Tiki8)
  • Smarty 3.0 (Tiki8)
  • Category refactor (Tiki8)
  • Comments refactor (Tiki8)
  • internal events (Tiki8)
  • Smarty 3.1 (Tiki9)
  • InnoDB support (experimental in Tiki8 and optional in Tiki9)
  • Moved to

     Plugin disabled

    Plugin translationof cannot be executed.
    (Tiki11)
  •  Plugin disabled

    Plugin translationof cannot be executed.
    (Tiki11)
  • etc.


The all in-one model actually makes it easier to do massive changes from one version to the next.


The code is not modular enough

Please see:

 Plugin disabled

Plugin translationof cannot be executed.

I am a professional. Really, Tiki's design sucks. It should be more object-oriented

Often, people with (or even not so) strong programming skills do not understand the unique challenges & dynamics of an Open Source project, especially a community-development one like Tiki. Some will design something which is supposed to be "superior", but it is too complex for people to use & participate to. Over 250 people have contributed to Tiki via CVS/SVN. That is a lot of eyeballs! The code is simple and has community coding in mind. Please see the goals of Luis Argerich, Tiki founder.

Please also see:

 Plugin disabled

Plugin translationof cannot be executed.

Tiki's design sucks. It's too big. It won't scale. It will implode. It's impossible to have so many features.


Tiki has been going on strong for 10+ years now. Tiki has more built-in features than any other open source web application (which is good or bad depending on your point of view).

Not only does it have a ton of features, it also has a very fast release cycle. Many powerful web apps have a release cycle of 1.5 or 2 years (for the core; modules evolves faster), whereas twice per year for Tiki.

2008-08 :: http://doc.tiki.org/Tiki2
2009-05 :: http://doc.tiki.org/Tiki3
2009-11 :: http://doc.tiki.org/Tiki4
2010-06 :: http://doc.tiki.org/Tiki5
2010-10 :: http://doc.tiki.org/Tiki6
2011-06 :: http://doc.tiki.org/Tiki7
2011-11 :: http://doc.tiki.org/Tiki8
2012-06 :: http://doc.tiki.org/Tiki9
2012-12 :: http://doc.tiki.org/Tiki10
2013-07 :: http://doc.tiki.org/Tiki11
2013-11 :: http://doc.tiki.org/Tiki12
2014-04 (planned) :: http://doc.tiki.org/Tiki13

The Tiki model can't work

If it's not run like a professional project, it will fail.


There are many points of view over what is "professional" and "failure" vs "success". Some people could view that Wikipedia is not "professional" but it's hard to argue that it's a failure ;-)

For many years, some people have expressed these concerns. There was a lot of FUD being spread around. Perhaps Tiki is like Wikipedia and is "is one of those things impossible in theory, but possible in practice.". However, here we are. Tiki is 10 years old. It's a mature, very powerful application, with a large community of contributors, with tons of

 Plugin disabled

Plugin translationof cannot be executed.
and which is tons of websites & Intranets. Of course, there are a lot of things to improve and there will always be. Remember: if you don't need a feature, don't activate it. However, if you need it in the future, it's only a few clicks away. And remember also, Tiki is open source and open development. YOU can participate to its future.


And Tiki just won a Bossie!
http://www.infoworld.com/d/open-source/bossie-awards-2010-the-best-open-source-applications-150&current=9&last=10

Things you can pretty much only do in an all-in-one model

  • http://profiles.tiki.org
    • You can make profiles because you know the features (code) is always there
  • http://i18n.tiki.org
    • You can provide a site where all strings can be translated, in-context and web-based
  • If you have duplicate extensions for something, you can't

     Plugin disabled

    Plugin translationof cannot be executed.
    them all.
  • etc

Todo

  • Move all the content here, or at least link to it.
  • Move some stuff out of Hello World
  • address objections/questions
    • You can't be good at everything
      • Wikipedia has great knowledge in most domains, because it leverages a community. The same can be done for code.



Some important links

Alias

Page last modified on Wednesday 15 June 2016 06:15:52 GMT-0000

Why Register?

Register at tiki.org and you'll be able to use the account at any *.tiki.org site, thanks to the InterTiki feature. A valid email address is required to receive site notifications and occasional newsletters. You can opt out of these items at any time.

Translate Updates

Incoming: