• 43:52

Episode number: 31

Upgrading EE

with Shawn Maida


If you build ExpressionEngine sites, then you know that upgrading is a process. But it doesn’t have to be a painful process. Special guest Shawn Maida of EE Coder shares his suggestions for making the EE upgrade process not only smooth, but an important part of the client relationship. Shawn shares EE Coder’s process for deciding if/when an upgrade is necessary and the high-level of client communication needed to ensure an upgrade is successful. He details EE Coder’s upgrade workflow, lessons learned from upgrading inherited projects and even how they charge for upgrades. Shawn also answers listener questions about EE upgrades.


  • No tags available for this podcast

Sponsored by

  • Your ad here (dimensions: 520 pixels wide and 60 pixels tall)
  • Your ad here (dimensions: 520 pixels wide and 60 pixels tall)

Episode Transcript

CTRL+CLICK CAST is proud to provide transcripts for our audience members who prefer text-based content. However, our episodes are designed for an audio experience, which includes emotion and emphasis that don't always translate to our transcripts. Additionally, our transcripts are generated by human transcribers and may contain errors. If you require clarification, please listen to the audio.


Lea Alcantara: You are listening to CTRL+CLICK CAST. We inspect the web for you! Today Shawn Maida joins the show to talk about the technical and biz side of upgrading ExpressionEngine. I’m your host, Lea Alcantara, and I’m joined by my fab co-host:

Emily Lewis: Emily Lewis!

Lea Alcantara: No episode…


Lea Alcantara: You are listening to CTRL+CLICK CAST. We inspect the web for you! Today Shawn Maida joins the show to talk about the technical and biz side of upgrading ExpressionEngine. I’m your host, Lea Alcantara, and I’m joined by my fab co-host:

Emily Lewis: Emily Lewis!

Lea Alcantara: No episode sponsor today, but we would like to thank Pixel & Tonic for being CTRL+CLICKs major sponsor. They added a couple of new feature introduction videos for Craft, one for custom fields and another for section types. Short videos are such a great way to get up to speed, so if youre interested in checking out Craft, well have links in the show notes with these intro vids. And we do have openings for episode sponsors! So if you are interested in promoting your business, product or service, please visit ctrlclickcast.com/advertise.

[Music stops]

Emily Lewis: Today were talking to Shawn Maida about the technical and business side of upgrading EE. Shawn is the owner and president of Visual Chefs, a Richmond, Virginia-based agency specializing in CMS and custom web app development. While Shawn is versed in a number of content management systems, he has a passion for ExpressionEngine, launching over 300 client projects in EE and bringing together ExpressionEngine experts to form EE Coder. Welcome to the show, Shawn!

Shawn Maida: Hey, how are you guys doing?

Emily Lewis: Great!

Lea Alcantara: Great! So Shawn, can you tell our listeners a bit more about yourself?

Shawn Maida: Sure. Well, like you said, I live in Richmond, Virginia. Ive got three kids under four.

Lea Alcantara: Oh.

Shawn Maida: Which means life is crazy.

Emily Lewis: [Laughs]

Shawn Maida: So if Im not working hard at work and trying to build our team and support our clients, Im generally at home helping my wife chase all the little ones around.

Lea Alcantara: [Laughs]

Shawn Maida: So I think that that kind of takes up like a 100% of my life at this point.

Emily Lewis: So Im curious, Shawn. As I said in the intro, Visual Chefs is your agency, and then what exactly is EE Coder. Is it like a coalition, or what would you call it?

Shawn Maida: Its my branding disaster.

Emily Lewis: [Laughs]

Lea Alcantara: Oh.

Shawn Maida: So in 2007 we started EE Coder. It just really is an ExpressionEngine marketing kind of engine to go out and partner with designers and agencies and people that I think at the time like needed a content management system. It was like the add-on feature of a website like in the day where now its expected. And it just grew and just became 100% of our business and who we are, so were kind of working actually to like realign our brands now. But it was really designed as a service, I mean, for ExpressionEngine, but kind of as a marketing vehicle if you will, and it worked.

Lea Alcantara: Interesting, so almost kind of like a landing page that ran away with you.

Shawn Maida: [Laughs] A landing page that ended up with its own contracts.

Emily Lewis: [Laughs]

Lea Alcantara: Yeah, exactly. [Laughs]

Shawn Maida: Yeah, yeah. Business cards and everything, yes, that’s exactly what it was.

Lea Alcantara: So youve been working on ExpressionEngine for a long time, weve established that. And with all these sites in your arsenal, upgrading EE must be quite the venture. [Laughs]

Emily Lewis: [Laughs]

Lea Alcantara: And I guess thats like the easiest way to kindly describe it, I guess. I mean, its a common question we hear like, “Have you upgraded to version whatever?” after every release. So I guess the first question regarding upgrades, especially when youve got, say, 300 clients or whatever to kind of manage or deal with, what determines if/when you do an upgrade?

Shawn Maida: Sure. I think originally when like our sites were smaller.

Lea Alcantara: Right.

Shawn Maida: So like in the beginning, we upgraded more frequently, and we upgraded a lot because we were getting support in the forums like back in the beginning.

Lea Alcantara: Right.

Shawn Maida: And it was just like that was the answer: “Are you on the latest version?” And youre like, “No. Man, okay, let me upgrade.” Now, I think it really, especially with a lot of like larger sites and more customized sites like theres not a specific “Oh, the latest version is out, lets upgrade.” Its more like evaluating the specific client and the needs. And like we’d a large site that had a lot of users and login issues with the people being able to stay logged in.

Lea Alcantara: Right.

