Archive for the ‘Computers’ Category

I got a guy…… How to know if your “guy” (or gal) is doing well?

Thursday, August 19th, 2010

We run into the statement “I’ve got a guy…” a lot.* (gals, see note below)    The corollary is “I am using someone I’ve used for a long time…”.  Both of these are understandable.  We are in an service area that is very customer intimacy centric.  Customers have to trust us even if they really don’t know what we do or how to really measure success.   So here is what I tell my sales staff when they run into that question.

1.  So you have someone you trust, that’s great. They are there when you need them night or day, quickly to fix things?

2.  Can I ask you a question?   How often are they the hero?  It shouldn’t be that often

3.  If they have to be the hero more than twice a year or so might it make sense to at least have a second opinion on your network architecture?  It may be just right but you may be paying for heroics that are not really necessary.

* Sorry gal’s I’m just the messenger here and I’ve never actually heard “I’ve got a gal…” although we’ve hired some pretty terrific network engineers who happened to be women.

Did the customer mean Important, Urgent or both

Friday, April 2nd, 2010

We had the wife of an important employee of an important client call us today and let the receptionist know that this was an emergency.  It was mid day Friday and they were leaving for 2 weeks vacation in the morning and the laptop they would use to connect to the company Citrix was set up with two profiles, the wife’s and the husbands.  The husbands profile would not connect to the internet ever since he installed a wireless headset.  Our engineers were very stressed about how to handle this because the persons house was a good 40 miles from the office and being this was a new client we were not sure if they expected to pay for us to go there and fix a private computer in a persons house.  The wife had said it was an “emergency” so we spent some time finding the decision maker at our client and the answer was, if he wants it fixed he will be responsible for the trip or for bringing it to us.   But it was an Emergency right?  Of course they would want us to come up.  Of course they did not.  What the wife had really meant was it was an “urgency” because they were leaving the next day.  Once we said that he would have to bring it down in order to get it fixed the work around was clearly the better option for them.  The work around was simply to use “her profile” on the laptop and he could get on the company Citrix.  Easy work around, no harm no foul and no need for 40 mile one way trip on the spur of the moment.

Some people might scoff at this as “oh sure the client wanted us to come to Cameron Park but it wasn’t important enough for THEM to actually make that trip”.  I say the real answer is communication.  The customer was sharing the need to have an answer quickly if a reasonable answer was to be found.  Our helpful guys heard this as “gotta have it fast” and translated “it” into fixed and “fast” into all costs, which came out to “Got to have it fast at all costs”.  The wife/customer was not out of bounds agreeing to allow our guys to come to make the drive.  In her  mind if that’s what the expert said was the right thing to do then that’s what they are paid to do is make those kinds of decisions, they are the expert.  But once the decision was made to toss that effort back to the customer, the customer correctly made the decision that the trip wasn’t worth it.  Problem solved in the best way possible given the circumstances.

The greatest impediment to communication is the illusion that it is actually happening.  Make sure when you hear important or urgent that you don’t decide to hear important AND urgent.  It’s the easiest thing to do but it’s also the easiest thing to validate.  Make sure your client understands what you are hearing so they have an opportunity to confirm it.

Business Applications: Know your costs

Saturday, March 20th, 2010

What does it cost you to provide the revenue generating service or product upon which you and your employees depend for a living and your customers depend for value?  Can you break down that cost into individual parts and determine if, in fact, you are getting the best value for your investment?

While it is likely these questions are of interest to you they are rarely easy questions to answer.  There are some industries though, where if you answer them correctly you can devastate the competition.  These are likely industries where one or more of your raw materials are in short supply and variable in quality and therefore value.  If you can capture the highest value product by paying a little more, then create the finished product for the same or less than your competition then your product can be higher quality at the same or lower cost.  Your competitive edge then is being the preferred customer of the raw material because you can pay more AND the preferred vendor of the finished product because you are the higher quality at the same or lower cost.  How can you achieve this?  By tackling that difficult problem of knowing your input costs through the entire product or service creation better than anyone you compete against. Once you know your costs and how to minimize them, it is also critical that the behaviors that minimize cost through the organization be easily and reliably replicated.

