IpelaTech fully embraces Open Source Development. It would be an understatement to say everything we do is built around open source, whether it's the tools we use, third party software and related dependencies.
We, therefore, participate in Open Source because we feel like we have something useful to offer and Open Source offers a great platform for us to share our ideas and, of course code, and connect and collaborate with other developers.
IpelaTech's core way of thinking revolves around Simplicity and our packages reflect that value. We like to provide the simplest solution for the use-case, covering few edge-cases. We like to think we provide basic building blocks for more complex solutions, more on this later. The core requirements for our solutions are:
- Straightforward to setup and configure (our unofficial metric here is "Can you productive with this within 10 or fewer minutes?")
- Relatively easy to use (i.e. providing simple APIs and providing convenience methods/classes)
- Provide multiple points to extend and modify functionality
As such, as much as we appreciate feedback and feature requests, we're fairly resistant to creating packages that try to cover all possible edge cases. We believe this is the key to keeping packages focused and bloat-free. Think of it this way, a Swiss Army knife is extremely useful, but your kitchen isn't full of them!
We are open to all contributions, just bear in mind the point about edge cases. If you have a very specific use- or edge-case, it's better to fork and have a specialised solution that actually solves the actual problem, than a general one that might, or has that solution added as an "after-thought". If you would like to contribute to any of our projects, please read the article on The Shepherd System to understand how we structure code.
Software Development, as a branch of the sciences, has an almost altruistic nature about it, where the participants get as much, if not more value and satisfaction from sharing information than they do keeping it to themselves. A lot of Open Source is done for free out of the love of creating and sharing knowledge and resources. There has been plenty of debate around monetisation of Open Source and how to support projects and we're not going to add to those directly. Instead we've taken a different view on how to support developers (us included) in Open Source.
We feel the best way to support a developer is to hire them. For example, if you find a package useful, but need some added functionality or customisation (especially weird edge cases or something not on the road-map for the package), if you can't or won't add it yourself, look at the contributor's list and contact one of them, or use a freelancer platform, and actually pay for the development. We're so used to doing that in other industries but somehow fall short of applying the same rules to Open Source.
While we're behind sharing of knowledge for the sake of sharing, we feel it should be acknowledged that while knowledge may be free, the process of creating it usually isn't. And we shouldn't promote the idea that just because someone contributes to Open Source, they're automatically a full-time on-call volunteer for everything related to the package. It's one role they can fulfil but not the only and that needs to be made explicit. Also, one nice spin-off is that way you both walk out with something useful - you get a bespoke solution, they get a little billing and something to put on their portfolio. We feel that's probably the fairest model.
The reasoning behind this is that we differentiate between Free, Open Source and Free and Open Source. We don't believe in apply one-size-fits-all solutions to problems that don't deserve that treatment and Open Source cannot possibly be approached this way, regardless of how ferociously zealots would disagree.
So, with our packages, don't feel obliged to donate (if you do, it will still be much appreciated), rather hire us, if you can't or won't, then enjoy the package.
Thank you for taking time to read through how we approach how we participate in Open Source. We hope you can understand and accept our position, even if you don't agree with it, just as we understand and accept your perspective (if it differs) even though we might not agree with it. We feel we should normalise paying for some aspects of Open Source development, especially in cases where we're asking a fellow developer to dedicate more time to a package than they'd already budgeted for, or for implementing something they hadn't originally intended to.
At the heart of it, we're really trying to be promoters of fairness and common sense. These are strict non-negotiables for us, over which we don't entertain debate. Let us all strive to preserve each others' dignity, sanity and livelihoods.
With that said, we sincerely hope you find use in our packages and in some of the knowledge we share on this platform and others we participate on.
Thanks for dropping in. Sala hantlhe!