Shawn Maida: So the version of EE came out where they had fixed that or supposedly fixed it at the time, like upgrading kind of made sense.

Lea Alcantara: Sure

Shawn Maida: It was too large of a feature to just go in try and like hack in or fix EE’s core. So I think we take it very much client by client, evaluating the costs, the benefits.

Lea Alcantara: [Agrees]

Shawn Maida: Is there anything that theyre going to get out of that particular upgrade, why would we do it?

Lea Alcantara: Interesting. I feel like the conflict regarding that is if you do have that simple client where if it aint broke, dont fix it, you know, that kind of thing?

Shawn Maida: Right.

Lea Alcantara: And then at some point then, theyre still chugging along, everything is still working, but theyre on like 2.1 or 2.3 or something like that, and were all the way to 2.9 at this point. Would you still touch that at all, and why?

Shawn Maida: Yeah, and I was actually thinking about that when just like looking back at our own upgrades and some of the challenges we faced. Because I think the downside of waiting a really long time between upgrades is that you get more code thats deprecated and like add-ons that don’t work, and I feel like you run into more issues. But youre sort of only upgrading once instead of 10 times. We dont have many like EE1 clients.

Lea Alcantara: Right.

Shawn Maida: But we do have some clients that are still sitting on early versions of EE, and I just dont think its ever made sense for them to upgrade because everything kind of hums along and they like have an occasional request for an update. I think there is, like, you want to get the security patches in, and that sort of thing.

Lea Alcantara: Right.

Shawn Maida: So theres like a reason to upgrade, but I think especially with the smaller sites, sometimes they cant justify the cost of upgrading. Especially back when you were doing $1,500-sites, $5,000-sites, and then upgrading where we need 12 hours, you know?

Lea Alcantara: Yeah, for sure.

Emily Lewis: Well, thats an interesting point you bring up, so the upgrade process, is it extremely time consuming? I know thats sort of a hard question to answer because every site is going to be kind of custom in terms of what add-ons and stuff you have, but I know from my own experience, I minimally set aside at least two hours.

Shawn Maida: Yeah, I think for us, we just dont have a lot of those sites anymore. But I think youre right, like we used to, and we still do on the smaller sites, we would tell our client, “Hey, potentially a 4-hour window for this site like if were doing an upgrade.” It might only take an hour or it might take two hours. Weve done upgrades that are like three or four weeks worth of effort.

Emily Lewis: Ouch!

Lea Alcantara: [Agrees]

Shawn Maida: But yeah, I mean, I think there is some sort of minimal time that you need to set aside, be it a couple of hours, if thats what youre asking.

Lea Alcantara: Well, my question is when were thinking about like a straight upgrade and it sounds like even the projects that take several weeks to upgrade. At what point do you decide whether upgrading make sense versus what I feel like is also common, just creating a new ExpressionEngine instance in that new version and then importing from the old version.

Shawn Maida: Yeah.

Lea Alcantara: So almost as if its from scratch as opposed to using the upgrade script.

Shawn Maida: I mean, I think we do evaluate both. I think more often we do an upgrade over rebuilding.

Lea Alcantara: Aha.

Shawn Maida: But I think we very often would just sit down and say like, “Okay, this particular upgrade is going to be 16 hours.” Theres a certain amount of risk in it because its got an early version structure and it might break or whatever is going on, but I know that I could like confidently rebuild it, but rebuilding it would be 30 hours.

Emily Lewis: Right.

Lea Alcantara: Okay, right.

Shawn Maida: So I think we just try and evaluate the cost and time. And sometimes its presenting those options to the client.

Lea Alcantara: Right.

Shawn Maida: Now, were looking at an EE1 to 2 upgrade with 30 MSM sites.

Lea Alcantara: Oh my god.

Shawn Maida: Yeah, and Im looking at it. Im like, “Man, I dont know what the level of effort is. I can probably better judge the level of effort to build it.” With the upgrade, theres a lot of risk. And we’re either going to take that fixed cost or were going to like hourly for the client and then its their risk. So sometimes I think it is just kind of working through the business case behind it and then talking it through with your clients of like, “Okay, well, we can upgrade, but we dont know exactly how long this is going to take.”

Emily Lewis: Im curious if you do have that kind of conversation where its a little more open-ended with the client. Do you have a negative client reaction to that? Are they kind of understanding of this sort of

Shawn Maida: Oh, its always.

Emily Lewis: [Laughs]

Lea Alcantara: [Laughs]

Shawn Maida: Its always that nobody is ever happy. I think sometimes. I mean, I think theres always with the upgrades in general, a lot of times clients dont understand or people dont understand like what the cost is, whose responsibility it is if something breaks during the upgrade. But I think overall like we just tend to be as transparent as we can be. I think thats normally received really well. Like youre going in, youre being honest, youre being transparent, and people like they might not like it sometimes, but I think they get that transparency and honesty sort of, and I think its really hard to be too mad at somebody when theyre just telling you. They might be frustrated that they spent $10,000 on the site and they need to spend $2,000 on an update, you know?

Lea Alcantara: Right.

Shawn Maida: But I feel like thats a different frustration. Its not one with us.

Lea Alcantara: I definitely think though that there is kind of an education aspect when discussing upgrades with clients, especially because there are other CMSs that have one-click upgrades or whatever. Or maybe that particular site doesnt have as many third-party add-ons or they have an experience with another site where you just press a button and everything is upgraded, “Why is this an extra $2,000 to upgrade this one?” And then having to discuss and say, “Well, no, we cant just do a one click. There are different server environments now to discuss or different security stuff that we have to think about that wasnt there three or five years ago.

Timestamp: 00:09:52

Shawn Maida: Yeah.

