Kentico 1 on 1 – Site Maintenance with Brenden Kehren
In this edition of Kentico 1 on 1, I sat down with DevNet rock star and overall good guy Brenden Kehren, of Kehren Development. As many of you know, Brenden is one of the most active members on the forums and helps tons of developers every week with their challenges. What you may not know is how much he works with maintaining sites, upgrading installations, and implementing new code for existing solutions. Because this information can help every company with their projects, I asked Brenden about how he goes about working with different projects in various environments.
Hey, Brenden. A lot of developers know you but may not know much about your background. How did Kehren Development come to be?
I’ve been programming for about 14 years. I went back to school after being out for more than 10 years while I was a full-time dad and husband with a job—and I went back to get my degree. Luckily, I had a job at the time that was willing to work with me and supported me going back. After getting my degree, Kehren Development was really just a by-product of doing what I like. I started to write some code in Access while I was in school and really enjoyed it. Then my company asked me to do a number of coding projects, which gave me more experience and challenges. From there, I just started going out and finding work where I got to do it. It was that passion for writing code that really helped Kehren Development come to be.
What are some of the biggest challenges with maintaining a Kentico site?
I think there are a couple of things. If you started the site from scratch, you have to try to remember when you implemented the site. This isn’t terrible if you have development notes and things like that. If you didn’t develop the site and got it from another company or developer, you have to go back and find out from them either what they did or how processes work. Then you have to try to fix what may be broken or add the new features they want without breaking other pieces it may be integrated with.
The second is the environment. Typically, when I get called by a client to do work, I rarely ask them what their environment is; I ask them what their problems are. Then you get into it, and you find out their environment is shared hosting on GoDaddy with a limited database or something strange. This can easily create a lot of complications in the development and be a challenge to deal with. You never find two environments that are the same where you can do the exact same thing on each, so it can be really tricky to deal with those situations when maintaining sites.
What do developers need to think about when upgrading a site?
I think the top thing is the “to read” documentation. Every Kentico upgrade gives step-by-step instructions on how to apply the upgrade, and it’s really important to know the details before getting started. If you haven’t read the documentation for the upgrade, your upgrade is going to go rough. It doesn’t matter if it’s an “easy” upgrade, like from 6 to 7, or a more complex one, like from 7 to 8—always read the documentation first. That’s the biggest thing I can tell people to look at.
People often look at the database and code, but they often forget about the virtual objects: transformations, layouts, and things like that. There is a lot of code in there that is C#, XML, and macros. Those things need to be upgraded, as well. If they aren’t looking at those things, they’ll get a false positive in the Kentico Installation Manager that their upgrade worked and their site is ready to go. When they go look at their site, it will fail, and they’ll get errors all over it and won’t know why.
What can developers do to make sure their sites are easily maintained and upgradable?
If the site is implemented properly and follows best practices for developing custom code, web parts, and widgets, you’ll see the amount of maintenance necessary go down. Additionally, the upgradability of your site will go up, and the install will be much easier to complete. Storing code in the correct folders is extremely important and will really help any developer that has to work on the site. The site can have crazy custom code, too, but if you follow the implementation best practices, you’ll still be able to upgrade more easily and reduce a ton of your maintenance headaches.
What are some of the funniest/strangest/most unusual thing you have seen when inheriting a site?
I don’t know if I can say any of them are funny. I wish they were, but they’re not. One of them was where the site had three page templates: a Master page, a Home page, and a page template for everything else. And that template just had an Editable Text web part on it—and that was it. So it made the site not dynamic whatsoever. It actually had three web parts: one each for the left column, the center, and the right column. The left- and right-column ones had static links to all of the other pages. If they had a new blog post, they had to go into every page and add the new blob link to the top of the list. And this site had, like, 325 pages on it!
Another one utilized Kentico and an ASPX model along with KnockoutJS. They used it for everything. In the front end, they let people enter content in like normal. In the back end, all of the transformations and everything that was put in place with the ASPX pages were all KnockoutJS. They didn’t really accomplish anything with it because they still had all of the View State and markup that goes along with Web Forms. All of that complexity in there added no benefit whatsoever to the website itself. It actually made it impossible to upgrade, so they are still stuck on 5.5 right now.
Brenden has a very broad skillset and has dealt with many different scenarios and solutions with Kentico. He also loves to tackle new challenges and topics and is the most active member on DevNet in the world. I encourage you to reach out to him if you ever need a hand, and I know he will do what he can to help. Thank you, Brenden, for all you have done for the community, and keep up the awesome work!