Liferay has been passionate about open source since the first version of our product, and every year we find that collaborating with our community ultimately creates products that are better for everyone. On our community blog, you can consistently find Liferay staff and community members sharing their knowledge and working together to improve developer and user experiences.
One of the top Liferay contributors, Andrew Jardine, recently agreed to let me interview him about open source today and the value of being a contributor. With almost 10 years of Liferay experience, Jardine has successfully delivered more than a dozen projects for organizations, large and small, in North America. Jardine's contributions to Liferay span multiple versions of the product, from 5.x through to 7.x. Read on to hear his thoughts on what makes a good open source community, how he uses open source to ensure his clients are successful, and why developers need to embrace the current shifts in development paradigms.
Tell me about yourself and what kinds of development projects you work on.
Unlike most people, I (Jardine) knew from a very young age that I wanted to be a programmer. I started playing with computers LONG before they were "cool," which means that I can be labeled a true "nerd." Professionally, I've got about 20 years of technology under my belt, but if you consider the years before my formal schooling and profession started, that number would be closer to 30 years.
I love not just discovering new tech but also thinking up creative ways that it can be used — ways that perhaps, a lot of the time, were not necessarily how the technology was intended to be used. That's one of the main drivers for me to be involved in open source — the idea of creating something awesome and simply sharing it with others to see what they can do with it.
Liferay, for me, is a poster child for this. It has some strong product features to let you get off the ground relatively quickly, but at the same time it has so many entry points for customization and extension that the ways you can twist or mold the product are virtually endless. To me it is akin to the swiss army knife of software.
Is there a particular type of project or company you really like to work with?
Not really, to be honest. At this point, I've worked with just about every industry vertical. I've worked with huge organizations that have thousands of people, and I have worked with small two-man startups.
Projects are pretty much the same. Some have been massive undertakings that will affect the whole scale of how the organization collaborates, others have been micro tools aimed at solving one particular problem alone. I enjoy all of it.
The only thing I look for from the outset of any engagement is an open minded culture that is willing (at the risk of quoting an overused pun) to think outside the box. For example, an intranet site can be nothing more than a collection of pages with seemingly endless amounts of information on them, or it could be an engaging social-based user experience that provides not just data on a page but also a way to connect with experts. Ultimately I want to build whatever helps make my clients successful, but I always push to build a little bit more, go the extra mile so that you can really capture the attention of your audience. I'll say this though, anyone who solicits my help for a Liferay project gets a definite yes if I have time in my schedule.
How do you choose which technologies to invest in?
That's a tough one. I do my best to follow the market trends, but that can be difficult at times. It seems like every other day there is some "new" hot thing that everyone is talking about, which means that keeping up and/or filtering the flash in the pan from the ones with staying power can be hard.
The short answer for this would be that I choose to invest my time and money in anything that I feel will help me enable my clients to be successful. A lot of the time that means that I am only focusing on what is "hot" in the market based on the needs of my current clients, but I also try to understand the way the industry is moving in general and do my best to at least keep a survey of what’s out there so that I know where to focus my attention when the time comes.
Liferay has been a staple product in my toolbox for many years now, though. I rely on and believe in it so strongly that I often find myself demonstrating it to any client that isn't already aware of it. It just offers so much as a development platform that I feel it provides real value for my client’s buck.
For open source, I sometimes see people who are concerned that a project won’t be supported long-term or won’t have much investment from developers. Is that something you take into account?
It's not really something I take into account when it comes to open source. I think the projects with the best results are the ones that choose the right tool for the job. Technology moves so quickly these days that spinning your wheels on such issues, I feel, is a waste of resources. Of course you want to do your due diligence and make sure that the choices you make are sound, but if you are choosing to use open source software, you are accepting that there is a bit of personal ownership involved.
In fact, what I love most about open source is the fact that you DON'T have to worry about long-term support or developer interest. Having the source code available means that even if the project does die (from a community perspective), you could continue to maintain it on your own — or better yet, you could use it to spin off a new project. For me, the purpose of open source is not "long-term support" but rather the idea that I am sharing something I have built and you can choose to use it the way I have built it or you can take my idea and branch off with it in a new direction.
How much open source technology do you use?
The amount I use is directly linked to the amount my clients use. For my own company, I think it’s probably a good mix of 75% open source and 25% licensed (either perpetual or as a SaaS). 90% of the work I do does involve Liferay since that is a core focus of my business.
I think that people often dismiss open source as "hobby" projects, but in fact I think that some of the best software on the market is either open source, or offers an open source companion project. Most of the time when my clients shy away from the free version of a piece of software, it’s not about the quality, but about the support. Most organizations want some level of support (from a vendor) to mitigate some of their operational risk.
This is where I think that Liferay is a great option for my clients. For those that are willing to take on the risk, they are fine to use the community version. If they are risk-averse, then they have the option of a DXP subscription. The two streams of the product are so close feature-wise that it's not as if you need to buy the enterprise subscription to get access to all the features. Both the community and enterprise versions of the software are built by the same folks. That is a great selling point when trying to weigh the benefits of choosing Liferay over a competing product.
What are some of the changes in technology that developers should be focused on right now?
That's a big question. I think everyone has their own opinion on this one, to be honest. Lately though, I have found myself thinking about this. There was a time when business users had virtually no technical knowledge. I think those days are largely gone. Technology has been thrust into all of our everyday lives. Tablets, smartphones, smart TVs, smart cars but most importantly SELF SERVICE is a theme that is becoming ever present: empowering users to be self sufficient.
By updating Liferay to support OSGi, you are opening up the platform to this new model. I think programming in the future will be more and more microservice- or microcomponent-based development. Eventually, you will likely find that the outset of almost any project will be time spent scouring a registry selecting the services you want to use before you start stitching.
The prospect this provides for me is that we might see a day when our business user is able to build their own applications by snapping services and components together in much the same way we allow them to create and manage content today.
Are there other shifts or skill sets that you think will be critical for developers in the next five years?
I think the biggest challenge coming for developers is twofold. First, embracing this kind of change is difficult, especially for guys like me that have been around through the years. It's a pretty major shift from what we are used to as developers, but I think putting the control into the hands of the users is a good thing as it frees up your time to be creative and focus on something new.
The second challenge will be changing the way you architect or even think about development. We're used to tackling problems in the concept of an ecosystem, but for this type of model it really boils down to tackling the problem in a bubble. You have to assume a more contract-based approach to programming. Fortunately, for a number of years now, software has been headed in this direction. This contract-based approached has shown its face more than once already. First in the push for SOA, then in the movement towards public APIs and more recently in the fury of developing microservices. So we're already thinking contractually, but I feel like this is smaller still.
What does an open source project need to do to win over developers like you?
For me, it's all about the community. Some people like to fixate on documentation or developer guides. Don't get me wrong, those are very important, especially in the early days when you are new to the product and are trying to figure it out. Over the long term though, as people start to be a little more creative with their use of the tools, you start to wade into areas that are basically impossible to "document." At that point, for me, the responsiveness and the participation of the community becomes key.
You need to have the means to connect with the other people who are using this tool or product so that you can engage in a conversation with them. The conversation might end up being a round table type discussion where you are spitballing ideas, or it might be in a support type capacity where one member is helping another troubleshoot or understand a corner use case.
At the end of the day, I think that community connections are a foundational pillar for any successful open source project. From my experience, this is one of the places that Liferay excels. As one of Liferay's most active community members, I do have a bias I suppose, but I have been helped more times than I can count simply by posting a message in the forums or in the Liferay Community Slack channel. Sometimes it is a Liferay staff member that answers my question, but much of the time it is another community member like myself. If everyone gives just a little, then collectively we all gain a lot.