Emily Lewis: Im curious, should we be even mentioning upgrades earlier on in our engagement with the client so that theyre sort of prepared? Is that even worth it to think about?

Shawn Maida: I feel like at this point for us, we try and mention as much as we can about everything.

Lea Alcantara: Sure.

Shawn Maida: I mean, its like, I think upgrades is something you should talk about. We pretty much go out the gate with like a Phase 2 bucket or a backlog. And so I think upgrades are the same thing. Like theres a maintenance cost associated with a site or a growing business, you know?

Emily Lewis: [Agrees]

Shawn Maida: I mean, youre building a site, it only has 200 users. Five years later it has 30,000 users. I think just upfront conversations about ongoing cost of that with clients is really important, just so they understand that what youre building you might be building it for now and for this year, but like whats the shelf life of that product before it needs to be updated, upgraded or changed, you know?

Emily Lewis: Yeah, I think that “maintenance” umbrella is a good umbrella to put it under in those earlier discussions with the client because I think if they can get their head around the idea of maintenance, but upgrading might be a little more narrow for them to sort of appreciate the investment of effort. Im curious: you mentioned a couple of times like that you evaluate for each project on a client-by-client basis. Can you talk a little bit about your evaluation process? What do you do? Do you do an audit of the add-ons? Do you look at server requirements? Whats involved?

Shawn Maida: Yeah, I kind of ask the team a little bit because they do more of a day-to-day on this now, but we do an audit of existing add-ons, kind of whats installed, whats there thats custom, whats written specifically for their site. I think we always run the install wizard just to make sure that …

Lea Alcantara: [Agrees]

Shawn Maida: there are only like eight requirements in it, but you end up halfway through an upgrade and realize like if the PHP version on the server isn’t going to support the new EE install. I think youll look a little foolish. So we definitely do that audit. We have started doing site audits. A lot of the upgrades we see come to us from other developers. If the site was built like three years ago, something stopped working, they come to us. Theyve been told they should upgrade, and so they just come in and actually say like, “EE Coder, we want an upgrade.”

What we found was we like started inheriting a lot of like other peoples problems like in the site. So things would like break over time just through updates or whatever and then we would upgrade the site and suddenly like we were responsible for every bug that had existed for the last three years.

Emily Lewis: [Agrees]

Lea Alcantara: Right.

Shawn Maida: And like even if we could explain that upfront, its still was like this funny place with the client like having to go back and prove it was broken. So we started keeping like copies of the pre-upgraded site.

Emily Lewis: Right.

Shawn Maida: So now, were just, 1) how we would set that contract up, but 2) its really trying to dig in and do an evaluation of the site. But you cant do that or can you do that on the site thats four hours worth of work?

Emily Lewis: Right.

Shawn Maida: So I think it kind of depends. But yeah, we are definitely trying to do full audits, documenting everything upfront of what needs to be updated.

Lea Alcantara: Im curious about the tools you use for that. Do you just have like to-do list somewhere or do you use Basecamp or do you use just spreadsheet?

Shawn Maida: We call it an “Andrew.”

Emily Lewis: [Laughs]

Lea Alcantara: An “Andrew.” [Laughs]

Shawn Maida: An “Andrew.” I was very fortunate in that the first person I hired was really amazing, and I think we built so much of our business around him. I was unfortunate because that led to not like documenting some things just because I didnt have to.

Lea Alcantara: Right.

Shawn Maida: And so as weve grown from like one to 12 and there are like multiple people doing upgrades and stuff now. We really have been going back and like making spreadsheets, making lists of what needs to be done. But up until recently, that didnt exist at all.

Now, we have something like basic documentation. We also kind of have an internal knowledge base for bugs and issues that we encounter, its just like a kind of great place to document something that weve seen before that may help another developer on the team when they jump into an upgrade.

Emily Lewis: [Agrees]

Lea Alcantara: Well, thats a good idea. Do you have any automated script that’s just pre-created to sniff a bunch of things the moment you inherit a site?

Shawn Maida: We do not, although it sounds like a decent idea. I talked to Tom Jaeger from EE Harbor.

Lea Alcantara: [Agrees]

Shawn Maida: And he was that they diff. He keeps like a base copy of every version of ExpressionEngine.

Lea Alcantara: Wow!

Shawn Maida: And I think in large part because theyre add-on developers.

Emily Lewis: Right.

Shawn Maida: But he said he actually like diffs the core. Hes using like the Mac Diff tool just to see if anybody has like hacked EE. He said thats helped him a lot just because hell find hell inherit a site where somebody has gone in and changed a line of code here and a line of code there. So he said thats exposed potential issues to him upfront. So I know that was a pretty good idea if you manage to hold on to all the old versions of ExpressionEngine.

Emily Lewis: So when it comes to an upgrade, is it something that a single person on your team tackles or do they work with others to handle the upgrade?

Shawn Maida: I think it depends on size. I think the majority of upgrades are single developer with another developer or multiple developers sort of there for support. I think also as a matter of time. Like its as soon as an issue is encountered, its sort of flagged by the team because somebody else might have seen it before. And so yeah, but typically a single developer on the smaller upgrades. The larger upgrades we’ve done, its still probably a single developer doing work, but multiple people doing QA, doing some add-on upgrades and that sort of thing.

Lea Alcantara: Cool. So Im a little bit curious about the nitty-gritty of this particular workflow. So you mentioned that you started to document it a bit more and have a place for multiple members of your team to deal with. Can you just outline the general steps that they do go through?

