14 November 2009
Certified SCRUM Master
I almost forgot...
About two weeks ago I became Certified Scrum Master. I attended a certification held by Jens Østergaard (one of the founders of Scrum Training Institute).
I'm extremely excited about the concepts in Scrum, and will probably write some posts about it in the future (just need some hands on experience).
For those who are not familiar with Scrum: It is (quote) "A team-based framework to develop complex systems and products".
12:00 Permalink | Comments (0) | Email this
13 November 2009
Optimizing Sitecore development
As mentioned in my last post, I’ve spent the best part of the last year optimizing the processes involved in developing Sitecore solutions in multi developer setups.
In this post I’ll describe the core areas we’ve focused on, and shortly describe what we’ve done. As I said in my last post this has been a team effort in the development department in 1508 A/S. I’m not going to mention any names (then I won’t forget any).
Establishing a shared standard
We’ve implemented a code bible setting standards for some of the basics in .Net and Sitecore development. This ensures a common way of developing making it easier to support etc. I’m not going to waste more space explaining why this is a good idea (since it’s just common sense)...
To ensure that everyone adheres to these standards, we are using StyleCop.
Sharing source
As any other development company we are using a Source control system – we are using SVN. We commit all of the code specialized in each Sitecore solution to SVN. We also commit a serialized version of the Master database (and if we make changes to the Core database this is serialized and committed too). We also commit other technical assets like external references.
Serialized databases
As of Sitecore 6, Item serialization has been available. Due to my involvement in the development of Sitecore Intranet Portal we had an early preview of this in version 5.3, and – though a bit unstable – it was clear that this had to be the future of DB-versioning in Sitecore development environments. It adds the ability to commit partial database changes – just like you do with the source code.
Standard Sitecore implementation
One of the things we brought from Enzym to 1508 was a standardized Sitecore solution called XPAC. This has been redeveloped from scratch using all of the best concepts, conventions and techniques. We now have an extremely strong foundation for all our Sitecore solutions, including a thought through frontend framework, a well tested .Net API and much more. This has been implemented throughout 1508 including IA and Design.
Handling deploy of development environments
One of the tedious and time consuming processes of developing Sitecore solutions is setting up a new environment (whether it’s a new solution, or you just have to implement some changes to an existing solution). And it’s not only boring and lengthy… if you work with other developers you also have to keep the same conventions when naming databases, IIS site, folder structure etc.
We have solved this by automating the entire process. We now deploy any solution to a developer workstation in under 30 minutes – including everything from setting up Sitecore, creating IIS site, restoring databases, adding entries in the hosts file, updating from SVN... etc! It has been the best part of this process.
Build and Test
The latest part of our setup is a build and test server performing nightly builds generating various useful reports. We use CruiseControl / NAnt. We are also using StyleCop in the buildsetup. Nice...
Roadmap
We are currently planning other initiatives including Configuration management and Deploy management. We are currently working on establishing a large scale virtual development / test / QA environment. This will ensure that we develop, test and run QA in environments as close to the Production environment as possible.
22:55 Posted in Sitecore | Permalink | Comments (2) | Email this
It's been a while...
... since my last post.
The main reason is that I in March 2008 sold my company Enzym to the larger company 1508 A/S, and I’ve been very busy since then. I’m not going to explain all of the reasons why my business partner Jan and I decided to sell, but it was all positive; there were no troubles or so behind the decision. Jan and I are still great friends...
One of the main reasons was that we wanted to grapple with some larger Sitecore projects and installation than Enzyms size allowed. We simply didn’t have the backoffice required to sign the deals we had an idea our skills could handle.
Since we joined 1508 A/S I’ve had the pleasure of working on a lot of projects of this size, including Danish Ministry of Education (Public Sitecore site of the year 2009), The Capital Region of Denmark, The Danish Metalworkers and many others.
Another reason was that we had some ideas about how to structure the development of larger multi developer Sitecore projects.
Since I joined the development department in 1508 A/S as Head of Development, we have reorganized the entire process (including project start, development, test and launch). Don’t think that I have done this by my self – not even close. Some of the brilliant people I work with have done most of the implementation – by far. However it is a very big gratification to have some ideas, use some time to lay out the general guidelines, see it implemented, and finally have the ideas confirmed. Our processes were optimized in a way we had only dreamt of – both in time consumption and in the increased job satisfaction.
Actually the ideas was also confirmed when I in the beginning of October was at the Sitecore Partner Seminar 2009. Thomas Eldblom (some of you might know him already - Core Technology Manager and Partner at Pentia A/S) presented their Professional Services and how they had implemented continuous integration in their Sitecore development setup. What they have done is very similar to what we have done – or what was on our roadmap already.
I’m thinking of writing a blogpost describing how we’ve reorganized – promise it won’t be long. Stay tuned...
21:45 Permalink | Comments (0) | Trackbacks (0) | Email this



