Three Years at the Hut Group

So it’s been more or less three years (actually 17th Nov) since I joined the Hut Group, and it’s not going to be all that long until I’ve been here longer than I was at IBM (although still a long way to go to overtake Atos). I’d thought I’d take this opportunity to look back over the last three years and reflect upon what I’ve learnt.

I joined the Hut Group because I was getting bored at Atos Origin. I was working on a project for a large government department and although some of the things we were doing were interesting, it felt like I was destined to work on the project for the long term. A former colleague, Tim, was at the Hut at Head of IT and he asked me to come over and help him sort things out. I turned down the initial offer, but eventually decided to take the opportunity. The main reasons were that I knew Tim, and I wanted to try my hand at web development.

I joined the Hut Group as a Senior Developer and worked on mostly back-end projects. I integrated with a flowers supplier (not a great success), wrote a backup payment system and made lots and lots of changes to our back office system. I also made a good few changes to the website, including replacing the password reminder system.

At Atos Origin I had a number of roles as a configuration manager and it seemed natural that I would attempt to sort things out in this area at the Hut as well. We use subversion and I used to police the developers to make sure that they were using it correctly.

During all of this the development team grew pretty quickly. We I started we had 10 people in the IT department, including the TA, Head of IT and support team. A new CTO joined us, and we went on a recruitment drive that hasn’t really stopped.

As the team got bigger I moved into a TA role so that we could provide some technical leadership to the developers. I worked alongside the Chief Technical Architect (James) and helped get some pretty major changes to the platform in. I also spent a lot of time improving our monitoring so we could tell when the platform was having problems.

About 2 years ago Tim decided to take a new role, so I became the Development Manager and later the Head of Development. Our current CIO (Gareth) joined shortly afterwards and under his leadership we started to introduce agile development.

Our original process for getting work into the team was for a business stakeholder to fill in a work request form which one of the team would look at and estimate the effort involve. We would group a few of these together and form a project to be delivered. This was the theory in any case. What actually happened is that the work request forms sat in one of several large folders on my desk and pretty much got ignored. What the team actually worked on was whatever a few senior people in the group decided was important. The process wasn’t very transparent and we had a tendency to start work and not finish it. Things were not great, and nobody was satisfied with performance of the team.

The first thing we did to more towards an agile methodology was to get control of the work coming in to the team. I went round all the business to talk to them about what work they wanted to be delivered over the next twelve months. These were all written on index cards and James, Gareth and I gave t-shirt size estimates to them all (S, M, L, XL) and fitted them on to a rough plan. We moved away from 15 developers meaning 15 projects on the go, and organised everybody into small teams. We recruited a number of tech leads to lead the teams and they worked with the teams to get the agile practices we want embedded into the team.

Things began to improve pretty quickly, but it became clear that the Tech Leads were struggling to balance the management side of their role with the technical leadership of the team. We already had a business analyst working with us, and he moved into a project management role and we recruited two more PMs. The PMs work closely with the business to understand their requirements and act as Scrum Master for the project teams. They basically make sure that the developers can concentrate on developing and they remove any impediments that stop them.

I think the best change we made was decreasing the number of teams. We ended up with 7 teams with a couple of people in them, and this caused a few problems. There was a limit to who people could pair with, and limited the amount of work a team could do. If anybody was on holiday, work basically stopped until they came back. Worst of all it was difficult to get the team to self organise and engender any sort of team spirit. We cut the number of teams down to 3, each with 6 or 7 people in them. We’ve kept these pretty constant for about six months and they are now very productive. The teams organise themselves (to a certain extent), and we’ve got a good spirit in all of them.

The final change we’ve made is to create a “Rapid Response” team. This team handles all the day-to-day requests that come in to the development team. These range from fixing defects, to delivering new pieces of functionality. We aim for a piece of work delivered by the team in 3 days or less. We manage the work of the team using a kanban board, with the business prioritising all the outstanding requests twice a week. The prioritisation meetings take about 15 minutes and we have some really good discussions about what is important to the business. We’re delivering on average 5 tasks a week and the business like it as they have very clear visibility of what the team is working on now and next. The best thing is that they can see things being delivered.

So what will the future hold? I personally think we will move away from delivering “projects” to delivering features. These will be smaller pieces of work that we can deliver constantly. There will always be projects to deliver, but a lot of what we do is already feature based and a lot of the time we use scrum and sprints to mark time.

The biggest change on the horizon is that we are recruiting a number of test engineers. These will work with the development teams to promote best practice and help us automate our testing process. We’ve done some work in this area, but we have a long way to go. I’m quite excited about some of the things we can do with tools like Cucumber to aid automated acceptance testing.