Shawn Maida: Yeah, I think in terms of workflow for us, one is documentation first. So we really are going through the site, looking at what add-ons were installed, checking the server to make sure that its going to support the new version. Then were checking that everything can be upgraded, that the upgrades, there is sort of compatibility so verifying that all of the add-ons have been updated to the latest version of ExpressionEngine. Sometimes they havent been and wed really need to do an upgrade, so well evaluate whether or not we can just upgrade the add-on ourselves.

Lea Alcantara: [Agrees]

Shawn Maida: A lot of times, the add-on doesnt say that it support the latest version so well kind of check and see whats been changed in the code. And sometimes its simple with just some functions have been deprecated and well go in and switch it out. And I think that was more common like with plugins when you are going from like EE1 to 2, just a lot of times its just faster to go ahead and just update them ourselves. So we check those things.

And then we really talk to the client about it. We dont typically do upgrades on production servers, but there are some clients that just being offline doesnt matter. Its a small personal blog. We only need two hours. We can do a backup first, and sort of client risk for being offline just doesnt matter to them. And then we have other clients where theyre like news, content’s being published regularly, so we sort of talk about different ideas about content freezes.

Lea Alcantara: Right.

Shawn Maida: And saying, “Okay, can you freeze content for four hours, or can you double-publish for four hours?” And so sort of go through that whole planning with the client of like what the upgrade looks like.

If its a site with a lot of custom functionality so we have a site with half a million member accounts, about 60,000 active members. So it is like when that site needs an upgrade, it needs like a long period of QA. There is a lot more involved. So just kind of working through that with the client.

Once thats all set, well go into the upgrade process. Normally, its copying the production site down to a staging environment. Codes normally and version control with Git and Beanstalk at this point, and well do kind of a test upgrade or well run through an upgrade on staging. I think our guys are normally like upgrading add-ons first now whenever they can.

Lea Alcantara: [Agrees]

Shawn Maida: And so theyre bringing like the entire system up to the most recent version before they upgrade EE.

Lea Alcantara: Right.

Shawn Maida: Making template changes where they can, kind of getting everything ready to go, and then upgrading ExpressionEngine itself, and then doing QA and testing. And then well normally, depending on those earlier conversations with the client, sometimes the client will do QA and we can like just roll their whole site back out into production, because theyre only making a few content in it and its not a membership site, its not payment. There’s no content that really matters.

Lea Alcantara: Yeah.

Shawn Maida: Other times it is sort of then scheduling like what we would call like a live upgrade, and thats one of two things for us generally, because that upgrade process might have taken like a week, depending on if its a bigger site.

Lea Alcantara: Right.

Shawn Maida: So then it would sort of be rolling through that process again in a very like confined window.

Lea Alcantara: [Agrees]

Shawn Maida: So wed say to client, “Okay, for the next four hours, dont publish content. Were going to take another snapshot, do an upgrade on staging, take your site down for 15 minutes and like swap out a new production version.” I think thats generally how it would go. Were also like at that point we have upgraded templates, we have upgraded add-ons, and we have all like kind of upgraded code around, so were just moving it in through Git and were not actually having to do that at the time of the upgrade, if that make sense.

Lea Alcantara: So Im curious also, is there a particular day or time of day that you think four-hour window or “pause content” addition is good to deal with?

Shawn Maida: Friday afternoons at 4 o’clock, before we all go home.

Emily Lewis: [Laughs]

Lea Alcantara: Yeah. [Laughs]

Shawn Maida: No, I think thats actually been the hardest for us in talking to clients. I know weve done upgrades at 3 a.m.

Lea Alcantara: Oh god.

Shawn Maida: Yeah, which is certainly not desirable for anybody, and the clients are like normally available. Its like, “Im upgrading your site, you need to do QA.” Like were all going to sit up on Skype and thats just not fun.

So we try and look at traffic, look at Google Analytics or whatever they have to see if they have down days. If theres a good time, talk to them about their publishing schedules, but we do try and do them like earlier in the week. We also try and do them like really early in the morning, so Ive got a couple of guys that they kind of have flex schedules here during the day. So Ive got some people that are like 5 and 6 oclock in the morning people, so theyll get up and do an upgrade first in the morning before the clients get rolling.

But I tend to do them earlier in the week because I just like having sort of the week to find issues if they do crop up because they do, and I think Im doing as much as I can to save my employees, team or myself from like nights on weekend type phone calls.

Timestamp: 00:20:26

Emily Lewis: Im curious if you have any tips or suggestions for that add-on audit process. I cant tell you how many times I go to see if an add-on is compatible with the latest version. Theres no documentation anywhere of what the change log is or anything. Do you contact the add-on developer directly or do you dig into the code of it and take a look?

Shawn Maida: I think it depends. I mean, Ive definitely contacted add-on developers. Ive looked at the code myself. I dont think theres any great magic answer, but Ill reach out. I mean, Ive emailed or called people about custom add-ons theyve written, just trying to get any information that I can. Ive called people about sites that weve taken over and there is functionality that you dont know exists, you know?

Lea Alcantara: Right.

Shawn Maida: So a lot of times Ill get kind of permission from the client to reach out to the previous developer. Whats weird to me is like a lot of times the clients are the ones that a little like uncomfortable with that.

Lea Alcantara: Right.

Shawn Maida: Because of however their relationship ended.

Lea Alcantara: Yeah.

Shawn Maida: But I think most of us is like we know each other in the community now, so you end up just calling somebody that you know and saying, “Hey, Ive taken over this site. Im like not really worried about the business of it, but it seems like theres a lot going on Im trying to upgrade it. Do you have any info?”

Lea Alcantara: Right.

Shawn Maida: But yeah, specific to the add-ons, I dont think theres like a surefire answer for how to figure that out.

Emily Lewis: I think the surefire answer is if the developers would document it. [Laughs]

