Category Archives: Custom Software Development

Bringing Function to the Dysfunctional Office

Have you ever had a friend or family member confide in you–“you know, I sure hope Mary never decides to leave our business. She’s the only one who knows how to run the computer systems. If she left, we’d be in serious trouble.”

If you’re the manager of a dysfunctional office–one where everybody knows that if one or two key employees walked out, the business would be in jeopardy–we should talk.

We can write software that addresses the dysfunction head-on: First, we can simplify things, so if it takes 14 steps to generate invoices, we can often reduce that down to one or two steps.

Second, we can incorporate context-sensitive help. So if you don’t know how to do something, press F1 and there are the step-by-step instructions, right where you need them.

Our programmers love bringing function to dysfunctional office environments.

Is the Upcoming Election Responsible for Non-Decision?

Over the past month, I’ve noticed that the number of inquiries and requests for proposals has been on the rise–and significantly. Part of the reason for the increase has to do with ramping up our marketing efforts, to get our name out there and market I/O Technologies Inc more aggressively. Another reason probably relates to increased optimism about where the US economy is headed.

But I’ve also noticed something else. The number of people who actually pull the trigger on new projects is very low–at least for now. The only ones that have moved forward are crisis-level projects–something’s broken and has to be fixed right away. Otherwise, if a project can be viewed as discretionary, no decision is forthcoming no matter how many follow-up calls I make or emails I write.

Here’s my theory as to why: it’s the election, stupid. Regardless of their political leanings, I suspect that decision makers will continue to dawdle on making any commitments until after the presidential election. In all likelihood, they’ve carved out two alternative plans–let’s call them Plan O and Plan R. Our proposals most likely fall under Plan R, but would be modified or scrapped altogether under Plan O.

Granted, this is mostly conjecture on my part. I welcome your theories and comments on what other factors might be involved. At any rate, it sure will be interesting to see how this plays out in a few weeks, and what happens afterward.

Thanks for Doing Business With Us!

I really appreciate the folks who have taken the risk of working with a software company–oftentimes working with programmers they’ve never met in person–entrusting us with their data, business rules and trade secrets. Hopefully we’ve demonstrated that we’re worthy of your trust, and proven that our business relationship has been mutually beneficial.

Of course, I realize we’re not the only software developer available. Most days, I/O Technologies, Inc. probably isn’t anywhere near the top of your stream of conscious thought. But when you find yourself facing new challenges–whether that be responding to a new customer with unique requirements, complying with new government regulations, or changes in your way of doing business, please remember we’re ready and willing, any time you need us. We’re committed to helping you grow your company as rapidly and profitably as possible.

If you’ve realized tangible benefits from being associated with us, could I ask a favor? Can you think of a friend or business acquaintance who might benefit from implementing a tailored software solution? Would you be open to passing our name along to them? Or, how about posting a customer review on the Better Business Bureau’s web site?

Thanks in advance!

-Dave Martin

Spam Filter for Inbound Telemarketing Calls

Over the years, I’ve grown slightly more cynical and less willing to accommodate unsolicited sales pitches. I don’t try to be rude, or slam the phone down. But there are only 480 minutes in any regular work day. Too much of this time already gets chewed up in less-than-productive activity. So I try to save the telemarketer’s time (and mine) by getting to the point very quickly. In short: if they’re not responding to a request or product inquiry that originated from us, we ask them to send an e-mail to our general ContactUs address.

But some simply will not take “No” for an answer. Some try calling repeatedly, dialing different extensions at different times of the day–almost to the point of harassment. For these, we have the perfect solution:

At our office, we’ve written an application that displays our Asterisk phone system’s call history database. For any phone number that’s in the database, we select the record, then press the Blacklist button to add the phone number to our blacklist database. As a result, all future calls from these repeat offenders dump into our general voicemail box immediately. It would have been just as easy to simply disconnect the call, but we give them the option of leaving a voicemail just in case. Oftentimes they decide to stop calling of their own accord, once they realize we’re not going to waste valuable time explaining why we’re not interested.

How You Can Gain an Unfair Advantage

You’ve always had competition. In today’s environment, if you come in second, you run the risk of losing the race altogether.

But who says you have to settle for last place, or even second best? Here’s a little insight into what many of your competitors are doing, and how you can gain an unfair advantage…

