Once I was launching a new software development project. The project seemed to be a quite interesting one – its functionality was very extended, its user interface (at least, according to mock ups) was very sophisticated and the technology stack was a `cutting edge`. Actually, a lot of effort was done before the start of this project – a series of user interviews were conducted and a fancy UI prototype was designed. So, we were about to start actual development activities, and the sponsor of this project was looking forward to the project inception.
Well, I rolled up my sleeves and put together the team of the best software developers of our company for this project. According to a project plan, we needed one front-end developer, two back-end developers and one QA engineer in addition to the business analyst and the UX specialist who were already onboard. We conducted a series of kick-off meetings, set up the processes, discussed the architecture, and based on this I created a project plan with all the milestones and release dates. The sponsor expected to launch this product really fast, so we had to work on a very tight schedule. We did a good job during a project architecture setup stage and were quite optimistic about delivering everything on time.
And then the day of the first Sprint had come. As usual, our team had a regular daily meeting in the morning (we did it by Skype, as our team was distributed between several locations). But it happens that one of our back end developers didn’t come to the meeting. I didn’t pay too much attention to this because there may be some reasons for his absence. The city where he lived was notorious for its traffic jams, so I thought that he was just late. I began worrying when he had not come till the afternoon and had not responded to any of my messages in Skype for a couple of hours. I worried even more when he didn’t pick up the phone. Nobody from our team and our company managed to contact him till the end of the day.
However, the next day his father brought a leave request document telling that our colleague had to leave urgently for another city to resolve some inheritance issues. As his father came to the office early in the morning, he left this document on the reception, so that I even didn’t have a chance to talk to him. The leave request said that the developer would be absent for a month.
This situation was very strange. “Even if he had to leave immediately, why didn’t he message me or, at least, write an email?” – I asked myself. The first thing I did after I had got this leave request was trying to get in touch with this developer. I messaged him in Skype again in order to explain that we need to know better about the period of his absence, tried to drop him a line, but he didn’t respond. There was another caveat – the city he went to was a `hot spot` where military activities were taking place at that time. So, potentially all the standard communication channels could be unavailable there.
Eventually, I decided not to be very insistent because inheritance issues are always related to some very sad life events.
Anyway, I had to do something in order to adjust our project plan. One month was quite a long period of time, and we couldn’t wait for so long because it would cause a significant delay in our schedule. Our project schedule was planned taking into account some potential days off for team members, but not a whole month at the beginning of the project. On the other hand, if we assigned a new developer, it would take him some time to get onboard and get familiarized with the project, which potentially would give us the same one month schedule slippage.
It was not an easy dilemma, but I thought in the following way. There was a risk that the absence time would increase. There was also a risk that the missing developer wouldn’t return at all. In fact, I had only his leave request and no proofs about its credibility. By that time I had known that guy just for a couple of weeks, so I couldn’t completely trust him. Taking into account the fact that I didn’t have any contact with the missing developer and couldn’t get any updates on his return time, I decided to substitute him.
So, I assigned another developer. He onboarded so fast that we could come back on track with our project. I think that then I had made a right decision.
What would you do in this situation? Any ideas?
P.S. The missing developer returned exactly in a month and joined another project in our company. As for our project, in a month it was suddenly stopped by the sponsor. There is a lot of uncertainty in our work, right?