Ipeleng Molete
The Home of Ipelatech's Blog

The Home of Ipelatech's Blog

The Philosophy of Open Source Development at IpelaTech

The Philosophy of Open Source Development at IpelaTech

The reasoning behind how and why we contribute to Open Source

Ipeleng Molete's photo
Ipeleng Molete
·Nov 22, 2021·

4 min read

Table of contents

  • Our Code
  • Contributing
  • Donating
  • Conclusion

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.

Our Code

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!

Contributing

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.

Donating

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.

Conclusion

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!

 
Share this