1) Many of your competitors are determined to run their businesses using pre-packaged software. The trouble is, they spend more time trying to adapt their business processes to conform to the software instead of tailoring their software to accomodate their way of doing business. So the tail ends up wagging the dog. Employees gripe. Management gets frustrated by less-than-optimum productivity levels. And software that’s supposed to make life easier, actually ends up costing more than it’s worth.

2) Others have become hopelessly mired in custom software minutia. They tried designing massive custom software solutions to address every last need. They’ve invested inordinate amounts of time, energy and money writing up detailed specifications. They’ve spent countless hours reviewing specifications, polishing presentations for key decision makers, and ironing out every last detail. As a result, they blew past any realistic budgets or timelines long ago. And the pie-in-the-sky software solution everyone is banking on never actually materialized. Or it’s become so bloated and complicated as a result of trying to handle every conceivable scenario, that end users throw up their hands in frustration.

That’s why you have an unfair advantage. You’ll be taking an entirely different approach. You recognize that there truly IS a better way. You’re not going to be manhandled by pre-packaged software. Nor are you willing to get bogged down by bloated, impossibly-complicated custom software that never gets off the ground.

Instead, you’re going to start small. While you’ll always have the big picture in mind, you’ll start by identifying individual processes that could benefit the most from custom software. You’ll collaborate with a developer you trust, tackling one processs at a time.

The benefits of this approach are threefold: 1) Turnaround time will be a matter of weeks, not months or years. Your developer will be communicating with you on a regular basis–asking questions, demoing each feature, confirming that it meets your requirements. 2) The cost for individual components will be lower. You won’t be tying up huge down payments without having anything to show for it until a massive project is complete. 3) You’ll start realizing a return on your investment as soon as the first component has been implemented. And you’ll see continued improvements in ROI as each new component goes live.

At I/O Technologies, we believe custom software should make your life easier sooner than later. Give us a call to discuss how we can help you gain a competitive advantage and leave your competition in the dust.

What sets us apart from our competition.

Most programming companies will claim they write quality code. But after reviewing literally millions of lines of other programmers’ code, I believe I can say with some credibility that quality programming is scarcer than one might expect. Over the past 17 years, we’ve been asked to take over support and development of many applications written by other programmers. Some were well-written and reflected considerable attention to detail. Most resembled a bowl of spaghetti—overflowing with non-standard naming conventions, unnecessary indirect references, non-normalized database structures, and a copy-and-paste approach to coding that demonstrates precious little regard for future enhancements or support. When we inherit such projects, we’ve usually been able to revise them, bring them to a successful conclusion, and deliver a superior product that our customers will use for years.

When developing a new application from the ground up, we start by designing normalized data structures. Then we create a set of reusable classes and procedure code so the completed application will have a standard look and feel. Using standard naming conventions is a requirement for all programmers working at our company. So is the use of embedded commentary. As a result, future programmers will quickly be able to understand the purpose and functionality of a given section of code months or even years after it was first written.

Over the years we’ve acquired a considerable level of experience identifying what personal traits, test scores and interview results are predictors of a great programmer. And it shows: although our current staff is relatively small, I don’t believe you’ll find a more creative, intelligent or cohesive group to work on your project.

I realize we’re not much to look at: We don’t offer a polished sales presentation. You probably wouldn’t voluntarily choose to socialize with our geeky programming staff members. Winning friends and influencing people isn’t our strongest suit. But if you’re looking for a solid partner who’s been around the block a few times, who’ll listen to your needs, pay attention to detail, and demonstrate genuine concern for your company’s continued growth and success, I believe we’re worth a closer look.

Introducing Contact! – A Free Contact Manager

Running a business (or household) successfully requires careful
attention to detail. Several years ago we started developing a
contact manager to help us keep track of customers and prospects.
We’ve tinkered with it over the years–adding functionality here
and there as needs warranted and time allowed.We use this software in our office every day, and believe others
may benefit from it as well. So we’re giving it away to our
customers, friends, and anyone else who might find it useful.

Download a fully-functional version, install, and you’ll be up
and running in no time!

Download Now

For detailed instructions on how to install Contact!, click here.  (Requires Adobe Reader).