This is where a custom application can provide a big advantage over standard software.  If you use the same software that your competitor does then your competitor has the same opportunities to achieve the cost reductions.  You are limited in your tactics to methods that the standard software will support.  Your advantage is limited to being able to use the standard software better than your competitor.  The barrier to entry, should you succeed, is much lower because once your competitor sees your success they have the tools in hand to replicate that success, they just have to use it.

Custom software, on the other hand, is tailored exactly to your knowledge of your business.  The more information you can input into your software and manipulate the better and more granular your cost knowledge becomes.  When it is clear that doing something differently will make your costs go down or your quality or yield go up then changing the software to behave in that new way should be easier.  More importantly if you find a method that would not be supportable with the standard piece of software you are increasing the barrier to entry for your competition.

A company I worked with several years ago made their living buying a manufactured product that had seen better days (used) and selling pieces of that product in order to make a profit.  There were dozens of ways the product could be resold, whole for salvage, partial for salvage, pieces for reuse, pieces for specific salvage, and many others.  Each type of disposition had it’s own costs.  As a quick example:

  • Sale as a whole salvage item
  • - $100 = Whole Item Cost
  • - $  25 = Labor to process from intake to sale as salvage
  • +$150 = Whole Item Value Salvage
  • =$  25 Profit
  • Single part separation
  • +$  75 Single part value separated from the whole
  • - $  50 Labor to separate single part
  • - $  10 Salvage value decrease of remaining whole
  • - $  15 Inventory holding costs (space, time value of money, etc.) for single high value part

Separating the part from the whole becomes at best a break even. But, if you know your costs this accurately, and you can shave $20 off the three costs of breaking out the single part, now you can pay an extra $10 for the supply. Your competitor can not pay that much, or if they do they are paying too much. With overhead they could begin to loose money on every purchase. You either corner the market and make better profit on each of this particular item or you force your competitor to loose money which, over time, will kill them. Multiply this over hundreds of items which all could be separated in multiple ways and you can see that the modeling and management could be come extreme unless you had the proper tools.

While it is still a daunting task to get all the costs itemized, the potential value, especially if you can tightly control this information as a trade secret, is large. By creating a custom application and allowing only a few trusted employees to enter the key values under the proper protection agreements you can create a system that gives you a large competitive advantage AND a huge barrier to entry. The rules of the system are “under the covers” so even the employees who are working closely with the inputs and outputs and modifying the systems values still only see a “black box” when it comes to the rules. These employees might be able to do the same things in spreadsheets at a much lower cost but this makes it much harder to maintain the trade secrecy value of the information and the business far more dependent on that particular individual.

Business Applications: Workflow Applications

Saturday, March 20th, 2010

Every company is similar in one way, they all depend on people to get the work done at some level.  People require communication and communication is hard.  I have had the pleasure of working with and looking deeply into many companies in my career and invariably the hardest thing is getting and keeping people working the way you want and expect them too.  My favorite story is the story of the kids put in a row, you whisper a simple phrase in the ear of the child on the end and ask them to whisper it down the line from child to child being very sure they say exactly what they heard.  They will be rewarded at the end if the phrase the last child heard was near the phrase the first child remembers.  Invariably, even with only a very few children in the line, the last child states a phrase that bears little resemblance to the original.  Now think about day to day communications around your company and you will see time and time again where what you thought you said did not result in the behavior or response you intended.  Now multiply that problem among all the people in your organization and all the times that they depend on each other to answer a “how do I do this” question and you may see the problem in a new light.

One answer to this problem is procedure and policy manuals but frequently it is easier to ask the person next to you to repeat the policy than it is to look it up.  Then you repeat it to the next person that asks and guess what, you have just played the children game in real life.  The first person got the policy from another person and repeated it to you EXACTLY as it was stated in the original document correct?  Well, it is likely that it was not perfect, and so on and so on.

Computer programs are the interactive way of forcing consistent behavior. The policies are written into the program and the only way to successfully get the work done is to adhere to the policy or the program stops you, requiring that you “do it correctly”.  This is the equivalent of doing the activity with the book open checking that you did it correctly at each step.  One way to solve this problem is to buy the “standard” program or the framework…..these are the programs that were made for your industry or the SAP like general programs that are meant to be customizable to any industry.