Lea Alcantara: Well, Im curious. I want to touch on how you mentioned taking over somebody elses work and trying to figure out whats going on. You kind of touched on it a little bit earlier about trying to figure out, “Well, if it was broken before how do you prove that it wasnt you that broke it, et cetera.” So how do you deal with the liability of inheriting a site that a client wants you to upgrade?

Shawn Maida: A lot of conversations with the client upfront.

Emily Lewis: [Agrees]

Shawn Maida: I mean, I think thats just having those direct, honest conversations about what youre taking over. And that there is risk, and thats somebodys risk and I dont think just because were developers, that its just our risks to take by default, which seems to be like the mentality sometimes.

Lea Alcantara: Yeah.

Shawn Maida: But almost all of our upgrades now are hourly, so we just dont do fixed cost upgrades because of that. Even that requires a lot of communication too though.

Lea Alcantara: So have you seen a pattern? Are there any particular common issues youve seen with upgrading someone elses work?

Shawn Maida: I think that a lot of it is just because one of the reasons I think we all love ExpressionEngine is because its so flexible.

Emily Lewis: [Agrees]

Lea Alcantara: Right.

Shawn Maida: So we all do things like slightly differently.

Lea Alcantara: Yeah.

Shawn Maida: I dont think thats an issue necessarily, but I often find like well try and build time in, I would say, to clean things up. I mean, I think thats also just a matter of sites changing over time or standards changing over time.

Lea Alcantara: Right

Shawn Maida: So like in addition to just like trying to bring software up-to-date, well take time to like, “Oh, lets implement ExpressionEngine Layouts now because well get like a little performance boost when we do it.” So its not really something of an issue from the previous developer as much as its like trying to push the site forward or nudge it forward.

Lea Alcantara: Using new techniques, yeah.

Shawn Maida: Yeah. I mean, weve all learned so much. People used to build navigation with categories. We dont do that anymore.

Lea Alcantara: Or everything is an embed.

Shawn Maida: Everything is an embed, yeah.

Emily Lewis: [Laughs]

Shawn Maida: And that stuff we all clean up, like if we see it. Ive definitely seen where like the closing HTML tag is like an embed by itself.

Lea Alcantara: Oh wow, yeah.

Shawn Maida: Its those sort of things, and so were all like generally tell the client that stuff upfront and then kind of give them a laundry list and say, “Well, these are some of the things were also going to clean up. And like they dont really matter, but it keeps your site living and breathing as it is, like its something youre going to continue to carry forward with you for the next five years, and you just probably just go ahead and do the stuff, you know?”

Emily Lewis: [Agrees]

Lea Alcantara: Yeah.

Shawn Maida: Because at some point its going to come back to you.

Emily Lewis: So we had a couple of listener questions I wanted to bring in to the conversation. The first of which is Kevin Nicholson wanted to know, “What do you think is the best way to make for a painless EE upgrade?” And he was thinking, “Is it about fewer add-ons?”

Shawn Maida: I always think you should like evaluate what add-ons youre using for sure, like you should.

Lea Alcantara: [Agrees]

Shawn Maida: When youre building a site, you need to think about that and not just grab every plugin that exist. Were probably a little slow to like change here, that’s in part…

Lea Alcantara: Right.

Shawn Maida: because we use add-ons that we trust. We use products that have been around, you know?

Lea Alcantara: Right.

Shawn Maida: So I know Brandons add-ons are always awesome. Brandon (Kelly) supported his add-ons. Solspace supported their add-ons. So when we had upgrade issues, like there was somebody else there. So I think we were just very like selective. And then specifically about using a lot of add-ons, I think for us kind of because our background is more development-focused, we do tend to write like plugins for every site. And so well end up with like utilities plugin that we get to have instead of having like 30 plugins from Devot:ee, well just have one that might have 20 functions in it. But I think for us that makes upgrading a little easier. But I think definitely like trying to know the software and the developers that youre using their products, I think make sense when upgrades come.

Lea Alcantara: So theres another listener question from Jae Barclay that I wanted to touch on too. His first … he actually had several questions. Thanks Jae. [Laughs]

Shawn Maida: Oh-oh.

Lea Alcantara: His first question was, “Do you think an honest-to-goodness one-click upgrade tool will or can ever happen for EE?” Have you ever used something like Updater maybe perhaps, or just in general?

Shawn Maida: We tried using Updater I think when it was first released. I never tried it, but one of our developers that does a lot of upgrades tried it. It wasnt, at the time, I think something that he felt was beneficial.

Lea Alcantara: [Agrees]

Shawn Maida: So kind of his part of this call or planning for this call, we talked about giving it another shot now. And so I think thats something well do, but I just really cant answer that. I do wonder about the one-click upgrades. I wonder more because the sites we see so often, I just cant imagine clicking a button and then being fully updated.

Lea Alcantara: Yeah.

Shawn Maida: I think part of it is probably EllisLabs like process and then things changed like in versions. Im glad that there is forward progress, but things do break. Code gets deprecated. How you template change, and so I think I dont know. Im almost not comfortable with it, like I prefer to…

Lea Alcantara: Yeah.

Shawn Maida: Because I think thats something with the upgrades that we see that a place where we do run into issues is that like you finish an upgrade and youre like “High five, yes, it worked!” but you didnt deal with the fact that like Structure pagination was deprecated. It still works

Lea Alcantara: [Agrees]

Shawn Maida: but like really probably its a good time to stop and like go and redo the code now.

Lea Alcantara: Right.

Shawn Maida: Because like five versions from now, its going to be removed and not work at all. I think sometimes we also have to just stop and kind of again like make sure that everything code-wise is up to where it needs to be in addition to just being excited that the software version now say like 2.9.2, you know?

