“A thousand mile journey starts with the first step.”
During projects it’s crucial we set goals. We not only set a goal to be attained for the project as a whole, or individually with respect to roles, but we set milestones. Some project takes years to finish and when people are on that bandwagon from the start it’s easy to get lost in the conundrum of day to day living and lose your drive. So we have to chunk things down to manageable bits and celebrate when we’ve attained the goals we set out for these bits. Because of the generic character of project phases I’ve come up with four which are listed below, they are:
- Scope determination
- Prototype delivery
- Prototype acceptance
- Software usage
Keeping the Momentum Going
While I don’t want to go in to the details of what happens during these milestones because a whole set op posts is devoted to them, I do want to open up another issue, which is about the following. Using milestones is about keeping the momentum going. If that’s true it presupposes a linearity, because milestones are unique in so that they only happen once. You can’t deliver the same prototype twice just as you can’t accept the same prototype twice.
“Why it’s so important to be linear with respect to your milestones is that you have to reach them in subsequent order.”
Again, I agree it doesn’t have to be that way, but it takes an extremely professional organization where each player can perform parallel tasks and seamlessly let it fit in with the tasks of their team members without wasting time and being inefficient. I’ve as yet never come across one. I sure hope someday I have the privilege to do so. Till then I profess a return to linearity when it comes to milestones, which is, always start with determining your scope.
Five Reasons Why People Don’t Determine a Scope During a Software Project
I have witnessed countless times people wouldn’t do this for the following reasons:
- Pure and stupid ignorance
- Because they thought they didn’t have the time
- Because they thought they didn’t hav the money
- Because they just didn’t feel like it
- Because they didn’t think it was important.
For whatever reason they did it, it doesn’t matter. I have no experience with projects who faired well without a scope, I have painful ones where a scope was absent with disastrous results. Disastrous for the project and its people, both mentally and, in the end, physically. More on scope later on. The same goes for prototype delivery and acceptance. You can’t accept something never delivered. It’s sounds as simple as that but yet again, what happens in practice tells us a different story. Half finished products invested with bugs being forcefully accepted by a user group who never even asked for it. Does that happen? All the time. Will this work? No! Will people be happy? No! Then why do we do it? Read this post on cognitive dissonance!
Software Projects Are About Finishing a Job After It Has Started
Thinking linearly is not only sensible because of the difficulty in performing parallel activities, it’s about finishing the job when you’ve started it. For many years I’ve ridden bikes. I went into the French hillside and ridden trough the countryside ploughing on uphill for miles and miles. For the group I’ve been riding with those years, it’s dishonorable to quit on an ascent. Everybody would make sure you felt it if such a thing happened. You will be the laughing stock for years to come. No matter what happened, how fast your heart would be beating, almost jumping out of your chest, no matter how blurry your vision would be, keep on peddling. That was the number one rule for all of us. I remember one ascent two miles long, but it was 20% or more all the way. It was so steep at points that pedestrians almost went as fast as we did going up. I died a thousands deaths on that hill but neither I nor the friends I was with quit that day and we felt so proud.
“A lot of times when things get tough people quit and they make up stories which place responsibility outside themselves.”
Even though it’s so much more fulfilling to finish something you had to put effort into and had to step outside your comfort zone for. That’s where the growth starts.So instead of thinking:
“This scope thing is too hard a nut to crack, because I’m all about avoiding conflict.”
think
“I know in the end the best thing for my customer and myself will be to do this right now, so we don’t have to face the problems of a project’s scope bloated all out of proportion in the future.”
The Mirror
Don’t kid yourself, if you take a hard look at what’s necessary in performing your job, you know when what road needs to be taken. If you look in the mirror it’s often very hard to BS yourself, so don’t. You’ll be a better person because of it. I often tell the following to people who are frustrated because seemingly there isn’t enough appreciation for a job well done, only nagging about the things that could have been better.
“Besides the fact that they can take the pride from within themselves, that no matter which way you turn it, and even if it doesn’t always looks that way, truth, integrity, professionalism and honesty, those character traits will be rewarded because they are everlasting.”
Besides all this there’s extensive evidence originating out of goal-setting theory that positing clearly defined difficult goals (e.g. milestones) stimulates productivity in solving simple tasks (arithmetic tasks for instance versus managerial tasks). The nature of software engineering has direct linkages with solving arithmetic tasks. From this can be concluded that a software design can be an extremely important device with which to stimulate software developer’s productivity. So evidently it’s not only the “managers” job to stimulates his subjects. A software design is crucial during each of these milestones so take an active role in steering the project towards the attainment of her goal. Now let’s take a closer look at the importance of a project’s scope.
Related posts: