History: Advice for alternatives
Preview of version: 6
If you are building something like WikiSuite, here is some advice.
WikiSuite started in 2011. Since them, some Alternatives have surfaced, and some have died. Looking back on this period, here are some lessons learned from our and others successes and failures.
Do your proper due diligence
You will invest a crazy number of hours in this. It is a wise investment to do thorough research into all the Alternatives. Is there really nothing out there which corresponds to your vision?
Think about the project as a whole
It's not just the code. You'll be running a full-fledged organization.
Here is an example to illustrate the various roles and responsibilities in a large software project: https://tiki.org/Teams
Recommend reading:
Don't underestimate the integration challenges
Think of the flow from the end user perspective as they move from feature to feature.
Be in this for the long run
End users will have all their data in this. You need to do this having in mind to support it for the next 20+ years
Know when to build vs integrate
Developers want to jump in and code. Be careful: it's not just building it, it's supporting it for the next 20+ years
Pick all major components before you commit to them
WikiSuite was announced in 2011. There were several iterations before getting to today's list of components. Sometimes, changing one component has a cascading effect. Once you have users and data in own system, it will be very difficult to have them follow you in major changes.
Deal with the overlap
- Tell end users what to expect. What is supported, what is not.
Be prepared to compromise and accept the trade-offs
Many hard decisions are about trade-offs. Which interests will you sacrifice in order to make things better overall?
For example, in WikiSuite, we don't support Multitenancy. Each project should have its own virtual machine. This has many benefits and drawbacks. We live with that choice.
Be prepared to make such trade-offs.
Explain how you are different
It is to be expected to have a handful of major players in any market segment. They have a different drive / vision / DNA. And this will drive different design decisions and diverse outcomes for end users.