Lea Alcantara: [Agrees]

Shawn Maida: Because otherwise were sort of just delaying your problems.

Lea Alcantara: So Jae had another question. We kind of touched on whether we do upgrades or import stuff so this one is more about the import thing. His second question is, “Do you use any MySQL tool for database migration a la SQL Workbench or others? If so, what do you recommend?”

Shawn Maida: We, not typically. I mean, we had in the past. I feel like that when we had done it, I feel like its definitely required for somebody with a certain level of knowledge and skill. So I think for us, data migration is a case-by-case. We have done more on rebuilds than upgrades so its like we rebuild sometimes versus an upgrade, but kind of a new design.

Lea Alcantara: [Agrees]

Shawn Maida: We do a lot of like data exports/imports that way. I mean, we have used, and I dont even remember what SQL it was at this point, but we have done like data merging to pick out members and to pick out orders and that sort of thing.

Lea Alcantara: [Agrees]

Shawn Maida: And that was even a couple of years ago. We just havent. I think weve gotten our upgrade process, and we really havent run into that recently.

Emily Lewis: This is not really a question, but I think a point thats useful to mention is from another listener, Dorothy Molloy. She had gone through the process of upgrading an ExpressionEngine MSM site, and for her, Im gathering at least from the blog post she shared with us, which Ill make sure we link to in our show notes, that she hadnt really looked at the add-ons before doing the upgrade and then had a fatal error. And so she put together a really succinct and straightforward blog post about what to do if you do that yourself and how to sort of undo what youve done so that you can complete your upgrade installation. And I think this is one of those things that you encounter, especially if youre kind of new to ExpressionEngine. I know I certainly have in my earlier days working with it, and you mentioned it in your process, kind of getting all the add-ons, modules, extension, all that stuff updated before you do anything with EE.

Shawn Maida: I really do think thats a good idea when you can. I think there were probably times where like the version differences are enough that you cant upgrade it on that on first, but I do like doing it first whenever we can. In terms of like errors, I think its kind of a different direction, but like making sure that you just like Google. And checking the bug tracker.

I cant think how many times Ive logged into EllisLabs like bug tracker and Im like, “Oh, theres somebody else found the error already” Its been three weeks since the version is out, like Im not really alone to find out all those errors. And that the Stack Exchange site exists, so I think that most of the times when we run into like a SQL error or template error or just something like that that crops up, I normally just put the error like either directly into Google or directly into bug tracker and I have an answer in like 30 seconds. So I mean, I think thats always something to keep in mind also. Its like just use the tools that are out there.

Timestamp: 00:30:32

Emily Lewis: You mentioned something in your answer just then that the version has been out for like three weeks. Do you give like a window before you even consider an upgrade?

Shawn Maida: Not specifically. I mean, because again I think its like on a per client, per site basis and then whats currently out and compatible. We upgraded one site to 2.9 pretty quickly like after it came out, maybe a week. But like we just didnt have any conflicts on that site and we were getting ready to do some performance work on the site, and so that was like our primary driver was that the template engine had been re-written. And so just before were getting in, were like, “Look, we want to upgrade,” and so we talked to the client about it. We upgraded the site. It was a heck of a lot faster like out the gate after an upgrade. So not like a specific window. I mean, like well like 2.9.1 and 2.9.2 came out like a day apart or something, so like Im not watching the blog, installing it like the moment it comes up.

Emily Lewis: [Agrees]

Lea Alcantara: Do you have a base install for these types of things?

Shawn Maida: Weve gone back and forth with the idea as our team has grown. I know a lot of people do. I know some people have some like amazing scripts to help get them started. We dont.

I think the argument could be made that like saving two hours is like two hours. But weve never done that. Weve talked about it a lot. Were talking about it again now just because the team is bigger. It would be helpful for the people that are like newer on the team and maybe a little more junior to just like give them a kick-start. But, no, we dont have kind of a base install or template to work from.

Lea Alcantara: So now, weve talked a lot about all the different types of upgrade processes, but you also touched on a little bit about whether we should upgrade even like the smaller clients or legacy clients if everything is not broken. Are there points where you can assess whether or not EE is even a good fit for them at all at that point when theyre ready to upgrade or to shift them to another CMS altogether? And if so, how do you decide?

Shawn Maida: Sure. Weve traditionally, like I think many of us like have been, we were an EE shop. And I think everybody over the last like year or two has started to explore what other options exist, in large part because there are just good options now.

Lea Alcantara: Right.

Shawn Maida: For a long time it was like EE or bust. Theres just nothing else that I even want to touch.

Lea Alcantara: Yeah.

Shawn Maida: So I do think its something to consider. I think our path is probably a little different in that a lot of direction were going when we look at that is like from EE to custom.

Lea Alcantara: Yeah.

Shawn Maida: And because we spent like years like building out really complex custom systems in ExpressionEngine that probably really, like if you step back, like arent content managed. Like its not what the CMS was for in my opinion.

Lea Alcantara: Right.

Shawn Maida: We were building out like heavy business rules. And so I think for us, we have come to a place where were like now keeping an EE site and having a custom app that might do some sort of business logic like payment processing or access checking or something. But I do think its reasonable to look at on the really small sites, its like, “Do you need EE or will Statamic work with the little sites?”

Lea Alcantara: Yeah.

Shawn Maida: Because sometimes its just a matter of cost and some of that cost is maintenance costs, you know?

Lea Alcantara: Youre right.

Shawn Maida: It is. Maybe Craft is a good option because you dont need anything complicated. One-click updating does work. I think that we should always be I think for a long time as a community it was like “everything goes in EE.” And I think to be responsible now, we really should step back and try and figure out if the stuff were using is a good fit.

