One of the challenges we always had with software engineering was finding the balance between strict deadlines and time to get it right. Software development is still more art than science, especially when innovating and working on major changes. Different constituents like customers, prospects, analysts, sales, support, and engineering have things they’d like to see, and want visibility into when the features will be delivered. Naturally, the market changes so fast that as an entrepreneur or product manager, there’s a desire to push back on too many fixed deadlines as that limits flexibility to adapt to new information.
Here are a few considerations with balancing software engineering deadlines:
- Work off short deadlines, like two week sprints, and use that to keep up a good pace of progress (don’t allow any to do items longer than two weeks such that something that might take two months is broken down into two week chunks)
- For longer range considerations and road maps, try painting broader strokes for areas that will be addressed instead of specific improvements
- Find a level of accountability for the engineering team such that there’s ownership over delivering on time while also making sure it’s fully baked (don’t let the balance of influence sway too much such that deadlines and deliverables aren’t met while still being realistic)
The best thing to do is to build a really strong engineering culture that views code as craft and has peer-to-peer accountability.
What else? What are some other considerations for maintaining a software engineering balance between strict deadlines and time to get it right?