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.
What is RFID?
RFID stands for Radio Frequency IDentification. You’ve probably heard about it before. One Wisconsin company recently made headlines when it announced plans to embed RFID devices under the skin of its employees. But what exactly does that mean? And how does it work? In short, it’s a technology that’s useful for keeping track of persons, pets and things.
How does it work? Here’s a simplified analogy: Suppose you fill several beer (or soda) bottles with differing levels of water. When you blow across the mouth of the bottles, each one makes a unique sound, depending on how much water it contains.
RFID works in much the same way. Think of an RFID device as one of the bottles. But we don’t blow on it to generate sound waves. Instead, we use an RFID reader which “blows” an electronic signal across the device. Just as each bottle makes a unique sound, each RFID chip responds with a unique radio wave signature. Store these signatures in a database, and voila! You’ve got a system that can track millions of items.
RFID devices come in a huge array of shapes and sizes. Tiny grain-sized units that can be injected under the skin of your favorite pet. Larger devices may come equipped with batteries (AKA Active tags)–enabling them to generate much stronger signals. (Active tags can be very useful for tracking tools, rental equipment, and so forth.)
You might ask, “Why not just use barcodes?” Oftentimes you can. But realize that you’ll need a clear line of sight to bounce a laser beam off each barcode. If you need to scan a box of parts, you’ll have to open the box and manually scan each barcode.
Here’s where RFID offers a big advantage. With the right scanner and software, you can scan multiple RFID tags simultaneously. This allows you to collect data faster–without opening or disturbing the outer packaging.
Another advantage of RFID tags: durability. Barcodes are usually printed on paper and can easily tear or smudge. On the other hand, most RFID tags are embedded inside a plastic housing. This makes them impervious to moisture and moderate heat. In fact, many uniform and cleaning companies sew RFID tags into the hem of uniforms. This helps to track items through hundreds of wash and dry cycles.
Here at I/O Technologies Inc., we utilize RFID badges and readers in our FastPunch! timeclock software. FastPunch! allows employees to clock in and out by simply waving an RFID badge in front of a reader.
If you’re contemplating a project that involves tracking inventory, tools, vehicles, or people, RFID makes a lot of sense. Contact us to discuss the pros and cons of RFID, and how you might opt to incorporate it in your next project.
We’re pleased to announce that effective immediately, users of the free Odolog application can download an update which will make all future updates completely automatic.
Previously, if you needed to update your version of Odolog, the only way to do it was by reinstalling Odolog from scratch.
Starting now, we have incorporated the ability to update Odolog automatically.
Do I need this update?
Here’s a quick way to find out if you already have the newest version. While running Odolog, choose Help … About.
If you see version 1.2.68 (or higher), you already have the latest version and don’t need to install this one-time update.
If your version is not 1.2.68 or higher, it would be a good idea to perform this special update. Why? Because in the future, any time we deploy an bug fix or enhancement update, it will install itself automatically.
To install this special update, please follow these eight easy steps:
What happens next?
In the future, whenever we release a new version of Odolog, you will see a dialog–asking whether you want to install the latest update.
One Final Note:
Odolog is free, and we don’t have any plans to start charging for it. But if these instructions seem overwhelming and you’d like us to deploy the one-time update for you, we’ll be happy to help.
|If you have any questions or concerns in this regard, please feel free to contact me.|
Late Friday afternoon I was sitting in the business center at the Baton Rouge airport, waiting for a flight to Atlanta. It was originally scheduled to depart at 5:25pm. I kept one eye on the flight status board, just in case my flight might get delayed.
Wouldn’t you know it? The board reported that the flight was delayed. No problem–I should still make my connection in Atlanta. So I settled in and continued working on my laptop.
Then, a little later, I looked up and was shocked to see that the flight was now scheduled to depart 4 minutes earlier than originally scheduled! Here’s a photo… Note the line for the flight to Atlanta:
If that information was accurate, it was already well past boarding time! So I made a mad dash to the gate–praying that I could still get on the plane. But when I arrived at the gate, people were still sitting in their chairs. Boarding hadn’t begun yet. And the gate signage continued to indicate that the flight was delayed:
Note to Delta–if you need help fixing that software, just let us know!
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.
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)
We met with a prospective client recently, who asked me, “What is your programming philosophy–do you prefer Waterfall or Agile?”
If you’re unfamiliar with the terms, here’s a brief overview:
Waterfall Software Development
The waterfall approach to software development breaks the overall project into several distinct phases:
For Waterfall to work, developers can move on to the next phase only when its preceding phase has been completed and reviewed. We can’t swim upstream, and there are no fish ladders available.
The Waterfall Challenge.
The biggest problem with this approach is that clients seldom have a firm grasp on exactly what their requirements are. If requirements are unclear, the project will never get past the requirements-gathering phase.
But if a client insists on moving forward without completing each phase, software developers will likely end up throwing portions of the code away, as the project scope changes later on.
Agile Software Development
Several years ago, to address the limitations of the Waterfall approach, a group of seventeen software developers met to discuss alternatives. They published the following Manifesto for Agile Software Development:
Agile software development offers an appealing alternative to Waterfall. Rather than scoping out a massive project and trying to address every possible detail, it breaks development down into bite-size chunks. As each new chunk is finished and tested, it moves into production immediately. This approach is known for its ability to deliver working software to customers faster. Then, as end users begin working with the new features, they often provide valuable feedback to drive future development.
Some of the best software we’ve written was developed using the Agile approach; we met with our customer to identify an overall goal, then wrote self-contained modules which performed specific functions fairly quickly.
The Agile Challenge.
But there’s a potential tradeoff. Developing software without an overall project design is akin to building a house without a blueprint. Unless project stakeholders pay close attention to the overall project evolution, the final result can end up looking like the cobbled-together effort that was used to put it together.
Oh, and then there’s one other small (almost trivial) issue: cost. Agile tends to be a pay-as-you-go approach. As a result, Agile projects can end up costing considerably more than anticipated.
Don’t get me wrong–if your company’s goal is quality software written quickly, then Agile makes a lot of sense. Just realize that if you’re working within a fixed budget, you may end up with less functionality than you envisioned. I.e., you may run out of budgeted funds before the evolving goals for your project all come to fruition.
You’ve probably noticed that I haven’t really answered the question. Why? Because I won’t be writing the check for your software project. More important than asking, “What’s I/O Technologies’ development philosophy?” is the question, “What is YOUR development philosophy?” If you need software quickly and don’t have all the details fleshed out, then Agile is the way to go. On the other hand, if you are faced with a fixed, not-to-exceed budget and can put together a well-defined project specification, then let the water fall!
Several churches I’ve talked with recently say they’d like to use vbsroster.com, but it doesn’t fit their situation because they don’t host a Vacation Bible School–(at least not using the VBS nomenclature). Instead, their churches offer soccer camps.
To address this need, we’re adding the ability to switch the theme from VBS to Soccer Camp. The same student, parent and emergency contact forms will be presented to parents, but the photos will have a soccer theme.
In addition, we’ve also added additional customization capability, including:
- Color selectors to change the header/footer color, as well as the title font color
- Home page editing capability
- Ability to link back to their church website (or another site).
Next on the docket: install an SSL certificate and move from beta into production.
Looks like our May 1 target is still on track!