One of the natural consequences of working in software development is that requirements can change at any given time. Because we're an Agile team working in an Agile environment this is not a big problem as it means we are prepared and able to react quickly to the changing demands of management and customers. If we were working in a Waterfall environment (which I've heard about but not experienced for myself) I imagine we would find it a lot harder to adapt to such short notice changes. Therefore, we are not always in control of how much time we will have to carry out development and testing. I don't see this as a negative as it just means we have to be adaptive and flexible. I have also found that it brings out the creativity in the team and makes for a challenging and rewarding experience.
On a team level and also on a personal level this means that we have to make the best use of the, sometimes limited, time we have. In an ideal world customers would work to dates we could set them and not mind if the dates kept slipping out so we could take our time to create even more polished applications. Obviously, in reality, this would never be the case as customers want to move fast and beat the competition to market. They want to have use of a product we can provide them before they find a similar product created by one of our competitors.
To achieve this we must have all areas of the company working together to meet the customers requirements. When this happens and we all pull together to realise what the customer wants and when they want it, it is very satisfying knowing that we are driving the company forward by meeting customer expectations and improving our reputation.
One of the conclusions I am coming to is that there's nothing like a deadline to focus the mind. I'm not thinking of this in terms of cramming everything in, such as doing your revision last minute on the night before the exam. But rather planning what needs to be done today, what needs to be done this week, and also what contingency plans do we have if requirements change. I don't think deadlines necessarily need to be dictated by customers either. When the implementation of a piece of work is not directly customer dependent it should not mean that we rest on our laurels until the next 'real' deadline comes along. If we can commit to a target date for all tasks undertaken then we should be able to have a gauge, at least in our minds if not visible to the team, of how our tasks are progressing in relation to the deadline we have committed to. Commitment based tasks are something we are considering where I work so the results should be interesting. The theory is that our time management and work rate ought to improve as we have a defined static target to aim at.