The Meet the Bees blog series is back! In this series, you’ll learn more about a different CloudBees Bee with every post. This time we are in London, meeting Nigel Harniman.
Who are you? What is your role at CloudBees?
Nigel Harniman - Senior Solution Architect based in London, UK. I’m part of the EMEA sales team and my role is to help prospective customers understand the benefits of the CloudBees products and how they can deploy them in their organisation to help them achieve business goals. I spend a lot of time meeting with customers on the phone and face to face, as well as educating on Jenkins topics at conferences and meetups and helping deliver webinars.
What does a typical day look like for you? What are CloudBees customers like?
I don’t have a typical day as my role often involves being away from the office. In a typical week I will have a number of meetings (both onsite and via video conference) with prospective customers working with the Account Executive to understand their goals and needs of their Continuous Delivery platform, answer technical questions and demo the various CloudBees products. I also regularly meet with current customers to review their implementation and look at any issues or feature requests they may have which I then collaborate with our engineering, support and product teams on. In between the meetings I try to work on the other items on my backlog such as preparing conference/webinar talks, creating technical articles and generally researching our new features. There’s always plenty to keep me busy!
What are some of your best tips for developing or testing apps?
I’ve been a fan of Agile for the last 10 years and believe in working on small iterations. For me a critical aspect of success is having the correct and well understood definition of “Done” within the team. For me, “Done” means the feature is ready to ship into the hands of the users - i.e. you are sure it meets the quality requirements. The only way you can achieve this is to ensure that all aspects of quality have been tested, preferably via automated tests. This means not just a unit or isolated functional test, but, system, performance, security and operations tests too. The development team must have the necessary skills and resources to implement these tests, otherwise it cannot say a feature is “Done”. This is why multi-discipline teams are so important. I also advocate fail fast, so ensure the component level tests are as thorough as they can be - i.e. don’t just test ‘Happy Path” but make sure the edge cases are successfully handled - e.g. don’t solely performance test against a mock server with millisecond responses - you want to see how the component behaves when external interfaces start timing out - does it degrade gracefully or crash? What does the Product Owner expect it to do? If you don’t know, ask and write acceptance criteria. If the Product Owner doesn’t know, make professional recommendations, or, ask for a new Product Owner!
Do you have any advice for someone starting a career in the cloud space?
My advice would be to get your hands dirty. Sign up for an account on your favourite platform, configure an environment and build and deploy an application. You will learn a lot about the way to assemble the various services on your chosen cloud platform. Once you have done that, try and break it. See what happens when a node dies, what happens when a new one is provisioned, how do you recover the data, does the node have the same name / ip? If not how does the outside world connect to it. Once you have done that, try and join a relevant Open Source project and contribute. Many open source projects run their infrastructure in the cloud and will be only too willing to help get new contributors up to speed so they can help maintain. And finally, remember “The Cloud” is just somebody else’s computer - you still have to write software that functions and meets operational criteria - the Cloud just changes the list of things you need to be concerned with!
Something we all have in common these days is the constant use of technology. What’s your favorite gadget and why?
My favourite gadget has to be my iPhone - I take it everywhere. It’s re-assuring that it still works in the old fashioned synchronous manner of a telephone to allow contact in an emergency - for instance if one of my kids has an accident at school or nursery, but it’s also so valuable when I’m traveling - I always store my flight boarding passes on it, as well as using TripIt for my travel itinerary so I always have details of hotel reservations etc to hand. When I’m flying I use it for playing music - I love shutting the noise of the plane out with my noise cancelling headphones. Then of course there’s using it to catchup on emails and social media!
This is a tough one. I guess being British I do love a traditional roast dinner followed by a fattening pudding such as apple crumble - but I suspect if I ate that for the rest of my life, it would be somewhat short!