DevOps: 7 things we’ve learnt about working with IT Providers

11 February, 2015 · 4 minutes to read · written by Craig Pickles

Magnifica DevOpsA primary goal of software development is to create positive change that meets the needs of a business as it grows and it's needs evolve. A primary goal for an IT Provider is to manage IT operations and provide stability within a business.

These two goals can sometimes result in conflicting motivations, processes and even opposing tools/environments being used to deliver value to the same customers. This is where the concept of Dev-ops comes from.

At Magnifica we truly believe that working closely with IT Providers to remove these conflicts or barriers enables two powerful, strategic business qualities to flourish: "Business Agility" and "IT Alignment".

Business agility allows customers to rapidly adapt and innovate within their market and IT alignment provides the ability to continuously use IT effectively to achieve ever greater business objectives. 
Here are our top 7 things we have learnt from working with IT providers: 

1. Automate everything

With the tools available today, where possible, everything should be automated. From testing code, to one-click deployments and even provisioning of servers and client machines.

If an IT Pro is responsible for deployment to a server using tools like a TeamCity or Powershell scripts we can make sure deployments require as little manual intervention as possible, which reduces risk and increases efficiency.

Automated deployment coupled with automated testing gives everyone confidence that the system will work as expected. So through automation we can remove the feeling that something might break during a deployment or by the addition of a new feature.

Another advantage of the increased confidence brought by automated deployments is more regular, incremental deliveries. Automation is ultimately about IT Pros and Software Developers working together to deliver results faster which equals increased innovation for the customer.

2. Tap into a wider pool of expertise

Just like in Software Development there are always new tools, platforms and technologies being introduced by IT Professionals. Working closely with IT Providers allows us as Software Developers to take advantage of these new possibilities.

The expertise the IT Professionals have in them ultimately leads to better solutions for our customers.Similarly we have found that shared expertise opens up the possibility for more debugging or performance tracking metrics being made available - invaluable when you have defect you can’t replicate or are struggling to fix.

3. It should work on the end user’s machine

A common experience is one where a problem on a live system is reported to an IT Providers helpdesk, the issue is investigated and then passed over to the Software Developers. The developers take a look and respond with the regularly heard ‘it works fine on my machine’. This is often true but its not the response the customer wants.

Working closely with IT Professionals allows us to easily provision exact replications of the environment the software is running under where the issue is being seen. This accelerates testing and debugging allowing all parties to test on the supported environment and quickly discover why the problem exists on the users own environment. Goodbye “it works on my machine” hello "we know what the issue is and here's a fix".

Also working closely with IT Providers support helpdesk personnel we can find out exact information that can help us quickly identify the cause of any potential defects. Providing IT support with a list of questions that will help speed up identifying a defects cause also works really well.

4. Don’t throw things over the wall of confusion

We've seen it happen. Disjointed Software Development and IT teams know they are good at delivering their piece of the puzzle but no one is terribly confident that when it all comes together the software will work once deployed to the live environment.

Concerns like: will the code behave as expected in the production environment? Will it cope with the load? Will there be any performance issues? are all a lot harder to answer once a system is live.

Rather than just 'throwing the newly built software over a wall' to an IT Provider and expecting it to work, we find spending time with IT Professionals talking them through the software and working together on the initial deployment makes for a much smoother go-live.

Also providing documentation really helps make sure everyone is comfortable with the new software and how its going to be supported in production. Without the Software Developers and the IT Provider being confident in the solution how can we expect the end customer to feel confident?

5. Remove the fear of change

Typically once a new piece of software is delivered and in use businesses / users all to often seem to be afraid of change as if the software or the platform is brittle or worse still is fixed as if it were a product. The whole point of custom software is that its better, more agile and can be more innovative than an off-the-shelf product.

Sometimes layers are introduced which compound this fear, such as large bureaucratic change-management processes, and it becomes difficult and painful to introduce new features. This works against the benefits of building a custom software solution.

Working with IT professionals it is key to automate the deployment and testing of software so that we can breakdown the barrier of fear and allow software to adapt and innovate within an organisation - if the organisation needs a change in their software, as a team, IT Pros and Software Teams should be able to deliver that change quickly.  

6. It’s all really about culture

The critical success of a relationship between Software Providers and IT Professionals is building a culture of collaboration and respect that spans across both organisations. From our experience it is the people and the way they work together that are the primary determinant of success when it comes to adopting a successful DevOps working environment.

7. The debrief (preferably with a pint)

Like anything in life learning from experiences are key. We always try and debrief with IT Providers after the release of a piece of custom software. We share in the project’s success as a team and discuss and try learn from what has gone well and what could be improved next time.

At Magnifica we believe the initial release of custom software is just the start of the journey and that the benefits of custom software over an off-the-shelf product are what make software truly transformational within any organisation. When IT providers and Software Providers work well together great things happen. That’s what offering a great service is all about - making a difference to our customers business by delivering technology in a way that adds value and continues to as the relationship grows.

Would be interesting to hear what other people think about DevOps and the benefits of Software Developers and IT Providers working together - please comment below.