DevOps Zone is brought to you in partnership with:

Matthias Marschall is a software engineer "Made in Germany". His four children make sure that he feels comfortable in lively environments, and stays in control of chaotic situations. A lean and agile engineering lead, he's passionate about continuous delivery, infrastructure automation, and all things DevOps. Matthias is a DZone MVB and is not an employee of DZone and has posted 38 posts at DZone. You can read more from them at their website. View Full User Profile

How Delays Render All Your Efforts Useless

01.17.2013
| 1624 views |
  • submit to reddit

London Stansted Airport, early afternoon – a huge crowd at the railway station. No trains – only people, and a lot of confusion and anger. Having just flown an hour from Munich, Germany, I was supposed to meet a client two hours after touch down. But here I stood, waiting with the crowds: the railway just broke down. After several hours of waiting, I was able to catch a bus and reached London city late in the evening – but the client meeting was long over. The whole trip (not to mention an entire day of my life) was wasted just because one leg in my journey failed. Do your users waste their time because you have failing legs in your product development journey?

Your customers suffer because of delays!

If you accept delays within your product development pipeline, your customers lose out on opportunities and waste a lot of time. No matter whether a feature comes late because you ignored it, wasted time gold-plating the code, or just let it sit in your code repository for weeks, your clients derive zero value.

Your customers only get immediate value from developed functionality when you avoid delays

You need to avoid delays throughout the entire product development cycle. Optimizing just one part (i.e. developers should do “agile”) is like flying a faster plane to London just to get stuck there earlier (and longer). If you want to ship features as fast as possible, look at every stage, not just your area of influence.

You can’t influence the way features are designed

But you can try to talk to your colleagues from product management and try to find ways to avoid delays. Can you do with less upfront specification? Would it be possible to start spiking complex technologies long before a feature is completely specified? Is there a way to break down features into smaller independent parts? Show them you’re ready to adapt the way you’re working to help the overall goal of shipping sooner.

Still playing the blame game?

If you are, take one step back and look at the overall process. How does blaming others help in avoiding delays? Blaming means you’re just looking at your part in the product development chain. You’re working optimally but everyone else sucks.

That attitude is not very helpful

In contrast: it will deepen the divides between departments and even increase delays due to less communication and trust. Accept that everyone is trying their best and assume that everyone is willing to contribute to the company’s joint success. With this basic mindset, you can approach other parties and work on increasing collaboration and trust while removing the delays.

Are you repeating yourself?

You know what I’m talking about: pushing new code to staging is a lot of manual work. And, if your testers need a fresh database dump, they wait for you to manually anonymize and import it. You’re sick of them requesting fresh code and data all the time because this manual labor keeps you from doing your real job. Manual steps in any process slow things down, create dependencies on the people who are able to do it, and are error prone.

You need to automate as much as you can

Setting up a new server should only be one command away. Loading and anonymizing a database dump? There’s a script for that. Rolling back a bogus change? Just another command and we’re green again. Continuous deployment and configuration management tools help you avoid those unnecessary delays.

This won’t work in my company

You might think that your environment is too complex to try any of the above. While it is true that a long history of silos and strong departmental boundaries make things harder, you’d be surprised to know everyone inside the other silos are striving towards the same goal: making your customers happy.

Approach others with respect and a positive attitude

By stopping the blame-game you can build trust. And by building trust you can increase collaboration and eventually speed things up dramatically.

You can start today

Changing your attitude is solely up to you. Approach your colleagues and discuss the process delays with a positive attitude. Together, try to find ways how to avoid delays by working on smaller items, doing less preparation work, and automating recurring, intensive manual labor. You’ll see that looking at a shared goal of avoiding delays gives everyone focus and energy.

By working on the whole product development process, you avoid getting stranded by a broken railway after rocketing over the longest leg of your journey at over 800 km/h.

Published at DZone with permission of Matthias Marschall, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)