The GovIntranet WordPress theme was released in 2013 and since then I’ve been supporting an open source community of users and developers.
In this session I’ll talk about my experience of developing in the open and working out loud, what I’ve learned since starting as a WordPress developer and the ups and downs of managing ongoing theme and plugin development.
Video
Transcription
THE CHAIR: Okay, hello, welcome. Welcome to the final session on Sunday in Track A. Before we get started just want to thank our sponsors for making it possible to have this event, so big thanks to the Box sponsors, Timpani, WooCommerce and JETPACK, also to thank stall sponsors, HeartInternet, 34SP.com, wpengine and Go Daddy, as well as the dress circle and grand circle sponsors who have been downstairs and also a big thank you to the balcony and patron ponsors.
So, for the final session this afternoon, I’d like to IA and user experience pro, our next speaker is fanatical about intranet, he’s a wp developer and product lead at helpful technologies, with over 20 years’ experience in IT and digital communications, he’s worked with a wide range of clients including Transport for London and ministry for justice, the talk this afternoon is about building a community of intranet users. A big welcome for Luke Oatham.
LUKE OATHAM: Thank you, I’m going to be talking about my work I’ve been doing over the past three or four years, working with one theme, called gov intranet that we developed and how I’ve been using that with my clients, users around the world and developers.
A quick bit about me I’ll try and make this quick I’ve been around a while, I started out life as a database programmer, back in banking systems, computer based training, management information systems that kind of thing, so well used to handing database and SQL statements. My passion is intranets and I built my first intranet over 20 years ago, written in Flash, rubbish and one page and absolutely horrible for keeping up-to-date. Since then I’ve really picked up on intranets when I joined the London Underground and I spent about four years redoing their intranet and that’s how I came across usability and user experience, that’s how I kind of moved into that field. This was a time when, like today, you go into an office and you see Post-It Notes all over walls and it’s quite commonplace, back then when I first saw a usability person doing card sorting tests with people, it absolutely blew me away and I kind of moved over into that area.
So, I spent about three or four years at Underground, rewriting redoing all their content, we actually won an award from the Nielson Norman Group for that back in 2004 that was mainly for the work I had done on accessibility and usability.
I joined the Ministry of Justice in 2007, and stayed there for about five years as well, doing as much as I could really, working with a flat HTML structure we weren’t allowed to use databases, not a lad to use a scripting language, it was pretty hard publishing hard-coded HTML pages in Dreamweaver in a busy environment, you know where things are changing every day.
So, in 2012 I joined helpful technology, it was my first step into the world of WordPress, when I first heard about WordPress, I thought this is just a blogging platform how the hell do you build a website, let alone an intranet out of this.
One of my first projects, was for an organisation called Wilton Park, part of an government organisations, it’s where I heard about custom post heights, taxonomies, fields and what have you having been a database programmer dealing with SQL, that was both a help and a hindrance, so I was writing lines of code like this, so to the devs out there, ouch, I know, I’m doing loads of things wrong here, to the nontechnical people here I’m kind of hard coding stuff and putting it from the database to get into templates and not using any WordPress core, functions, not even aware of any WordPress core functions at this stage. So, this line of code here, I’m basically hard coding it for me my server, my clients and everything works fine. There is also a few security problems with it, because I’m just echoing out live data from the database and there could be problems with that, that’s a security risk. It’s a bit of a learning curve for me, then to do WordPress and start using all the core functions that are already there, I spent so long reinventing the wheel, every time, when there was a simple command that would have done it for me.
The Wilton Park site has been refreshed since then, given a bit of a face lift on the front-end and a bit of a triple bypass on the back end to keeps it all in order.
Then, around 2013, was when I started developing the gov intranet theme. So, we got approached by the department for culture, media and sport. So, this is one of the more exciting government departments, especially if you compare it to, to prison, taxes and that kind of thing, these there are people who put on the Olympics, do memorial services in London, responsible for disability in the Olympics, getting women in sport, that kind of thing, so an exciting department for me to work with.
They approached me and said, “We want to build an intranet and we would like it to work, along the same lines as the gov.uk website”, so those of you that are not familiar with that, this is the homepage of GOV UK and they recognise that people come to this site with one thing to do in mind, might be to renew your passport, might be to renew your driving licence, so it’s dominated by a search box and a lot of the categories, a lot of information has been categorised so people can search through the information and we are also catering for people that browse around prefer to click, click, click to get to places.
So, typical thing to do — hello, next slide… might be to renew your passport. The key thing about these pages that they have all been rewritten to be in plain English, nicely laid out, clear instructions. So, typically in government departments things are produced in massive Word documents or PDF documents as policies and before you would have to find that PDF and then you know, find where you wanted to get the advice you were looking for in the 60 or 90 pages of that PDF. So, they have kind of taken the approach of not having stuff in Word documents, not having stuff in PDF having stuff in HTML, it’s quicker but it needs to be written clearly, we have seen a lot of talks today and yesterday, you know, about writing for accessibility, writing in plain English.
So, we took this and basically brought it within the workplace, within the intranet, instead of things like, kind of, can I get a new passport, can I get a new driving licence, it’s simple things that people need to know, pretty much every day, things like how to book a meeting room, how to get a security pass, how to book visitors into the building, how to book a meeting room, how to find out how the video conferencing works. A glorified question and answer bank, basically, but there is skill in getting all this content written up nicely, so that people can understand it and so they can find it.
So, we duplicated this on the intranet, again, a glorified question and answer bank where people can — or editors and publishers will put their content on there and it’s all bite sized, nice chunks of information.
So, for the intranet theme that we have written, this is the core of it, it’s about helping people to do their jobs, letting people come to that intranet, search for something, find out how to do it and get on with your job.
Being an intranet though, we also need to cater for other different types of content, so… pardon me… I’ll get the hang of this in a minute. So, for internal news, internal communications departments they need to get messages out to staff, news stories, it could be corporate news stories or featured staff stories, we also support a special type of news for news updates and announcements, so for short-lived things that happen inside the organisations, it might be that the building was shut at the weekend or Prime Minister is visiting today, that kind of thing.
Of course, it’s support blog posts, where I came from, from the Ministry of Justice, back in the day when I was there, you wouldn’t have seen senior people blogging and when they asked to put this into the theme, I was like that might work, that might not, but it’s actually been very, very popular, so we’ve got senior people as well as lower levels of staff blogging about what they are doing and this is not necessarily work stuff, you know, you might hear a blog post from a minister talking about how he went on a walk in the moors and that kind of stuff, so it tends to kind of personalise the intranet.
A few other modules we have got as well, supporting job vacancies and projects, and later on when we have had further development in the theme, stuff, staff profiles, employee directory that kind of thing. A bonus plugin that we have added in, called introverts, so people can target people by team they are in et cetera and hoping to get a better click-through on those little adverts that appears.
Back end, typical WordPress, we have got a lot more things on the left hand menu than you might be used to, it’s normal for me now, when I go to a fresh, virgin WordPress install I kind of think I’ve list in and lost my admin privileges sometimes, there is just your pages and your post-options, but you know, it’s WordPress and this has been really, we’ve has really good feedback from publishers, editors and just the simplicity of WordPress, being able to manage things quickly and efficiency on a day-to-day basis, so there is a lot of busy departments using this, lots of publishing taking place and with everything in government lots of changes taking place. So, I make my living, really, about the, through the changes that constantly happen within government, there is a change of people moving around, leaving, joining, moving to different departments as well.
In the home page we have made this pretty widgetised it’s essentially a number of side bars there that editors can plop in widget and make it work how they want to this flexibility is not something that I would have seen before when people are designing intranets for people, it’s normally all designed it’s normally all signed off, and then it doesn’t change. It’s very hard for editors to customise that they have to go back to agency and demand more development work.
We do use a number of third party plugins to integrate with the system. One of these is advance customs fields pro, I was at the panel yesterday listening about how people use that, and their preferences or how they feel about that. Part of me feels a little bit guilty because I am not writing core meta boxes and things for myself, but using a plugin like this as a small business it means we can get stuff up running quickly, prototypes up quickly with custom fields whether it’s through widgets or page templates. We also use relevancy premium because of its ability to hook into the user side of the database so this is allows us to search users which I very useful internally for people being able to look at up people it’s not just a name search you don’t have to know the name of the person you might be searching on a skill, such as I want someone who help me do video’s what have you. We use gravity forms, this is a dream for publishers so when I used to work at the Ministry of Justice, to get a form on the intranet was about a two week process. We had to go and see the guy that did evaluation, we had to check that we had enough credits available, we had to anticipate how many form submissions we might have, and we had to have credit available to use those. Then we had to build the form put it on the intranet, and then obviously take it all down again. It was hard coded and took so long. People have used gravity form plugins will know how easy is it to get forms, polls or surveys up and running on your site.
We use bread crumbs if you want bread crumbs use the nav XT plugin and for page navigation, wp page navi. For the stealth directory, we are heavily relying on bbPress and all the functioning that does to bring about profiles and concept of having a user account. We have had a few complaints about using advance customs field pro, it’s a free theme but you have got to buy a premium plugin if you want to use it. That’s pretty much due to the licensing on the advance customs fields pro plugin I am not allowed to give that a way to people even though I have a developer license, unless I kind of put it into the theme. Then the rule is that it would have to be on a proper WordPress theme site. Which it is not.
So, we built this intranet for the department of culture and I started blogging about it it got picked up by the Government digital service. There was a blog post that they wrote in response to my blog post, and obviously inevitably a load of comments on that. People started asking can we get hold of it are you going to open source it. So as a small business we back at we were umming and ahhing, we knew in our hearts it’s the right thing to do it funded essentially by your money, public money that goes into the Government that drips down to the individual departments, eventually coming through small businesses, so we thought it would be pretty evil to start charging people for stuff we had already developed for another organisation. We did open source it we put it up on Github, as version 2, and yeah people started using it we start D getting feedback on Github, but at this stage it was still very much a technical set up there was no information to tell people what it did, or how to use it, or tips and tricks that kind of thing.
Having open sourced it, we started getting other Government departments knocking on the door. The first one was the Northern Ireland office who obviously read the blog post, came us to and said we want that. They were setting up a new digital press office, they came us to and said we want that, we don’t know how to use it we’ll need training. So from a business point of view, even though the theme is free, there’s still a lot of help and support that we can give in training people, how to use WordPress, how to write in plain English, how to write for accessibility, search engine that type of stuff.
About the same time, the department for culture had their system up and running for a few months, they came back us to sing for me. They wanted to have a staff directory, so I must have finished developing that before the Northern Ireland office launched they got that a a bonus as well. Any development that we do that’s paid for by clients, all goes back into the pot and that’s available for everybody else as well. So it’s kind of a nice way of working.
We have had a few pull requests from developers out there using the system, often bug fixes, or teaching me how to do things properly in WordPress. But it’s been nice for me to have other people working on this, and submitting pull requests. Effort to try to demonstrate what the system does, we got permission from the department for culture to actually take the content that they used to launch their intranet, and use that for demonstration purposes. So it’s suitably anonymised, we have taken out names or changed names and phone numbers, and links to internal systems what have you. But all the content is as they rewrote it, and they spent a long time, 3 months or so taking all their horrible PDF documents, splitting them up into nice bite chunks. The themes originally developed not with advance customs fields but with a plugin called Pods, which was great at the time, while we were using it, but we did find and this came up in some of the panel talks yesterday, talking about dependency, relying on other plugin there was a flurry of time when every update that happened to plug we rolled it out to client sites, it broke things. We had a few months of this until we thought this is not really working for us we need to switch to another system. So we moved to advanced custom fields that was quite a significant change meant moving from a free system to something where people were required to buy a paid plugin to use it.
But for me, technically, having the system out there not working on my clients, on my clients’ servers, there’s obviously a load of differences out there Luke’s learning curve. WordPress would release a new major version something new groovy functionality in it I would get all excited about, it put it in the theme roll it out on to Github, people would download it then boom, white screen of death. I had broken I don’t know how many intranets round the world using this. People with different versions of plugins or no plugins at all, so I would just gaily call a function, didn’t bother checking if that functional actually existed or not, so again problems on sites out there.
Got different database pre-figs, for the non-techies among you the database tables in WordPress, by default have a wp_ extension, as I said at the beginning I did write a few hairy SQL statements of my own, this was a few years ago where there wasn’t the functionality in WordPress for doing quite complex queries and meta queries. Of course, I was coding stuff according to what my database said, worked for me fine, as soon as it gets out there boom white screen of death again or no results on the page. You have got people that don’t install their software, their WordPress installation in the root folder, it’s possible to have other folders or lots of different sites on the same site. So again, a lot of my hard coding back to root of the folder would have caused broken links for people or maybe taken them off to another site. But different permalink structure’s different languages, so I am bilingual, I speak French I learned to speak French, language is very interesting to me, and when I discovered that WordPress was translatable, I got very excited about that too, and started putting the necessary codes into the templates and so that the theme could be translated.
Pretty much, all my WordPress skills, are as a result of what clients have asked me to develop, that is the limit of my knowledge. I have never had anybody else ask for a child theme, I have never had anybody ask for multi-site set up, society theme wasn’t ready for this, and it’s only through putting it out on Github, in an open source environment where I am getting comments back from other people so this how I am learning about the wonders of WordPress.
So, we’re using the same theme for all of my clients. Who have many different types of intranets, we have got round this by kind of modularising it and putting in lots of buttons and switch that people can turn on and off in the back end it’s modularised, for each option there will be another set of options as well. This allows me to have the same system, installed in lots of different places, but performing different functions depending on what people need.
So with each new client that comes along, there’s normally more requests for development, or tweaks, and so I find myself managing the snowball. It’s trying to reign it in, trying to steer that chariot in a straight line. Without going off on a tangent because at the back of my mind this system has to work for everybody.
So, since the initial launch, we have had requests into develop a staff directory, I mentioned this this is from DCMS, and again I have just taken BuddyPress, sorry bbPress to create these staff profiles. We generally have extra bits and pieces, plugins that we add on to give extra functionality. This is an example of the service updates module that we have created, allowing people to put up short lived pieces of information that will go up and come down again, so not a blog post, not a news story that will hang round for ever. Because I have worked on an intranet, in a busy department, it’s not all about the front-end, it’s not all about the users, some of those users are your CMS users so your publishers, and your editors, and for me I find that they often get overlooked when people are doing a research project or a refresh of their intranet, they will do loads of research and interviews with stakeholders and users, but often failed to talk to the actual people that will be managing this site today.
So, over the months we have put a few useful things in the back end that will help people manage their content, what I’m showing you here is a lot of things that integrate with Google Analytics, so we want to know what people aren’t looking at on the intranet, this is our way of saying that this content can go, nobody is looking at it, it needs to earn its place on the internet, by default Google Analytics you can’t say what people haven’t looked at, it only knows what people have looked at. So, one of our plug-ins was to basically create a matrix of all your pages and posts on the site over the past 12 month and so away and cross-reference that with Google Analytics and come back and say, you know, this page has had zero hits.
On the other end of the spectrum we have a plug-in that will pull out the top hits, the most popular stuff that people are looking at, it’s useful, it’s a plugin, just sits on the homepage normally it’s bringing back real time, live results from Google Analytics, based on what people are actually looking at right now.
So, on an intranet, internally, it can get very political within organisations, you will get people screaming out that they need to be on the homepage because they are the most important department, of course, every department thinks they are the most important department. This little widget that’s pulling out the popular stuff is the truth, this is what people are actually looking at.
When this went live at DCMS the most popular post was how to leave the department. They left that up. They were honest about it and left it up. We have had other clients who don’t want to use this because they don’t actually want to tell people the truth.
We look thereafter driver vehicle standards authority and they are quite a technical company so these are people who do your MOT tests, so for them they have got a huge amount of documents they need to get to so we have created a little module that allows them to search or browse by A to z a tap of document or category.
So, I’ve tried to support clients, users out there that are using it out there for themselves, users from Github and developers who are obviously taking this theme as well and using it in their own businesses for their own clients.
So, there is number of spaces at their on-line that I need to work in, I use Github for the more technical things, this will be where people will add bug reports, you know, problems with the system but it’s much more of a technical nature.
We’ve got a Trello board, kind of a Kanban thing going on here, this is publicly available, we are showing what is bubbling away in the background ideas for new improvements for the site, bug fixes that have been reported, what I’m working on right now and then a list of all the additions and enhancements and bug fixes that have gone in to the system. So, this is so that people can keep an eye on what is happening, what’s new and what is possibly going to go into the system in the future.
I’ve already showed the homepage but we obviously have this demo page up so people can get an idea of how the system works, I have a rejuvenation programme in the background to keep it looking fresh as a demonstration site.
We didn’t just put it up Github and let people get on with it, we are actually dog-fooding here, we are actually using our own product as it was intended we are using our intranet software to teach you how to use our intranet software when we released the software as Open Source we had to say we can’t support it, it’s there for you to use, don’t start emailing us, of course, people do start emailing you, as nice and friendly as we can be, we are a small business and we need to make money. Partly as a — so I didn’t have to keep saying, “Go away”, to people and partly to support my clients as well we develop is the help site, again another question Bank of How to do things in our system. It’s also got a forum on it, so users can sign up and ask questions or share their experiences there. For me this was an eye-opener of the beauty of open source, at one stage people started putting up their own — sorry I’m going too long — they started putting up their own stuff and people started answering, that was very heart-warming for me. I’ve waffled on too long any questions! [Applause].
DAN MABY: Great, thank you. We do have time for some questions, if anybody has any at all?
FROM THE FLOOR: Umm, hey thanks for that. Aside from looking at what pages haven’t had any hits, did you do anything around aging of content to make sure content doesn’t go stale, like refreshing it every six months or something like that with your editors.
LUKE OATHAM: Yes, we have another couple of plugins to automatically put things down into draft status for some of these news items they have a sell by status we tent like that hanging around it clogs up search results, we have another plugin where people can say yes this is up for review in six months or a year’s time that will ping off an email to the author or editor of that post.
It sounds a good idea, in practice, you know, people get loads of e-mails in their inbox, they are like. “Yes, yes, yes, it’s still okay, that’s still okay”, it kind of doesn’t serve a purpose but it’s there in the system.
DAN MABY: Questions?
FROM THE FLOOR: With websites in, internet facing websites there are general a small amount of users that make the changes in a company, with an intranet it’s generally lots of people in the company making changes, do you have a structure, permission structure around certain areas of the site that people can and can’t edit?
LUKE OATHAM: Yes, every new client asks this question and my answer is, it is difficult. So, I think in WordPress this is probably the least supported thing that I would ask for if I was a CMS person wanting a new CMS. In practice, people are tending to go for a centralised drug, there is a lot of argument about this, people should be allowed to publish what they want, in the corporate environment it’s important that things are written well, letting people run riot when they haven’t been taught how to write plain English for the web, obviously it leads to problems, I think the answer is, only people can post in this, or in this term in a taxonomy, I found it quite hard to do in WordPress, there is a number of plugins we have used but for each one you install it kind of shoves something else, all the roles and capabilities that we heard about earlier today in this room, start coming into play.
DAN MABY: Any more questions? No. Can I ask, just one more, you mention the short-lived posts, is that something that the user is setting a date, or is that something that is programmatically happening?
LUKE OATHAM: Yes, it’s just a bit of a metadata, they tick a box to say I want this to expire at a certain amount of time, then it’s just a background job that comes along and tidies up, a little Demon.
DAN MABY: Thank you, thank you very much. [Applause]. Okay, so we are going to finish up with the closing remark in here, in about ten minutes.