Powerful ways you can save on Sitecore development time
Working on Sitecore? How much time are you actually wasting, instead of getting work done?
Maybe you’re a Slack-er.
Maybe you just think, ‘that’s how it is’ and you do things the hard, time-consuming way.
Or maybe you actually want something better…..
Anyone that knows me in the Sitecore community, knows my love for the tooling and processes of Sitecore development. Working at Hedgehog, it’s something we are constantly analyzing from our own projects, and something we are always trying to improve on. We aim to keep development costs down on projects by not cutting features, but by working better. This leads to happier clients, who get more bang for their buck when hiring a Sitecore development team.
So how do we do it?
Well, at Hedgehog, we not only do client work producing websites, but we also dedicate people to work on tools and modules that help improve things. Most of the time, these tools are born out of the frustrations that we’ve found with the paradigm, but also from the general murmurs from the community. Having hands-on experience with the problematic stuff in Sitecore development, we’re in a position to try and find ways to improve it. Sometimes this leads to shared source modules that we create, sometimes it’s examples of projects for people to see, and sometimes, with enough demand, it can result in full-scale, commercial products with 24/7 support and dedicated development teams.
TL;DR
- Use all the productivity features of TDS Classic
- Use Sitecore’s own tooling
- Use what others before you have already created
- Don’t wait for Sitecore’s lengthy app pool reload….use ZeroDeploy instead!
How can developers work more efficiently with Sitecore?
By no means is this a comprehensive list. There are other blog posts our there on Sitecore tools, like 10 Essential Sitecore Tools for Developers, Top 10 Sitecore Dev Tools and even my own post. This is just some things I have been using on team projects that have been having issues with getting stuff done.
Here is what I use to save the most development time, so you can get some work done!
- TDS Classic – Yes….I work at Hedgehog, and yes, this is a Hedgehog tool, so I know this might sound like a sales pitch….but I honestly wouldn’t sing it’s praises if I didn’t think it worthy. It’s considered best of breed, and is the stalwart tool used in the Sitecore community. It’s starts with serialization, ties in to the build and deploy process, and has safety validations that prevent teams ever breaking production. It also has countless features that help with ongoing Sitecore development like Code Generation, Content File Sync, AutoSync and the Sitecore Item Merge Tool. It’s extensible with Custom Post Deploy Steps, Custom Validators, and even the ability to speed up local dev deploy times. Unicorn has been mentioned for that serialization aspect, and for that alone, could be another consideration (although under the hood it’s a lot different), but the reason why I opt for TDS Classic is because it offers so much more to get teams working efficiently. TDS has nice UI, constantly has new productivity features added to it, comes with full commercial support, and is the proven, go-to tool in the industry. IMHO, the time saved using TDS Classic, utilizing it’s many features, by far out-weighs the license costs. I could go on and on about this tool, but knowing it’ll no doubt sound biased, we’ll move on to number 2.
- SIM – The Sitecore Instance Manager – Using this tool to spin up new instances at the click of a button, is a massive time-saver. Create sandbox environments, tear down old projects, test things out using a fresh instance… This tool is another must-have. It lines up perfectly with TDS Classic, and is the most recommended ‘module’ on the Sitecore Marketplace.
- Sitecore Rocks – an oldie, but a goodie. This Visual Studio plugin can speed up development by making navigating around a breeze. You can jump back and forth really easily, create multiple items a lot quicker, and do all your dev work from within Visual Studio. Again, it aligns with TDS Classic superbly with the TDS <=> Rocks connector. It has a scripting tool, and is the only way to properly do SPEAK app development.
- BareTail – Check your logs! Sitecore development can’t be done without checking the logs…. Know what’s going on in your application, and know how to fix them. Baretail allows you to ‘tail’ your log file, so you can see what’s happening in real time. You can also use the Sitecore Log feature in SIM, which tails, even on app pool recycle….. but I personally prefer Baretail for the ability to do highlighting.
- Git Delta Deploy – Well….really it’s a custom extension of TDS Classic, but a huge time saver. Essentially it utilizes the ‘Delta Deploy‘ feature, but does it a lot smarter by checking what has actually changes in Git (you could also modify it to use any other source control provider as well). The TDS Classic feature, combined with this custom extension, means deployments are a lot quicker. Whether used locally, or on a CI build server, you’ll notice the builds are cut down a lot….meaning you don’t need to wait for your build for so long.
- Helix FxCop Rules with less projects in your Helix solution – Speaking of trimming down build times…..from what we’ve seen in the community, the #1 most aggravating feature of Helix (read the Habitat example) is the amount of projects in the solution, and thus, the gigantic build times. Separation of concerns is good…. and Helix promotes a nice modular approach…..but doing the separation by project is not always necessary. In fact, it completely bloats the build time, and really, you could just separate a lot of the modules by namespace/Area/folder, and enforce ‘Helix principles’ by using code analysis instead. Separating by project doesn’t even make sense if that’s how you’re enforcing the principles….. developers can just add project references….or even have ReSharper automatically add the link…. Whereas code analysis is designed to catch these sorts of things…. So instead….collapse your 400 projects down to a reasonable amount. Enforce your principles with these FxCop rules, and stop waiting 20-odd minutes for a local build!
- ZeroDeploy – Born out of the frustration of ‘Sitecore takes too long to reload’….this tool prevents an App Pool recycle, saving minutes of dev-time on every build. It is currently late in it’s beta, so it’s very stable, and it has a demo project you can test it out on. But my favorite thing about the tool is the phenomenal reactions to it.
‘This will save me an hour a day’, and ‘That’s Voodoo’ are just some of the feedback received on this game-changer. Internally we’ve used it for a while, and found to have an unbelievable turn around on our projects. In combination with Baretail, it’s amazing, because with no app pool recycle, the log file never stops! Not only does it mean no app pool spin up time, it means general parts are also still loaded in memory…. you don’t have to also suffer and additional 10+ seconds for a dialog box to load, or the content tree to display.
It’s super fast Sitecore development at it’s best, and is the ultimate tool for teams wanting to get stuff done.
Don’t suffer in silence. Get moving!
You can save huge amounts of time with Sitecore development when using the tools and modules mentioned above.
There are even others out there that could be added to the list, depending on your situation/client. Front end devs could use Feydra, script-monkeys can use Sitecore PowerShell Extensions, and you could even use accelerators like SCORE or SXA if you want pre-built components and configuration, or something like Ignition to give you a starting framework.
It’s one thing we do at Hedgehog…. we do our research on our ways to save on development time. When there’s a good tool for the job, we use it….. when there’s not, we break barriers, shift paradigms, and push for a better way to develop smarter. TDS Classic pioneered the back end development process, and Feydra has started shaking up how front end developers work, saving time that is otherwise wasted.
ZeroDeploy is doing what people thought wasn’t possible, and the Sitecore Package Deployer gives a nice touch to making deployments easier.
All up…..stop wasting time when developing….. get your work done so you can have happy clients, and then go and enjoy your weekends with family or friends.
You forgot to mention Unicorn, that is indeed a life savier and its free 😎
Unicorn IS mentioned, alongside the many features that it lacks compared to TDS Classic, thus why I recommend TDS Classic over Unicorn. 🙂
Good post 🙂
It might sound like a large up-front investment, but if you kit your dev team out with fast computing equipment (especially noticeable if people run dbs on their dev machines) then you will save stacks of time. Developer time isn’t the cheapest and if a few hundred $$$ up front saves seconds/minutes/hours every week – it will very quickly pay off!