Emily Lewis: So you mentioned that at this point most of your upgrades are hourly. Im just curious if youve ever done pricing, like if you have a retainer client, could an upgrade fall under the retainer or if its a brand new project and youve put in “one upgrade is included” in the fixed price for that project, how are you approaching your costs from a business perspective, and how much if anything do you just suck up yourself?

Shawn Maida: Weve all just sucked up something.

Emily Lewis: [Laughs]

Lea Alcantara: Yeah, right.

Shawn Maida: We did not want to do it before. I hope we all learned continuously about that. We do have retainers. We actually do quarterly retainers, and I think my view on retainer, I think there are two things that youre using it for. Like youre using it to add value to the client through things like backups we’ve had hosting companies just like delete the backups or delete the server.

Emily Lewis: [Agrees]

Shawn Maida: And so sort of like adding some value through certain services that they might be part of a retainer and it might sort of have a fixed cost. I think the other thing that like were typically doing is guaranteeing availability. So were all trying to be busy, so retainers are a way for the clients to have us be available for certain amount of time and sort of us just ensuring it that that can happen.

So the upgrades the way our retainers work is like were not guaranteeing an upgrade. We might guarantee that were going to look at an upgrade. Our job is I think at that point, depending on their retainers, sort of to evaluate your site continuously and to see whats out there and to make suggestions or recommendations. So I think like one of our retainers has upgrades built in, but the upgrade is still built in on the “if we can do it” sort of capacity. I think that might also just be a matter of like the retainer. The retainer may be 24 hours a quarter, and the client is doing 24 hours worth of enhancement. I think its just not room to upgrade.

Emily Lewis: [Agrees]

Lea Alcantara: [Agrees]

Shawn Maida: And I do think, I mean, I think upgrades, how do you write that like? Well, well upgrade unless its 1 to 2 and see what happens. In fact, when EE1 came out, our retainers had like guaranteed upgrades for everybody, that had been a nightmare. So yeah, I think we dont guarantee it as part of the process, but I think its our responsibility as part of the retainer relationship to be evaluating their sites. And then well step outside of our retainers very regularly with like additional statements of work, and so, “Okay, were going to do an upgrade. Heres the schedule. Heres the estimated costs. Lets go.”

Emily Lewis: So Shawn, EE3 should be around the corner. Are you perhaps holding off on any upgrades for EE3 to come out?

Shawn Maida: Id like to know how many people like told their client to wait for EE2. Its like four years later, were all like, “Oh yeah, Ive lost a bunch of work because I told you to wait.”

Emily Lewis: [Laughs]

Shawn Maida: No, I mean, like sitting on the edge of my seat, waiting to figure out what theyre doing with EE3 partly because I own a business called EE Coder. [Laughs]

Emily Lewis: [Laughs]

Lea Alcantara: Right. [Laughs]

Shawn Maida: But no, we dont tell our clients to wait for anything, you know?

Lea Alcantara: [Agrees]

Shawn Maida: I mean, I just dont. I dont think you can. I mean, I dont think you could because you dont know what exactly the product is going to be. You dont know exactly when its coming out. I mean, I think if you have a good idea like the blog post thats being put out, youre like, “Oh okay, well, theyre fixing. Theyre like redoing date/times so like it finally works correctly. Why dont we wait until this version comes out, like suck it up a big longer instead of us like dumping a bunch of hours trying to figure it out.” But no, were not. I just dont see how we could wait for 3.

Emily Lewis: Kind of a final question. Im curious if you have any sense of how much or what kind of percentage upgrades make of your business that you have with clients?

Shawn Maida: Id say very, very small.

Emily Lewis: [Agrees]

Lea Alcantara: [Agrees]

Shawn Maida: I mean, Id say like a couple of percent maybe. But I think a lot of times its like a way to a relationship, you know?

Lea Alcantara: [Agrees]

Shawn Maida: So again for us, if we get people who want an upgrade, Im more evaluating like what does this relationship look like in the long term? Like am I upgrading your site and youre going to go away and Im never going to see you again? So I have a lot of conversations. I really have to work hard to manage risks. I did eight hours of work and then thats it forever. So I think for me what they probably are is like theyre probably a greater percentage of eventual work or like relationship started, which I think is really valuable.

Lea Alcantara: [Agrees]

Emily Lewis: Yeah, I think at least from my perspective right now the way I think about upgrades is also for the continuation of a relationship. You mentioned it a couple of times, but just demonstrating the value to a client that we did a project with, they may not be on a retainer with us, but we still have a relationship with them in terms of when they want something new. Its also a great conversation point to reach out, “We havent talked to you in a while. A new version came out, we think it might give you these benefits.” It sort of keeps that relationship going and letting them know that were still invested in them as a client.

Shawn Maida: Yeah, I completely agree with that. And everybody was talking about like the slow summer.

Lea Alcantara: Right.

Shawn Maida: What a great way I like during the slow summer to have been out there like helping your clients, but also helping your business by reaching out to the hundred sites you built and saying, “Hey, for these 30 of you, I think an upgrade actually really would help, or it would help all of you because there are security fixes in there.” So I definitely agree.

Lea Alcantara: So final question, do you have any final tips for anyone whos going to tackle an ExpressionEngine upgrade?

Shawn Maida: Tips, I mean, I think really like the preparation. Like taking the time upfront to think about what youre going to do, planning it out like we talked. I really think if its not your site that youre upgrading, understanding sort of the inherited risks of taking over somebody elses project and kind of whats the unknown. And I just think like communicating your butt off, just talking to your client as much as you can. Youre not trying to freak them out, you know?