One of the most uncanny aspects is that even if two companies look like they are direct competitors doing exactly the same thing when you look under the covers they are likely very different.  The differences are, in many cases, one of the reasons why some customers go to one company and some to another.  It may not always feel like this is the competitive edge, but the way you do business affects the way you communicate and that affects which customers you will attract.

A standard program forces you to work in a standard way.  To the extent that your niche is determined by the way you do business you put your company at risk.  For some companies the determining factor is not the data that is kept by the computer, in that case it is very clear that a packaged program is just fine.  A dental office, a doctors office, an insurance broker for a large insurance company that has software, perhaps a car dealer and others are businesses that most likely can be handled by a standard program.

But when you do things a little differently from the rest, and your adamant that this is important to you, then you are a candidate for custom application software.  One of our clients services thousands of clients in small transactions but a competitive advantage is customer intimacy.  How do you seem intimate with thousands of customers?  One of the things we built into the workflow was an easy way to remind the owner to send personal notes to clients on the schedule they were used to and other services to help the owner get that accomplished.   The program that all 100 employees work in every day embodies the rules of engagement that the owner has made a part of every transaction.  New agents coming into the business can not do it any other way.  Training requirements are eased, consistency is increased and the customers feel the close relationship without it killing the owners time.  She genuinely cares about her customers and now she can genuinely care about more of them.

How long should my computers last?

Saturday, March 13th, 2010

What is the effective lifespan of the computers in a business?  How do I know when I should replace one?

While there are no hard and fast ways to know how often you’ll have to replace computers, there are some guidelines that should make it easier to feel good about the decision when someone recommends a new machine.  Some of the factors to consider are how many people depend on the equipment for their productivity.  Servers are a particular concern because many, if not all of the computer users in your organization depend on the services provided by the server.  A workstation used by a book keeper is terribly important since the book keepers job is so clearly dependent on the computerized accounting system.   Laptops are vulnerable to repair more often than workstations because of their mobility.  Laptops also suffer from technical obsolescence more quickly than workstations as vendors become better at putting more power into smaller, lighter space. This makes it more valuable more quickly to invest in the newer laptop for the new features.
So what are the guidelines we have seen over the years?

1. Servers; 5 years

Servers are utilized by everyone in the company who are dependent upon computer services.  This frequently includes employees who never even use the computer. Payroll for instance, is typically dependent on services that stop if the servers do not function.  Most computer manufactures will call out 5 years as the “end of life” of server hardware and make it prohibitively expensive or possibly impossible to renew the warranty after that time.   Technology changes over a 5 year period frequently are such, that a new hardware refresh due to age, can also provide high levels of productivity improvement.  We recommend beginning to engineer the next 5 year solution starting 4 years after your last refresh.  You should recognize that for those companies using several servers the 5 year cycle may or may not be synchronized.

Desktop Computers; 5+ years

Desktop computers are, in many cases, made of a subset of the same parts as servers.  These parts, just like servers, tend to wear starting in the 5th year.  The difference here is that you can make a decision based on the cost of downtime that a particular computer-user can stand. The bookkeeper needs a reliable machine; unless of course you can send them home for a day or so anytime, even payroll, with limited detrimental results.  But many people who need a computer for their job often have a handful of things they can do while there computer is being replaced.  Our guideline for desktops is to expect them to last 5 years before you consider replacement, and then as long as it works after that, call it good.  You will likely get an average of 7 years, especially if you move the older machines downscale to the less dependent users.

Laptops; 3+ years

Laptops are mobile. Therefore, they take more of a beating than a stationary computer at a desk.  The laptop is typically an integral part of a user’s job as well or they wouldn’t need the mobility.  We recommend considering replacing your laptops anytime there is a new requirement and/or the laptop has a problem after 3 years.  We don’t believe you have to instantly throw it out at 3 years, many times particular laptops in particular jobs will last much longer, sometimes as long as 5 or 6 years.  But if anything happens requiring any real money to be invested in a laptop over 3 years old it is time to strongly consider replacement instead.

Printers; 7 to 10 years

The good news is that a good printer should last a very long time.  I have seen original HP Laserjet II printers still in service after 15 years.  If it’s working, keep it.

What you are buying with Custom Application Development

Wednesday, February 3rd, 2010

