Some times I’ve been involved in complex projects where my team and I have to spend long nights (and weekends) in a row in order to complete the desired deliveries. The reasons are quite similar from project to project, what is important to business and commitments that eventually don’t take into account engineering arguments on why this is going to take so long, etc.
After all when you work as a team and the whole team understand the importance of what is being coded you can deliver and the result is acceptable, (we all know that working long shifts hits us back on code quality because some things needs to be get rid off), and if it works, no one cares if it is not a piece of art.
What is curious about all this is the food menu, yes, if your team works late and over the weekends it is common to offer them food while they are at the office focus on completing new features, and no matter different companies I’ve work at, its more often PIZZA. Yes they tend to vary the menu as much as possible, but when feeding a developing army it is easier to order different type of pizzas that can satisfy the variety of people who works in one project.
One message I sent to the people in charge of this is to be creative and have different options in mind for this occasions, and that we developers hate pizza not because it is ugly, is because we as all other people in the world love to work in environments where we can be highly productive and have room to do other activities for our lives, (Like learning about new technologies).
My message to Business areas, is to find a balance with your engineering team, this is not an easy negotiation but as fixed budgets are set, a fixed developing capacity too, and something really important is that 9 moms can’t make a baby in one month, so that adding more staff to a project won’t always increase the productivity and reduce the times as expected.
Where I work nowadays, we have come into an agreement, we have a capacity and that is the way we measure the velocity of our developing team. When we get together with product into our iteration planning meetings we all know what that capacity is and we all respect that, Features are properly estimated before this session and we all agree what is the amount of work that needs to be completed before next planning session is set to happen, sometimes you can deliver more, sometimes less, but the important thing is the meeting the entire team is busy and has it goals set to work on and they obviously are committed to complete.
We don’t have to ask them to stay late nor to work over the weekends, they just need to deliver what they are committed to, obviously sometimes few tasks take longer than expected and we stay longer in the office, but we agree on what will be ordered and since I work here it has never been pizza.
I’m happy now that I don’t have to say: “really, it’s Pizza again?”