Here are just some of the features now available in the current version of Contact!:
Easy to use – this contact manager doesn’t bog first-time users down with complicated rules on how to use it.
Multi-user enabled. Simple to install on multiple workstations.
Drag-and-drop files into the attachments grid to associate them with individual contacts.
Add unlimited number of notes for each contact.
Sort/Search contacts by first name, last name, company, city, zip, and date entered.
It’s Free! This is NOT try-before-you-buy software. It’s 100% free. Click here to view the license agreement.

About I/O Technologies, Inc.

Founded in 1994, I/O Technologies Inc. provides software solutions for businesses large and small. We offer a wide range of products and services designed to empower people through great hardware and software – any time, any place.

Dave Martin
dmartin@iotechno.com
262-437-3239 x101

I/O Technologies Inc Logo

Input / Output Solutions for Business.

I/O Technologies, Inc.
W157N11647 Fond Du Lac Ave
Germantown, WI 53022
800-318-8529Web: http://www.iotechno.com
Blog: https://blog.iotechno.com

Bridging the Gaps Between Islands of Data

We’ve seen it many times. As a company grows, intelligent people within the company want to manage their data in ways that will help them do their jobs. What could be wrong with that? Not a thing. People can do some pretty amazing things with spreadsheets and database applications. As companies grow – especially from small to mid-size – the tendency for departments and individuals to create these data islands increases.

There’s one problem. These islands of data are just that: islands. Data is only as useful as it is accessible by the right people at the right time. Sometimes data can get stranded and inaccessible. Smart CEOs and managers take steps to ensure that both the input of data and output of data continue to be available.

Granted, there are definite advantages to independent data marts running within an organization.

  • They help bypass corporate bureaucracy and red tape.
  • They empower individuals to manage their workload, sometimes in very creative ways.
  • And they allow for changes to applications and macros can be made on the fly.

Unfortunately, the list of potential disadvantages is lengthier:

  • Uncontrolled data access. If you put the application on the network without security, anybody can see everything. On the other hand, perhaps your company’s decision makers make poor choices, not knowing the data is already available.
  • Poor communication between the data island and corporate data warehouse.
  • Data and application failure danger, especially if running on a standalone computer.
  • Limited awareness of what all is happening with data within the organization. What happens when Joe Wizard takes an extended vacation, or leaves the company altogether? What if his data is password protected? What if an employee or manager spends hours re-creating a report that already exists in a different system?
  • Poor documentation. Sometimes it’s difficult to know how to run an application, and the impact that changes to data will have in other areas.
  • Departmental turf wars that arise as work groups challenge the accuracy of each other’s data or the effectiveness of their applications.
  • Redundant Data. As the number of islands grows, the amount of redundant data can grow uncontrollably across your company. And no wonder. Each island requires its own, typically duplicated, copy of the detailed corporate data.

What’s the solution?
At a minimum, explain your corporate policy, outlining the need for software applications to be documented and shared with management. This may even fall into the realm of Sarbanes-Oxley requirements for your company.

Rather than fight with the geniuses who built individual applications, embrace their creativity! Ask for their input on how to incorporate updates into your corporate database. Designing effective applications from scratch can be a daunting task. Why not use what has already been created as the starting point for discussion?

Data consolidation doesn’t have to be expensive, or impede the ability of people to be more productive. If done right, it will actually help everyone across the company see the data they need, when and where they need it.

The advantage of writing up detailed design specifications.

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, then using it as your road map for the actual software development work. It can serve as a great reference point and benchmark.

What is a design specification?

A design specification is a document which describes what a completed application will look like. It spells out 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.
  • Finally, it needs to explain what will not be included in the finished product. This will help ensure that all project stakeholders are on the same page.



Advantages

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
  • The resulting proposal(s) can be compared against a single standard. It’ll protect you from having to compare quotes on an apples-to-oranges basis.
  • Your company’s expectations will be met by the developer who ultimately develops your new system



Seven-Step Method

The procedure we follow when writing a system design specification includes these steps:

  1. Preliminary investigation – thorough review of all documentation and other materials provided by client
  2. Conduct interviews of key personnel as identified by management.
  3. Define project scope and constraints
  4. Create comprehensive system specification document
  5. Present results and recommendations to management
  6. Adjust specification per management feedback
  7. Deliver final specification document to management



The Next Step

After these steps are performed, you now have a tool you can use to solicit detailed proposals from as many developers as you like.