Lea Alcantara: Right, right. [Laughs]

Shawn Maida: But youre not trying to go into an upgrade and like assume all the risks for it. So I think it is talking that through like reasonably because you understand it and saying, “Okay, there is some risk here. Its minimal. Heres what it looks like. Heres what we do about it, and heres what that means. It means that your upgrade might cause you an extra $500.” So I think the communication, so I think those three things.

Lea Alcantara: Awesome. Well, before we finish up, weve got our rapid fire 10 questions so our listeners can get to know you a bit better.

Shawn Maida: Oh-oh.

Emily Lewis: [Laughs]

Lea Alcantara: Are you ready, Shawn?

Shawn Maida: Oh, I guess so.

Emily Lewis: [Laughs]

Lea Alcantara: Okay, question one, Mac OS or Windows?

Shawn Maida: Mac OS.

Emily Lewis: What is your favorite mobile app?

Shawn Maida: My favorite mobile app? Do I even have a phone that has mobile apps? [Laughs]

Emily Lewis: [Laughs]

Lea Alcantara: [Laughs]

Shawn Maida: Hey, come on now. Oh man, you know what, I think I have none. Im like telling you, Im old.

Emily Lewis: [Laughs]

Lea Alcantara: [Laughs] Luddite.

Shawn Maida: I guess Instagram so I can see pictures of my kids because my wife puts them up on Instagram.

Lea Alcantara: Oh.

Shawn Maida: How about that?

Lea Alcantara: All right. So next question, what is your least favorite thing about social media?

Shawn Maida: Oh man, just the noise. Like I think the noise and the complaining, like those two things.

Emily Lewis: What profession other than yours would you like to attempt?

Shawn Maida: I would like to be like a little old like Asian cook somewhere.

Emily Lewis: [Laughs]

Lea Alcantara: [Laughs]

Shawn Maida: Im not Asian, but it sounds awesome to me. Just to work in like a traditional like Chinese or Thai restaurant.

Lea Alcantara: Very cool. So what profession would you not like to do?

Shawn Maida: As like people that get in like cages with snakes. That doesnt sound…

Emily Lewis: [Laughs]

Lea Alcantara: [Laughs]

Shawn Maida: Those Texas people, that sounds scary to me.

Emily Lewis: Who is the web professional you admire the most?

Shawn Maida: Oh, you two of course.

Emily Lewis: [Laughs]

Lea Alcantara: Oh, well, thank you.

Shawn Maida: Man, admire the most? Im really impressed with a lot of people in the EE community. I dont think I have a specific person, but I think Carl [Crawley] has done a lot. Its really neat. People like Leslie Camacho and talking to him about his work in the community. Erik Reagan. I think there is just a ton of really, really amazing, bright people, so I dont have a specific one.

Lea Alcantara: So what music do you like to code to?

Shawn Maida: Oh man, I code in silence.

Emily Lewis: Really?

Shawn Maida: Yeah, I was like as a drummer, played all the time, loved listening to music. And then like one day, I started working like 45 minutes from my house and I just sat in silence in the car. I dont know. Maybe its the three kids like screaming all the time, like I want silence above all else.

Emily Lewis: What is your secret talent?

Shawn Maida: My secret talent you should send these questions ahead of time.

Lea Alcantara: [Laughs] Its more fun when its impromptu.

Shawn Maida: I make mean chicken ‘n’ waffles in the office.

Emily Lewis: [Laughs]

Lea Alcantara: Nice. So whats the most recent book youve read?

Shawn Maida: Im trying to read my Bible. [Laughs] Its like the book Im working on. Man, probably some of the… yeah, sorry.

Emily Lewis: [Laughs]

Lea Alcantara: [Laughs]

Emily Lewis: So last question, Star Wars or Star Trek?

Shawn Maida: Star Wars.

Lea Alcantara: Oh, very definitive.

Shawn Maida: Yeah.

Lea Alcantara: Thats all the time we have for today. Thanks for joining us!

Shawn Maida: Thank you very much.

Emily Lewis: In case our listeners want to follow up with you, where can they find you online?

Shawn Maida: The best place is just say hello at EE Coder or just on Twitter. Im trying to be a little more active, so @eecoder on Twitter.

Emily Lewis: Great, thanks Shawn! We had such a great time talking with you today.

Shawn Maida: Thank you.

[Music starts]

Lea Alcantara: We’d now like to thank our sponsors for this podcast, Pixel & Tonic.

Emily Lewis: And thanks to our partners, Arcustech, Devot:ee and EE Insider.

Lea Alcantara: We also want to thank our listeners for tuning in! If you want to know more about CTRL+CLICK, make sure you follow us on Twitter @ctrlclickcast or visit our website, ctrlclickcast.com. And if you like this episode, please give us a review on Stitcher or iTunes or both.

Emily Lewis: Don’t forget to tune in to our next episode when were talking to Whitney Hess about humanizing user experience and business. Be sure to check out our schedule on our site, ctrlclickcast.com/schedule for more upcoming topics.

Lea Alcantara: This is Lea Alcantara

Emily Lewis: And Emily Lewis

Lea Alcantara: Signing off for CTRL+CLICK CAST. See you next time!

Emily Lewis: Cheers!

[Music stops]

Timestamp: 00:43:52

Love this Episode? Leave a Review!

Emily Lewis and Lea Alcantara

CTRL+CLICK CAST inspects the web for you!

Your hosts Emily Lewis and Lea Alcantara proudly feature diverse voices from the industry’s leaders and innovators. Our focused, topical discussions teach, inspire and waste no time getting to the heart of the matter.