“How much longer ’til we get there?” It’s not just a question our kids ask on the way to grandma’s house. It’s one we might also ask when the software project we’re waiting for doesn’t show up as soon as we expected.
Sometimes there’s no excuse for project delays. We’ve heard of cases where developers (working for our competitors, of course!) didn’t even start working on a project until the deadline passed. But more often, another culprit lurks in the shadows. It’s called scope creep.
What is Scope Creep?
You’ll know you’re looking at scope creep when your software development project extends beyond the time or money you planned for.
“How did we get here?” a frustrated client might ask. “After all, we’re intelligent people who know exactly what we wanted and where we wanted to go–right?” Maybe so. But there’s a reason for the word creep in scope creep. Often, a number of incremental changes and improvements take over. These little changes add up–pushing the delivery date much farther out than anyone planned.
Why does this happen? The most typical cause has to do with the project plan.
Project Specification Makes All the Difference
I guarantee it: there will be scope creep 100% of the time when nobody documents what the final product should look like. Sometimes there’s a vast difference between what a client truly wants, versus what the developer thinks the client wants. The problem arises when nobody spells out the project requirements in black and white. Here are a few ways this will become apparent:
- Vague statements of work. Consider this requirement: “Develop a screen to track all vendor communication.” What’s wrong with it? Nothing, as long as it’s the first sentence of a lengthy paragraph describing how the screen should behave. But what if this is the entire screen definition? Do you see how much room for misunderstanding it brings? A good statement of work will go much farther. It will describe every field the form will contain. It will explain how users can access the screen. And it will spell out how every control on the screen will function. Vague statements in the project definition often result in disappointment when the project is delivered.
- Failure to document the criteria for completion. When it comes to software development, “We’ll know we’re done when everybody’s happy” just won’t cut it. Without a set of completion guidelines, programmers and users will often find themselves in an endless cycle of adding “just one more feature” or making “just one more change”.
- Forgotten project components. We also affectionately refer to this as the “Where’s the feature we never told you about?” conundrum. A good systems analyst should be able to map out the scope of software project up front. But sometimes clients fail to mention that they want to include the functionality of an entirely separate application. Only after we reach the beta testing phase do end users complain that something’s missing.
- Changing requirements mid-stream, without updating the project definition. For example, “What we said we wanted two months ago no longer applies, because we’ve started a new product line. And we don’t need the widget feature because we stopped making widgets.” Changing requirements can have a significant impact on the project scope.
Additions, changes, and enhancements can increase the cost of any project. As the size of a project grows, managers may expect software developers to do more than what they expected. When the cost or time frame increases, it can also lead to increased stress on both sides.
What can we do to prevent scope creep?
When it comes to software development, prevention is the best medicine. Authors have written numerous books on how to manage software development. Here are three of the best methods we’ve found to prevent scope creep from delaying a successful rollout:
- Start small–especially when you’re working with a new software developer. This will help to protect your investment of time and money. If the first project goes well, then later enhancements will cause less concern.
- Document expectations thoroughly. What exactly should the finished product look like? How should it work? The more documentation you can put together in the initial stages, the less likelihood of surprises and unmet expectations. Some folks think they’re too busy to take the time to do this. If that’s your situation, consider hiring a systems analyst to do the documentation for you. Failure to do so will likely result in undocumented failure.
- Expect change orders. Even the most detailed statement of work can’t predict changes in a company’s environment, such as a new service offering, mergers or changes in management. And once users start working with the new software, it’s not unusual for light bulb moments. For example, a sales manager exclaims, “Hey! If the software can automate invoicing, why can’t it help us create proposals too?” But it’s important that customers and developers agree that the enhancement is just that–an enhancement. In that case, change orders can help improve the development process. A well-written change order will also set the priority of the additional functionality. Should a new feature be included in the project before the live date, or should it be included in a future release?
Scope creep is nobody’s friend–not the clients, and not the developer. Clients will likely become frustrated by delays and cost overruns. The developer will be disappointed when his or her creation doesn’t fully meet the client’s expectations. So before you embark on your next project, consider taking the time to document your needs. Talk with your software developer about how to make sure everyone is on the same page. Agree on detailed software development plan before a single line of code is written. You’ll be pleasantly surprised with the results.
Now more than ever, it’s critical to leverage this medium to your advantage.
I can’t. It almost seems that e-mail has always been there—even though it showed up only recently. Only two decades ago, most folks considered something like e-mail to be cutting-edge technology.
Today, we couldn’t function efficiently without it. E-mail has changed business communication more than any other technology. E-mail allows us to communicate with whole groups of people simultaneously. And, it automatically builds an audit trail when working on important projects.
E-mail is here to stay. But do we regard it more as a blessing, or a burden? The same tool that can speed communication can also reduce productivity. So we need to develop an e-mail strategy that leverages e-mail’s power, without bogging us down.
An E-mail Strategy will Help Control Costs
Here are three techniques you can adopt to minimize the cost of corporate e-mail:
Use e-mail to promote your business.
|1||Carefully consider the address you choose to identify yourself.|
|If you’re serious about growing your business, why not leverage your e-mail address as a marketing tool? It can become a valuable means of telling folks what your company can do for them. Your choice of an e-mail address is at least as important as your choice of phone numbers or domain names.|
Compare the following samples. What impression does each give you about the recipient and the company s/he works for?
What message does your e-mail address convey about you and your company?
While we’re at it, let’s consider the wisdom of using free-mail as your primary e-mail account. The term “Free-mail” describes e-mail accounts you don’t have to pay for. Services such as Hotmail, Gmail, and Yahoo! are just a few of the services which offer them. Mailbox sizes are generous. And many have built-in spam reduction.
So why wouldn’t everyone sign up? Well, consider the cost. Yes, there are costs associated with using free-mail. Because no matter how creative you are, a free-mail address doesn’t carry the same marketing weight as one that’s linked to your web domain. In fact, some spam blockers treat free-mail as spam. So you run the risk of people never receiving your important messages.
|2||Dress up your Signature|
|Every e-mail program lets you insert a pre-defined block of text and graphics at the end of your e-mails. Some folks prefer to simply use their initials or “Sincerely yours.” They’d be better off using a well-crafted signature. Why not take advantage of this capability, and promote your business with every e-mail you send?|
With a little effort, you can change your e-mail signature frequently to advertise special offers and invite customers to upcoming events. Often you can include your company’s logo. You can even insert hyperlinks that drive traffic back to your company’s web page.
|3||Use e-mail to keep in touch with customers and prospects|
|Research proves that the more you stay in contact with your customers and prospects, the greater your sales. Your e-mail strategy should include a schedule for reaching out to them. There is a place for newsletters filled with news your customers and prospects can use.|
Word to the wise: Whenever you launch an e-mail campaign, please be sure to make it easy for folks to unsubscribe. And whenever you receive such a request, please be sure to honor it promptly!
Considering how widely accepted e-mail has become, it’s easy to take it for granted. But successful business people will recognize its importance as a communication vehicle. And they’ll craft an e-mail strategy to make e-mail work for them, and not against them.
In order for us, or anyone else to provide you with an accurate proposal, your company would benefit greatly by having a detailed design specification drawn up, using this document as your reference point and benchmark.
A design specification is a document which describes what a completed application will look like. It sets forth the required characteristics to be considered for awarding a programming contract-including sufficient detail to show how the application is to be created.
A completed software design specification should do all of the following:
- It should be able to adequately serve as overview for programmers, giving them enough information and understanding about a project so they can get up to speed quickly, and won’t feel overwhelmed when asked to create or modify source code.
- It should serve as the blueprint that designers and programmers use to benchmark whether they’re designing the application in keeping with the original intentions of the design team.
- It needs to be as detailed as possible, but must not impose such a burden on the programmers and implementers that it becomes overly difficult to create or maintain.
Using a design specification will ensure that:
- Your company’s expectations are documented, and agreed to by all decision-makers within the organization
- All major design issues are unearthed and addressed
- Your time and effort isn’t wasted by repeatedly explaining project requirements to multiple developers
- Priorities and timelines for all the desired features and components can be established
- Objective cost/benefit analysis can be performed
- Resulting proposal(s) can be compared against a single standard
- Your company’s expectations will be met by the developer who ultimately develops your new system
Another advantage of using a design specification is that you can use it to compare quotes from multiple vendors against a single standard. It protects you from having to compare quotes on an apples-to-oranges basis.
The procedure we follow when writing a system design specification includes these steps:
- Preliminary investigation – thorough review of all documentation and other materials provided by client
- Conduct interviews of key personnel as identified by management.
- Define project scope and constraints
- Create comprehensive system specification document
- Present results and recommendations to management
- Adjust specification per management feedback
- Deliver final specification document to management
The Next Step
After these steps are performed, we then go on to provide a detailed proposal based on the final specification. Of course, your company would be free to use the final specification to solicit proposals from as many developers as desired.
I/O Technologies can offer this service separate from any programming effort for a flat fee. Again, this will not produce any software, but will be useful whether you choose I/O Technologies, Inc. for the development effort or contract with another vendor.
Should you contract with I/O Technologies, Inc. to develop your application within 30 days from receipt of the final design specification, we will issue a design credit equal to 15% of the cost of the initial design specification work toward the cost of actual application development.
You’ve probably heard the question, “How do you eat an elephant?” And the typical answer: “one bite at a time.”
What does this have to do with software development? Actually, it’s a great analogy. Because over the years, we’ve met many business owners who run their companies on really old code. (Some might even call the software ancient, by today’s standards.) In fact, we often find programs written back in the 1980’s, still hard at work today. But even when better solutions have evolved, some companies still hang on to the legacy system for as long as possible.
Managers have their reasons to sit tight
But why would business owners entrust their core business processes to old software, when so many improvements and innovations have become available? They do so for several reasons. And we hear these most often:
- “Our custom software has been a wonderful asset for many years. It’s tailored to the way our company does business. And it has run well for a long time. Why fix something that ain’t broke?”
- “Our software application is huge. It has many modules and contains hundreds of thousands of lines of code. So, migrating to newer software would be a colossal challenge.”
- “Our people are very comfortable with the existing software. Training them on a new system would take time. And change always upsets the normal flow in our office.”
Migrating to a newer software platform can present real challenges. It often involves a review of how the current software meshes with today’s business operations, and how it could be improved. So it’s not surprising when companies hesitate–even when yesterday’s software no longer meets today’s demands.
But folks, this doesn’t have to be an all-or-nothing proposition.
What’s a good manager to do?
Let’s rephrase the first question slightly: how do you migrate a huge software application? In my opinion, the best answer is: one byte at a time.
Yes, you could tackle a migration project all at once. But migrating smaller, manageable byte-sized chunks often makes more sense. And there are several reasons you might go this route:
- Rolling out incremental changes allows you to see results more quickly. And smaller updates won’t upset your business operations nearly as much as larger ones could.
- Small updates will introduce change to your employees at a slower pace. As a result, they’ll have time to get comfortable with the change. And hopefully, they’ll recognize the benefits as well.
- When you migrate gradually, you’ll spread the cost over a longer period of time.
- Taking smaller steps gives you a chance to evaluate a software developer. It lets you see how well they understand your needs. Plus, you’ll find out how well they implement your programming specifications right away–rather than months later.
Because we all have lives outside the workplace, it’s understandable why some might postpone adding yet another project to our busy schedule. But hardware and operating systems continue to evolve. And the day will come when 30-year-old software won’t support your core business applications any longer. So it’s wise to start planning now, rather than waiting until you have fewer options.
Not ready for any changes just yet?
What if you’re not ready to begin the process today? At the very least, you might want to find programmers who can support your application in its current state. Not only will you have someone to call if anything goes wrong. They’ll also be more knowledgeable about your business processes when migration time finally arrives.
If you’d like help evaluating how best to migrate your software application, give us a call.
I developed a new 20-second ad to play at the Rivoli theater in Cedarburg while the crowd is waiting for the movie to start. Take a look:
If you have any constructive criticism and/or suggestions for future ads, please let me know.
This morning’s e-mail included an “Urgent Server Warning!” message from Notificationemail@example.com.
Looks pretty serious, doesn’t it?
But I can tell you with 100% certainty that this is a complete and utter hoax.
How can I be sure? Well, I’m the administrator for iotechno.com’s mail server. So I’m the only one who can disable or remove email accounts from our domain.
No, the goal of whoever sent this email was to lure gullible recipients into clicking the hyperlink–which would launch a web browser and drag you onto their site. The page you land on would probably attempt to sell you something, steal information off your computer, implant a virus, or worse.
(I won’t repeat the full hyperlink here, but the site starts with ‘cinematic’ and ends with ‘ter.com’)
The moral of the story: it’s highly unlikely that your email server administrator would ever send an email like this. After you hover over the hyperlink, if you don’t recognize the site, don’t click the hyperlink! Just delete the email and carry on.
No doubt, you’re familiar with the Prepaid Invoice Synopsis reports you may receive in your e-mail. These reports document how many hours you started with, and then list all work performed, along with a running balance of hours remaining. In the past, we e-mailed them once per week–on Fridays.
But there was a potential problem in this connection. What if your block of hours was exhausted early in the week? We do our best to monitor every balance, and contact you when hours are running low. But now the process has been enhanced to help keep you better informed every step of the way.
Effective tomorrow, January 11, 2018, you should receive a Prepaid Invoice Synopsis any time one of the following occurs:
- One of our programmers logged time to your prepaid block of hours the previous day.
- You authorized a new prepaid invoice, creating a new block of hours.
- It’s a Friday (in other words, you’ll still get a copy of the report at least once per week.)
Since this is a new process, we may need to iron out a few kinks along the way. If you have any comments or questions, please feel free to contact me. My direct number is 414-847-9481.
And if there’s anything else we can do to improve our level of service, I’d love to hear from you!
For many of our customers, writing software specifications can be a huge challenge. Where can you find time to pull together all the details for even a simple software enhancement? How can you document exactly what you have in mind? Assembling screen shots, drawings and written instructions can become a massive hurdle for business owners and managers. As a result, many great ideas never see the light of day.
So, recently we’ve installed new remote connectivity software. It enables us to join you in an online meeting, record the audio and video, then write up specifications on your behalf. Once you’ve had a chance to review, tweak and/or approve the document, we’ll give you an estimate.
How much does this service cost? For now, we’re offering it free of charge on small- to medium-size projects (involving one or two screens/reports). My rationale: if this process helps clarify the scope and streamline the programming process, then our time will be well spent. (I reserve the right to revisit this, depending on how future projects turn out.)
Have a project you’d like to test drive using this new approach? Please contact us to schedule a meeting online.
And One Possible Remedy
Has this ever happened to you?
You arrive at your office an hour early–determined to get in front of the demands of your job. You check today’s schedule and make a mental note: “don’t forget to attend that important meeting at 2pm!”
Then, as more employees arrive, the pace at your office grows more hectic. A coworker drops by, asking for help with a project she’s working on. A lengthy phone call temporarily derails your train of thought.
And the morning races past.
You work through the lunch hour-so engrossed in the flurry of activity that you lose track of time. At 1:30pm, you’re summoned to help put out another fire.
Finally, it’s time to leave for your 2pm meeting. But you’re so caught up in the urgency of the immediate that it has slipped your mind entirely. You miss the meeting.
The Trouble with a Neglected Schedule
Maybe your life is so well-organized that this never happens to you. Mine sure isn’t.
In fact, this very scenario has played out in my professional life more often than I’d care to admit. Oh, I’ve read several time-management books-and vowed to implement every suggestion they offer. But then, another urgent crisis drowns out the ticking of my schedule clock, and I fall short on my commitments once again.
The problem isn’t with my schedule. It clearly identifies every meeting, every appointment, and every upcoming conference call. The problem is that often I neglect my schedule. I don’t give it the attention it deserves. But what to do about schedule neglect?
Many time-management books advise you to shut down your e-mail program, so that inbound messages don’t distract you. Thus far, I haven’t figured out how to close Outlook and still see appointment reminders. Even when Outlook is open, that reminder dialog appears to play hide-and-seek, ducking behind other windows.
If only my schedule were able to call out to me, “Dave, come back! Look at me! You’ve got some important items on your docket!” If it could do this, I would have a better grasp of where I’m at, and where I need to be next.
That’s why recently, I decided to devise a way for my schedule to seek me out. Several minutes before each meeting, my schedule actually calls me on the phone, giving a verbal reminder of each appointment. I won’t bore you with the programming details. But here’s a brief explanation of how it works (after the software has been configured to work with your schedule).
After setting the date and time, set a reminder as you normally would.
There’s just one difference: in the textbox below, type the word Cue: followed by 1 or 2. This cues the phone system to dial either your primary or secondary number (eg, office phone/cell phone).
With the new logic in place, my phone delivers a recorded message at just the right time: “This is a friendly reminder that you have an appointment 5 minutes from now.” And out from the fog, back to reality I come.
So here’s my question for you: Would you find this useful at your office? Do you think people might even be willing to pay for a service like this? For me, a reminder service that ties directly into my schedule is a priceless asset.
To paraphrase JFK, “Ask not how often you should check your schedule. Ask how often your schedule should check in with you.”
I’d welcome your feedback.