What about me? It looks like I am going to get more involved on the technology side of things. We have a number of interesting challenges coming up to make the platform scale to support the continued growth of the business. The good thing about the Hut is we can react quickly to new opportunities and making the IT do this is good fun.

BAU becomes Rapid Response

At work we use a kanban process to manage our small change requests with the development team. These requests are pretty much a 50:50 split between new features and defects. We have always used about 15% of our resource to do these requests, but have we only really made any progress once we had a dedicated manager (me!) running the process and dedicated developers doing the work [let's face it, it's the developers who made the difference]. The team is known as the BAU team, and the developers work on it for a 2 week stint and everybody gets to have a go. This has good points and bad points and I’m still not sure where I am with this. On the good side, it is a great way to spread knowledge through the wider team as the BAU team work on every part of our systems; but as the developers only work on it for a couple of weeks you don’t really have time to build a team that is self organised and committed to a goal. Having said that, the team have delivered some great pieces of work and I think they have enjoyed the experience overall.

Anyway, the “BAU” name is pretty dull and undersells both the value of the work that the team does and it’s complexity so we’ve decided to rename them the Rapid Response Team. I have even done a logo!

Apologies in advance to our entire Design team and anybody with a modicum of taste for the abomination that am I about to release on the world. I did maths at Uni and I absolutely hated art having realised at an early age that I completely suck at it.

Anyway…

Rapid Response Logo

Recruiting developers

I’ve just read a very interesting article about recruiting software developers in the Guardian, which pretty much mirrors my feelings on the matter. I do a lot of recruitment and have encountered many of the frustrations described.

I’m going to quote from the last paragraph:

To be honest, if someone wrote to me with a nice covering letter and spoke about open source projects that he or she liked, pointed me at a Twitter feed where they were intelligently engaged in the problem domain, and sent me some code that they’d written, they’d be more or less hired at this point. No one wants to see a list of technologies with some random skill level or years experience.

If you’re interested in joining the Hut Group, check out our careers page and get in touch. I can be reached directly via my twitter account @typingincolor.

 

 

 

WANTED – world class Java developers

As I’ve mentioned here, I’m the Development Manager at the Hut Group. We are one of the UK’s fastest growing technology companies, and the third largest online retailer in the UK.

Our goal is to be the largest online retailer in Europe over the next couple of years. We have an excellent development team already but we need to grow to deliver the systems the business needs to support this level of growth.

We’ve successfully changed the way we work as a team. We’ve introduced Agile development to help us work more closely with the business and to enable us to deliver higher quality software more quickly; and it’s worked really well.

We develop all of our systems in house, from our websites, through buying, content and finance, to our warehousing systems. As you can imagine, there is a huge breadth of systems we use. We are also building a retail platform that we can offer to our customers to enable them to power their systems.

It’s an exciting time to be working at the Hut. We’ve grown massively over the last few years, and this growth is accelerating. We’re looking for expert developers to work with us to deliver this growth. We develop in Java, but getting the right person is more important. Whilst we are looking for strong developers, equally important is the ability to communicate effectively.

Find out more!

My First Rails App…

I have worked in IT for the best part of 15 years, most of that in technical roles. I started as a Trainee Programmer in the IT department of a large bank, and have ended up as the Head of Development at at one of the UK’s fastest growing technology companies. When I started work I developed in C and a 4GL called  OpenROAD, and I was pretty good at them…

I started using Java in around 1999, back when applets were still used. I quite liked it, and I’ve used it pretty much ever since. I last worked on a C project in 2000, I could probably remember how to compile a program if I had to, but I suspect I would just cause servers to core dump if I was allowed any where near them now.

I’ve not really written any  serious code at work for probably 18 months and to be honest, doing anything in Java doesn’t really appeal as I’ve been there and done that.

One of the things I want to do is get a picture of how much my team actually know and then track any improvement over time. One of my colleagues produced a skills matrix for his team where there is a list of skills, and everybody gives themselves a score from 0 to 4 based on how they perceive their skill level. It is a really useful tool when you collate all the data, and I thought I’d have some of that.

Now, my colleague did his skills matrix using Excel; but as a one-time code monkey I thought it would be a good excuse to dust off the old development skills and build a web application to do it.

I looked at a few options to build the app. Groovy on Grails and the Play framework are basically java, and I really can’t be bothered with that; so in the end I went for Ruby on Rails.

I quite like Ruby as  a language. It is weakly typed which makes things a lot easier and the syntax pretty easy to follow. Rails as development framework is ridiculously easy. I have written less than 100 lines code to build the app. The hardest part was the css so that it didn’t look like a dogs dinner. I’m not sure I am entirely in favour of how easy it is, there is a bit to much magic for my liking; things work when I think they shouldn’t and then I spend 10 minutes working out why it works. All-in-all though it has been a pretty enjoyable experience.

There are a few things a really do like though:

  • haml – I didn’t really see the point at first. It is a templating framework to generate html. You still need to really understand html (this is why I didn’t see the point), but it does make you write properly formatted code. It also stops you doing some of the more horrible things you can do in jsps or erb.
  • sourcetree – it’s a client for git (and mercurial) for OS X and it makes it soooo much easier. Git is a brilliant source control tool, and sourcetree makes it really easy. I know the guy who developed it and he’s done a great job on it.
  • heroku – makes it stupidly easy to deploy your rails app to a production environment. You just push you git repo up to it and it just works. If only java was so easy.

Maybe it is time for me to stop going to meetings, planning projects and get with the program and do some proper development. Skillz version 1 (great name eh?) will be unleashed on the development team next week, and I’m already planning the features for version 2.

The one fly in the ointment is that Rails development on Windoze truly sucks. Git doesn’t work properly, the tools suck, windoze sucks and the whole experience is just rubbish. If you’re going to do Rails buy a mac.

 

The Hut iPhone App

From the company that brought you the zavvi iPhone App

It’s…..The Hut iPhone App!

The second iPhone app from the UK’s fastest growing technology company.

You can browse thehut.com site, add your favourites and the visual search is particularly nifty…

Rating: ★★★★★ 

Download from the Apple App Store

If you’re a developer and are interested in joining the UK’s fastest growing technology company then go to http://www.thehutgroup.com/careers.

Objectives, Agility and Building a World Class Development Team

I’ve written before about how we are building a world class development team at the Hut Group. One of the things we are doing is setting objectives for everybody in the development team. We are doing it for a number of reasons but the main objectives are:
  • to help us work more effectively as a team
  • to help us build the best software we can
  • to help the team develop their careers

So with these aim in mind we came up with the following objectives:

Deliver Highest Value by:

  • Working on the highest priority task
  • Doing the minimum work to get the job done

Deliver Fast by:

  • keeping it simple
  • continually improving the speed of delivery
  • understanding technical debt
  • always knowing the team’s velocity

Deliver Quality by:

  • having no bugs
  • no rollbacks
  • delivering a supportable solution

Provide a quality of service by:

  • responding quickly and positively to incidents to achieve a quick resolution
  • understanding the root cause of the incident

Continually Improve by:

  • sharing knowledge
  • supporting the team
  • speaking up!
  • being agile
  • improving yourself

We will all have commercial objectives based on delivery on top of these, but I think these show where we want to go. This is a new endeavour for us, and I’d welcome any insights that people have…

Work for the UK’s fastest growing technology company

As I’ve mentioned here, I’m the Development Manager at the Hut Group. We are currently the UK’s fastest growing technology company, and the third largest online retailer in the UK.

Our goal is to be the largest online retailer in Europe over the next couple of years. We have an excellent development team already but we need to grow to deliver the systems the business needs to support this level of growth.

We are also changing the way we work as a team. We are in the process of introducing Agile development to help us work more closely with the business and to enable us to deliver higher quality software more quickly.

We develop all of our systems in house, from our websites, through buying, content and finance, to our warehousing systems. As you can imagine, there is a huge breadth of systems we use. We are also building a retail platform that we can offer to our customers to enable them to power their systems.

It’s an exciting time to be working at the Hut. We’ve grown massively over the last few years, and this growth is accelerating. We are looking for expert developers, web developers and testers to work with us to deliver this growth. We develop in Java, but getting the right person is more important. Whilst we are looking for expert developers, equally important is the ability to communicate effectively.

Find out more!

Java Books as Recommended by the Hut Group

As I’ve mentioned before, I work at the UK’s fastest growing technology company namely the Hut Group. The majority of our systems are written in house in Java, but we’ve recently recruited some excellent people whose background is in other technologies. To help these people get to grips with java, I asked our team of crack java developers to recommend the books that they have found useful in their careers. This is what they came up with…

Feel free to leave a comment and recommend your favourite…

Buy now from thehut.com In the US? Buy now from amazon.com

zavvi iPhone App

The zavvi iPhone App

There’s a lot going on at the Hut Group at the moment, we are working on a number of really cool projects and the zavvi iPhone app is one of them.

It allows you to browse the zavvi site, store items as favourites but the most exciting feature is the visual search. With this you can take a picture of an item and the app will weave some magic and take you to the corresponding product page for you to buy it. Its great for checking prices as you go round the shops.

Rating: ★★★★★ 

Download from the Apple App Store

If you’re a developer and are interested in joining the UK’s fastest growing technology company then go to http://www.thehutgroup.com/careers.