There are several ways to purchase Custom Application Development.  It is imperative for many reasons that you understand how your provider thinks of the contract and what you are buying.  Although there are many variations the themes making up the various offerings are:

1.  Staffing

In the staffing model you hire a person or company to provide you a person or persons who have a resume that indicates they have the skills to perform custom application development.  The typical staffing firm is not capable of truly vetting the candidate other than checking the resume, checking references and past employers and validating degrees and certifications.  Sometimes they even do all these.  After that, though, you are on your own to evaluate, manage, measure and get value from the person.  You are buying hours for dollars period, it is up to you and you alone to get the value from the person for those hours.  If you are not an application development shop yourself this is the most dangerous method.

2.   Application Developers who develop a product and hand it over.

In this model you pay a company or person to create a computer application for your business, you typically pay a flat fee but it could be based on a time and material contract.  The end product is the program you use and you will have certain rights to use the product.  The copyright and ownership of the product, though, remains with the code writing company and not with you unless you specifically get those rights as part of the contract.  This form of application development has advantages because you can hold the company responsible for fixing bugs and for keeping multiple people trained on the product, etc. because it is their product.  They can also, though, sell that same product to other people again unless you specifically negotiate that right away from them.

3.  Application Development as a service.  This is the type of Application Development that Squaretree provides.  In this case you are outsourcing the task of Application Development service to our company who provides this as a service to many companies.  It is our core competency and therefor your expectation is that we are very good at it and very efficient with resources.  We do not develop product we develop applications just like you would create for yourself if you had the expertise to manage programmers and analysts in house.  The added benefit, over the fact that it is our core competence, is that when you don’t have a specific need you don’t need to pay for the expertise.  The potential downside is that we can not hold people to a job if they decide to leave or get hurt any more than you can.  Because this is a service when someone needs to be brought up to speed on your project that becomes your financial responsibility same as it would be if you were hiring.  The good news is we know how to do that very efficiently and we know how to manage, evaluate, test and produce in our core competency in a timely manor.  As in the case where you were trying to manage Application Programmers inside your organization you would have to pay for this effort but in our case it’s guaranteed,  you would be charged for the successes we had at performing this task, not the failures.  This is great motivation for us to be good at it.

Global Entrepreneur Week comes to Sacramento SacGEW.com

Saturday, October 24th, 2009

