This years' open source developers conference (OSDC) was held in the sunny Gold Coast, at the Griffith University Campus. Three solid days of open source discussions covering an extensive range of subjects were boasted this year, with plenty of room for discussion, getting to know one another, and good food to keep the engines of all participants well fuelled and running at full blast.
Despite the fact I didn't get to see any koala bears (I saw a spider attack the whiteboard at one point though) I really had an amazing time, but more importantly, I had a great opportunity to better understand and learn about open source and development outside of my own experiences. Here are a few of the things I took away.
Being green, except cool as well
It's not about being "carbon neutral" anymore, since the term itself has become a corporate catchphrase meaning "we pay other people not to pollute so we can". Instead, the focus was on how open source technology can help us be more accountable to the environment on a personal level. Smart metering and energy-aware devices make it possible to develop really smart homes that can control their own power consumption, manage generation, link to peripheral devices, and keep track of usage.
The really great thing is when open source tools can take those building blocks, and links these to the web to make powerful home control systems. Even more importantly, these tools make information available at the touch of the button, so you can tell when your kids are about to use up all your reserve hot water before you get home from work.
It's not just about saving and tracking energy, but also about doing more with existing tools. Humidity devices, temperature sensors, and other devices connected to such systems can help control the general comfort of the home.
Postgres & JSON, just something cool I liked
Something that really interested me in particular was this one talk on how PostegreSQL can be extended with dynamically defined data objects. By using JSON as a data type, any existing data model can be extended with custom db fields, fully supporting standard DB features such as indexes, query conditions, and joins, but without having to alter your database's schema every time a field is changed.
In the SilverStripe 3.2 ORM I had spent quite a lot of time to ensure that any feature supported worked out of the box on any database, and hey that's still important, but I think it's also important to recognise the features and advantages of individual products. A good challenge for the future is to ensure that SilverStripe can leverage such features effectively without sacrificing portability.
Oh yeah, I got to give a talk
So people were curious about what a SilverStripe was. I had five minutes to do it (and I spent one of them mucking around with the chromebook I'd never seen before, haha). Check out this video below.
Open Source, or how do I community?
If SilverStripe had a Steve Balmer of its own, I'd imagine him shouting out on the stage "community community community community", all gross and sweaty, and obviously more passionate about the subject than anyone else in the room. Back in the real world, however, we as both a company, and myself as an individual, have had to seriously re-evaluate our approach to the SilverStripe community.
At the OSDC I encountered many other developers and non-developers, each of which with their own and rather varied interactions and experiences. There was one person in particular, Mark Unwin, who presented a talk, called The Care and Feeding of Open Sourced Projects, that really helped me to reform my ideas and expectations.
Sometimes it's good to hear other's experiences with failures, because it can help you avoid your own. Othertimes you can look back and identify with the same mistakes in your own attempts. In this case, his talk was a bit of both, and I'd like to talk about how this is a great thing for us as a company going forward.
Don't just change things on your own - Because it might be your project, but it's not just about you. People use and contribute to your work because it's good for THEM. As soon as people are no longer catered to, they'll leave.
Involve others from the start - Because the community will want to have a say in things as well. Not only that, but they can help you along the way, where otherwise you would have to do things all on your own.
It's ok to have ideas and try things out - But don't feel scared of abandoning them if it doesn't work out.
It takes years to grow a community - But mistakes can be costly and can be instantly destroyed.
There are many layers of community - And you'll find that at the core level, you will find very very few very very valuable members, and these are the ones that power the community. Many members of the community are simply users, not contributors. Generally these can be broken down into:
- Community members
- Contributing community members
- Valued community members
It's difficult - Because we are all human. We all have different goals, different agendas, different personalities, and different feelings.
Goals are important - Because you are the one who sets the tone for your community, and it's up to you to define what you want it to be. Also, goals and communities will both change over time, and that's ok.
Communication - The other "communi" word. It's so super important, and also how it is done will matter. Taking the time to write personal responses to emails, forum posts, questions, and instant messaging will help bring others up in the community. it's also important that users are able to contact you, and that there are easy ways for others to begin contributing to your project. Be responsive, and don't let members feel ignored. This can be hard with a large community, which is why good core contributors need to be there to support the project.
You will screw up - And you need to recover and learn.
SilverStripe Australia, and how Shane is a good dude
I want to give a warm and hearty thanks to my friends Shane Weddell from SilverStripe AU, and Adam from SteadLane, who will no doubt when asked testify to my responsible drinking, especially if my wife asks. Coming to the Gold Coast was a great experience for me, not only because I got to see a spider and absolutely no Koalas, but because I got to check out some of the awesome things you have been doing on the other side of the Tasman.
Shane has been working closely with other agencies in Australia to develop a strong community of collaborative agencies, and underpinning it are the ideals and principles which are critical to its success. I was impressed by their commitment to never compete against another development agency using SilverStripe, and their policy of always supporting them in their work instead. These are the ideas and principles that make both community, and open source in business, work the most effectively.
However, I was a little disappointed to find that it took me a whole trip to the Gold Coast to learn about what the AU side of SilverStripe is all about. I only got to spend a few days hanging out with Shane, but I would have liked to have caught up with others in the AU team, and spent more time getting to learn from them. I think it's a good challenge for all of us to learn from one another more, to improve our sharing of ideas, and learn what it means to be a team, as well as a community.
I'm looking forward to finding excuses to come over again, but in the mean time, stay in touch. :)
It would take a long time to really cover all the other great talks I went to, so here's a quick list of summaries in one sentence each.
- Robots are cool but are expensive to make
- 3d printing can help people in societies suffering from scarcity
- Developers are human, and need to look out for their own, and their colleagues, mental health and well-being.
- Voluntary organisations of developers can do a lot alongside both commercial and civil groups.
- There is no PHP6. Apparently in THIS joke 7 8 6...
- There are lots of strange ways of doing asynchronous PHP
- MariaDB is part of a community of MySQL forks
- Multilingual normally means "I speak more than one language" not "I code in more than one language"
- OpenShift is a really well polished platform as a service, and I'll be taking as many ideas from it as I can.
- Running your own business gives you a lot more less freedom.
- Don't use truecrypt
- There are a lot of PHP alternatives to actually running PHP applications.