Picture this, you’re managing a software project where everything is down on paper, the schedule is locked and your expecting a build with that final feature ready for delivery when all of a sudden things begin to unravel – developers are experiencing issues that seem to have come from out of the blue and threaten to jeopardize your build, your schedule, and maybe even your sanity. If you’re in the midst of such a situation, it probably isn’t too comforting to hear but… many of us have experienced the same issues. So, let’s look at some of the most frustrating, and quite often mind boggling reasons, we’ve heard from developers as to why they are late and discuss some ways you can help prepare for the unexpected.
Expect the Unexpected in Software Development
Though an epigram, take “Murphy’s Law” to heart and remember that “shit happens.”
In software development every Product Manager knows that an estimate a developer gives you always come with some degree of uncertainty: maybe that 3rd party system you are trying to connect to has out of date documentation that makes development move slowly, or perhaps a user story turned out to be a lot more complex once the developer started working on it and they uncovered a bunch of corner cases. These types of hiccups happen, and in the quiet words of Donald Rumsfeld, are sort of a known unknown. But every so often a developer will come to you and regrettably inform you that they won’t be meeting their deadline for reasons that sound so outlandish that you might wonder if they are pranking you.
Having built and delivered over 200 products to the market, our team of PMs at Blue Label Labs are very well aware of “Murphy’s Law” and how seemingly out of nowhere “something” will come and throw a wrench in an otherwise well-oiled machine. We surveyed them for some of the most frustrating and unexpected reasons their developers have ended up being late and here are a few:
Poor upload speeds. When you employ remote developers in areas with poor connection speeds, this creates a few issues. Problems surface both when you have testers or staff in places with networking problems, such as those overseas or in rural areas. For us in North America we take fast upload speeds for granted, however, in many parts of the world internet speed is nothing short of terrible. We take it for granted that uploading a 100 MB IPA file to Apple’s servers is something that takes seconds, we’ve had developers end up spending hours trying to upload one build to TestFlight, blowing delivery dates while they watch the slow progression of the upload progress bar.
Power issues. Even in areas with more modern infrastructure, power outages occur due to mismanaged requirements or unplanned natural disasters. In areas with poor or broken power systems, this will create delays. In the West, we’re conditioned to not encountering power issues unless there’s a storm, earthquake or other natural disasters. Too few of us had ever had the experience of touching an electric appliance that isn’t properly grounded then wake up on a basement floor confused and smelling like burnt hair – keep in mind, power is inconsistent in less developed areas. Power is something we take for granted, however regular blackouts are a fact of life in Eastern Europe and Asia and something that can totally halt development.
Holidays. Anyone who has ever worked with developers in India can you tell that late October is a bad time to be planning any deliverable dates as that’s when all of India shuts down for a week for Diwali. Middle of August? Don’t even think about it, its Independence Day. India is a country of many religions and depending on where your developers are based you might run into any number of other festivals (who knew that a Kite Festival was a holiday?) that come up throughout the year that can catch you off guard. Holidays aren’t just something that might delay you in India: if you have developers in China, don’t expect any work to get done around the Lunar New Year at the end of January or if your team is in Brazil then early March (Carnival) isn’t a great time to be planning a major deliverable.
Riots & War. It’s one thing for a developer to be late because they mis-read a feature in the spec, but can you really blame them if the reason they were late was because of a riot in their neighborhood or artillery shells landing nearby?! If you worked with a Ukranian development team in 2014 or are currently working developers based in Venezuela then you probably appreciate the impact unrest and war can have on the productivity of your developers. In the West, we take for granted working in a society that is stable and at peace, however the person on the other end of your Slack DM might be living through some truly harrowing experiences!
TestFlight hasn’t processed the build. This one should be familiar to anyone who has developed an iOS app: you upload your build to TestFlight expecting it to be released to QA in minutes for verification and then nothing happens. You wait 30 minutes, still no build. A couple of hours pass and the build is still “In Processing” in App Store Connect! TestFlight delays in processing builds are notoriously unpredictable and seem to happen at the most inopportune times. We’ve seen TestFlight get stuck “In Processing” on a build for up to 12 hours with no explanation from Apple and no recourse on our parts. TestFlight delays, much like those at LaGuardia Airport, are a fact of life that you just need to factor in when planning.
Help your developers help you!
As ridiculous as these examples are, they happen and aren’t totally unavoidable. Between good leadership, solid planning and team agility, building or redefining milestones to reasonable (when necessary) deadlines is just part of the game. If you are working with offshore development teams, be mindful of their calendar and the environmental circumstances that might interfere with their ability to deliver. When planning your schedule, it’s good to buffer a day for environmental circumstances, especially around important deliverables, as it’s precisely then when ole’ Murphy and his bag of tricks is liable to show up!
Our product development teams at Blue Label Labs are well-versed in a multitude of skills that translates to great software for business. Like anyone else, we’re not perfect and delays sometimes happen and for reasons that are as equally ridiculous as they are unpredictable. We’ve learned that in software development you need to expect the unexpected and be ready to move quickly and remain agile in the face of seemingly otherworldly obstacles that threaten to derail our development schedule.
Touch base with us here to learn how our development process works and how we’ve successfully built an award winning development agency with a team spread across the globe.
Get the latest from the Blue Label Labs’ blog in your inbox
More in Development
How Design Sprints Play a Role in Our App Design Process
The look and feel of your software is the bedrock of its…
Why Apps for Bikes and Micro-mobility Are Shaping the Future of Fitness & Transportation
We’re living in an age where our health is one of the…
How to Setup SSH Tunneling to Access AWS EC2 and RDS Resources Using PuTTY
Accessing AWS resources, such as a Linux EC2 machine or a PostgreSQL…