Would You Find This Helpful?
Over the years, we’ve written hundreds of custom software applications for customers in the United States and UK.
Lately, several customers have asked whether we offer a standard, pre-packaged document scanning/management solution which we could ‘bolt on’ to their existing software. But the development required to do this for a single client has always made this cost-prohibitive.
What do you think…
So I’d like to ask for your feedback. Would your company find this useful:
Of course, this would require a fair amount of programming. And we’d have to pay annual royalties to the company that wrote the scanner interface. But if several customers are interested, we could potentially divide up the cost of development by offering licenses for x number of users at your office.
(By the way, you’d also need to buy and set up at least one desktop scanner. Here’s one we really like: Brother ADS-2000e).
If this sounds like an enhancement you would find useful, please let me know, so I can get a feel for the level of overall interest.
“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.
Did you know that right now, there’s a major change going on in the software industry? It has to do with how software companies license their software. For example, did you know that when you install Microsoft’s Office 365 on your computer, you’re renting the software for a limited period of time—you don’t own it? In fact, most software vendors are moving to this Software as a Service model, because it’s much more profitable for them.
As more and more software vendors move to Software As A Service, the demand for custom software has been increasing as well. Why? Think of it this way: when you hire a company like ours to write a custom software solution, you OWN the software. You’re investing in an asset. You’re increasing your company’s net worth. Nobody’s going to be metering your usage ever again. So you can forget the days of creative seat counting just to stay under arbitrarily-imposed usage levels. Most importantly, with custom software you own 100% of your data. You, and nobody else, have complete control over who can access your information, and what they can do with it.
So does that mean that everyone needs custom software? Not necessarily—packaged software apps like Quickbooks, Salesforce.com and Microsoft Office meet the needs of many businesses just fine. But if your people waste precious time every day rekeying customer data, purchase orders or payroll data into separate systems, we can do something about it. Or if your company needs a solution tailored to your specific way of doing business, that’s where we can help.
I’m Dave Martin, with I/O Technologies. We write custom software that’s good for business.
Love it or hate it, one thing is clear: stick with it long enough, and cold calling will generate leads.
And what could be easier? All you need is a phone, a list, and a little time. Moderately thick skin won’t hurt, either.
The process itself is fairly straightforward:
- Assemble a list of prospects who meet your target demographic
- Pick up the phone and dial
- Recite your script
- Schedule follow-up appointments
- Wash, rinse and repeat until your schedule is full
And here’s one surefire way to improve the odds in your favor: keep track of your efforts.
Keeping track means more than tallying the number of calls you’ve made and appointments scheduled. Your goal is to identify:
- the best day(s) of the week to make your calls.
- the best time of day
- the most effective script
Over time, as patterns emerge, you can tailor your scripts and schedule to make calls when they’re most likely to produce optimum results.
While you could log your efforts using pencil and paper, a spreadsheet will probably enable you to crunch the numbers faster. But wouldn’t it be nice to standardize and automate the process even more? That’s why recently, I’ve begun writing a desktop application that integrates directly with our PBX.
Here’s a screenshot of what the main form looks like …
For me, this application offers even more time-saving advantages. First, it automatically dials the numbers, so I don’t waste time punching out individual digits on my phone’s keypad. Secondly, it logs the call date, time and duration (see them at the bottom of the form?). So it’s impossible for me to forget to log my calls. Most importantly, I can run SQL queries against the data I’ve captured, to generate reports and graphs that spell out what’s working, and what isn’t.
So what do you think? What features would make this application even more useful?
I’d welcome your feedback about this application.
One of the software applications we’ve developed for internal use, and then shared freely with the world, is Toodles!
This simple To-Do list manager allows me to schedule both one-time as well as recurring to-do items for my office staff. It also helps me to manage a separate list of things I’ve assigned to myself.
Previously, if you wanted to use the [ ] Completed checkbox as a way of controlling which items continue to appear on your list, you’d have to edit the specific to-do item, check the [ ] Completed checkbox, then press Save. It would be so much easier if you could just check your completed items off on the List page. Well now, you can …
To use this functionality, just head on over to the List tab, and start checking off those items that have been completed (see the checkboxes in the far right column?). When you’re finished, press Save, and all your updates will be saved at once.
For more information about Toodles! and how to download, visit www.iotechno.com/toodles.html
Just because someone fancies him/herself a competent programmer does not make it so!
While updating an application we inherited recently, Jeremy (one of our programmers) emailed me this example. (This happens to be Visual FoxPro code, but we often encounter similar programming in Visual Basic, C++, and PHP code we inherit…)
“OK, Dave,” you’re probably saying–what’s so bad about it? Well, a few observations come to mind:
1) Even with the comment above this code block, it’s difficult to understand what in the world the programmer was attempting to do. There are much better ways to strip embedded spaces from fields.
2) The code uses single-letter variable names. Suppose the program bombs, returning an error message such as: “Variable N not found.” Guess how many times the letter ‘N’ occurs in this program? How long will it take to find the specific ‘N’ being referenced? Better: use Hungarian notation. For example: lnX = AT(‘ ‘, … etc). It’ll be a whole lot easier finding lnX in the code than trying to locate the specific instance of ‘N’ that caused the error.
3) This code will write and rewrite strings to the database up to 20 times per record–when a single write per record would suffice.
4) This logic, spanning nine lines of code, creates a nested looping structure. Nine lines will be much more difficult to maintain (and debug) than what’s needed.
So, how would we recommend changing the coding above? How about a single line of code:
UPDATE <table> SET ponumb=STRTRAN(ponumb,’ ‘) WHERE AT(‘ ‘,ALLTRIM(ponumb)) > 0
An added bonus: this logic will only write to the database when a PO number actually contains embedded spaces. The fewer times our code updates the database, the better.
Yesterday, a visitor to our website named Adam downloaded a copy of Contact! — our free contact manager software. But recent updates we made had introduced a problem with the installer. This was the kind of problem that that wasn’t easily uncovered during beta testing.
When Adam called it to our attention, we updated the logic to address his issue.
I thought I’d share his response …
|Subject:||RE: Email verification for Contact|
Hiya Dave The new download has resolved the issue. Thank you very much for your prompt response and resolution of my issue with your software. It's nice to find a company that is prepared to take the time to resolve an issue with their product instead of just ignoring the request. Even more so when you consider the fact that your product is a free one. Hats off to you Sir. Kind Regards Ajay (Adam)