Richardo Robles is a young and energetic guy in tune with the changing workplace.  He has developed with friends and partners an office environment that may be the next step in flexible space (http://capsityoffices.com).   But that is the only tease I will give you on that, you’ll have to contact him at one of the events that he is promoting during the Global Entrepreneurship Week, Sacramento.  The following is promotional from Richardo and the event organization:

Successful Growth Oriented Entrepreneurs Share their Wisdom at SacGEW.com

Now in its second year, SacGEW.com has a confirmed star studded collection of regional and national successful entrepreneurs sitting on panels during Global Entrepreneurship Week (G.E.W), November 16-22, 2009.  As the official Regional Coordinator for Global Entrepreneurship Week, SacGEW.comencourages all aspiring and current entrepreneurs to join any event produced in the region.    While there are others in the area hosting GEW events, you’ll find the highest  caliber speakers at the original coordinator of this week of awesome events, SacGEW.com.

All SacGEW.com events include multi-million dollar entrepreneurs talking about what they wish they had known and how they arrived at their current business.  In addition, each event is crafted with structured networking, designed and proven to connect an inspired entrepreneur to the next perfect person and opportunity.  Take a look at our line-up and buy tickets to the SacGEW events at http://www.sacgew.com.

One or more of these events could be well worth your time.

Bill

Application Development Done Right

Friday, June 12th, 2009

What does custom application development look like when it’s done well?  While there may be other thoughts on this and other people using processes that are not exactly the same and getting good results I can guarantee that there are certain parts that MUST happen for a project to be successful.  If these are violated then, while you might get a working program, it will take too long and some functionality is likely to be compromised.

1.  Vision

2.  Functional Requirements

3.  Creation of Code

4.  Implementation of the program

Vision:  This step is sometimes done as part of the functional requirements.  The deliverable in this step is a list of the groups of people that will be affected by the program that results from this effort.  Each group is defined and the desired result for each is documented.  The groups are called Stakeholders or Actors.  A specific person may be in multiple groups but when they are acting in a certain role they become a part of that group.  Examples of Groups are Inside Sales, Outside Sales, Bookkeepers, Invoicing staff, Customer Service, Executive Staff.  Each of these stakeholder groups are likely to have a different view of the business and different needs from the system.  Each of these needs to be documented before you can determine the functional requirements.

Functional Requirements:  These are the specific things the program needs to do or data the program needs to keep in order to meet the needs of ALL the stakeholder groups.  The visual representation is not as important here as the capture of the information.  In fact use of screen representation can inhibit our ability to question the requirements in depth which is important to getting to the true needs of the system.  Frequently we are able to ask, “why is that important?” or “What is that really used for” and find out that the process that has been in place is really not the best. During this step we frequently find that business stakeholders are better served changing the process.  The best thing we hear from this step is, “we know our business better now than we did because of going through this process”.  The result of this is a list of the requirements that the system has to meet. This list is comprehensive but not static. There will be discoverys as we go through the building of the code.  A key value of the application development team is to be able to determine when this process is “enough”.   At the end of this process the definition should be enough to be able to provide a flat fee proposal to build and implement the project.

Building the code:  This process is iterative, once the main parts of the database are in place screens start getting created and from that point we go back and forth with the client validating that what they are seeing is, indeed, what they expected to see.  Questions come up and are answered, sometimes changes are made to the functional requirements to accept things that the team has discovered during this process.  In most cases the changes are minor although there are times, “ah ha” moments, when the team realizes something larger should be done to add a great deal of value.  These are few if the process in Functional Requirements is done right but when they happen they can have a great deal of value for only a small change in cost.

Implementation:  This process is usually quite easy because we have been in contact so often through the develpment process.  Stakeholders in all groups have had a very stong hand all along in building it so they know what to expect.  One part of the project that is usually somewhat interesting is the migration of data from an old system to a new system.  I will have an entire article about that in the future.

Done right the act of creating an application custom taylored to your business will take a significant amount of effort from both your development partner and yourself.  But that effort will be rewarded in a far smoother operation with more information available and the ability to do more work with less cost, in fact it is likely that you will be able to achieve things you had always wished for but could never make happen.   If these are high value things then the creation of the program is well worth the effort.

SPAM filters, It’s not my fault you get SPAM I’m the one trying to help

Wednesday, April 29th, 2009

It’s so interesting because we have clients that LOVE software they purchase and install on their servers and the only time they call is when literally more than 1 SPAM get’s through per day on a single user.  Other people don’t like the very same product that much.  Part of it might have to do with how much the client is willing to train the product by putting the emails in the spam email public folders but I don’t know for sure.  Sometimes it is just the level of tolerance.   It is interesting to remember what “effective” means in a SPAM filter.  All SPAM filters catch between 60 and 90 percent of incoming email as spam.  The other 10 to 40% though can be hundreds.  Some of them are carefully crafted to go around very specific SPAM filter software.   It is sometimes hard to remember but it’s the SPAMMERS that are the bad guys not the people who are trying to fight the (*&&@#$*&#($#’s (fill in with any expletive you would like to apply to spammers).   The SPAMMERS work hard to get around everything out there.

So, anyway………..

There are three kinds of SPAM fighters.  All of them use lists of known spammers that change all the time and other criteria that also change all the time to figure out what is spam.  Emails are rated as SPAMMY in some sort of grading and the one’s that are most SPAMMY are not let to your inbox and the ones that are least SPAMMY are let to your inbox and the exact point where that break happens is usually adjustable in some way.  Sometimes there are multiple gradings as well.  The big differences begin with where the email is scanned.

  1. Software that goes on your server and scans for SPAM as it comes, taking care of it locally on your exchange server. (usually robust, lot’s of control, with control comes expense, this is also scalable)
  2. Appliances that you purchase as hardware and software that sit in your location but separate some of the spam before it get’s to your email server (more expensive and less scalable)
  3. Services that scan your mail before it ever get’s to you and separates the spam, from the maybe spam, from the we don’t think it’s spam.  (lot’s of ways this is different)

In the past the services have been cumbersome to use as you have to go to a web site to check your spam email.  This has recently been made easier by an email that comes to your desk every day that lists the email you should check to see if you want or not.  These services do all the upkeep off site so you aren’t responsible to keep the service running on the server, no more 15 or 30 minute billings to restart a service for instance.  All the real SPAM is kept off your server so your Exchange Server is less taxed.  The service has the benefit of looking at thousands of spam emails and users and seeing what is spam faster than the appliances or software solutions at least in theory.  Now that the convenience issue has been addressed we think the offsite hosted is the best.  We are recommending and reselling (at no upcharge right now) Postini from Google.  Hard to deny that Google is likely to have the best or one of the best services given their success in so many other realms.  The upside is once you are on it there are not going to be maintenance headaches with upgrades to a local piece of software and restarting services, etc.  The downside is it takes a little bit of time to get set up, likely around 4 hours of engineer time to get it set up depending on the size of your organization.

The appliances are the most easy to use but they also are the most restrictive.  You buy a certain size and if that get’s overloaded you have to buy the next size up.  They are not terribly configurable as well.  Each of the systems require you to think about categorizing your SPAM somewhat differently.  The off-site spam filters by necessity can’t call an email from a respected company SPAM.  For instance overstock.com or buy.com who both depend heavily on mass email marketing also have lot’s of fan’s that would not want that message to be called SPAM.  On the software you have in your office system it is probably pretty easy to tell the system that to you this is spam and let it take care of it.  In the hosted systems this is a little more difficult, not undoable but not convenient.  This is where using junk email from Microsoft comes in very handy.  It is very easy to see these emails and right click, “call this junk”, and let your outlook take care of these.  The downside to that is your outlook has to be open for that to happen so if you look on your phone email you might see them there till you get back to your desk unless you leave your desk outlook on.  This way, though, you are in control of the “special” spam that is your judgment call though not universally called SPAM.

There are advantages to all of the systems.  I think till recently, this is April 2009 as I write, the SPAM filters on the server were the best.  We are now beginning to switch to a time when the hosted SPAM filters is likely the best choice.

Image Based Disk to Disk Backup, the New Standard

Saturday, March 7th, 2009

The major problems with tape backup are:

  1. It is unreliable.  Tapes don’t get changed, they overheat, they are terribly hard and slow to verify.
  2. Restoration is slow because tape is slow and because you must rebuild the OS and restore files separately.  It is time consuming to test the tape as well.
  3. If you run out of room you typically throw away your investment and start over unless you can have someone change tapes and run a two tape backup which is usually very problematic.

These  issues lead to many minor issues such as never REALLY knowing if you have a good backup.  Over the last one to two years a new method of backup has become available to small to medium business.  Very low disk prices has made it affordable to leave unreliable and slow tapes behind and use disk drives to backup disk drives (disk to disk backup).  Disks offer several benefits over tape as a backup medium:

  1. Tape is a sequential access medium, meaning to read the last file on the tape you have to read ALL the other files.  Disk is random access, meaning to get to any file on the disk you just look it up in a directory and read it.
  2. It is far faster and easier to validate that a disk based backup is working
  3. Disks media is more reliable than tape media
  4. Disk allows the backup of another disk as an image, this means you not only get the files but you get the Operating System exactly as it is running

Image based backup means you keep an exact copy of the server or workstation you are backing up.  This image is so complete that you can actually mount it as a virtual drive and run it.  More importantly new technology allows the image to be put on dissimilar hardware and the software finds all the drivers that need replacing and takes care of getting that done.  Is is extremely smart about it and can put an image on from most hardware onto must any other hardware with no human intervention.  Rarely you will have to find a driver on the web and deliver it to the machine but it will tell you easily when this is needed.  To test the backup you can easily mount the image and see the files that are backed up.  With the image mounted you can copy a version of a file back to your real hard disk.  Finally incremental “backups” can be made by simply repeating the changes, bit by bit, that have changed on your real hard drive, onto your image making the amount of data to change far lower.  This means you can have several versions of files backed up by having several incrementals on the drive.

Image based, disk to disk backup is far superior to ANY tape backup I have ever seen.  It is affordable, reliable and fast.  That said there are many ways to set it up and it is very important that you use an experienced engineer to create your image backup scenario for the maximum reliablity and ease of use.  We went through about 20 different iterations before finding what we currently consider the right one.