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 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. While we expect to get paid for the knowledge transfer time we do expect that if we were to bring on the wrong person and find out they were not producing as they should, that failure would be ours to mitigate with either extra hours or lowered to zero cost.
Posted in Computers | Please Comment »
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
Posted in Computers | Please Comment »
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.
Posted in Application Development, Computers, Software | Please Comment »
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.
- 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)
- 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)
- 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.
Posted in Computers | Please Comment »
March 7th, 2009
The major problems with tape backup are:
- It is unreliable. Tapes don’t get changed, they overheat, they are terribly hard and slow to verify.
- 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.
- 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:
- 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.
- It is far faster and easier to validate that a disk based backup is working
- Disks media is more reliable than tape media
- 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.
Posted in Communication, Computers, Disaster Recovery | Please Comment »
January 27th, 2009
Having written that Tape Backup is not recommended, I should now write about what we are recommending for a solution. Prudent marketing might make me say……email me to find out, but that’s not in the spirit of a good blog and frankly it’s not that hard to figure out what I might be thinking about. But before I do the “what” article I think some important background information is necessary. It is important to understand what you are protecting against. Backup by itself is really meaningless, what you need is recovery. There are actually a lot of things to think about when you think about recovery. Recovery can be categorized as needed in three cases.
- I have overwritten or deleted a file. I need a copy that was saved yesterday or last week or last month.
- I have just had a disk drive crash, a motherboard fail, a controller card fail, etc. etc.
- I have just lost access to my servers physically and electronically either through fire, flood, theft, earthquake, etc.
For each case there is a consequence and a probability of occurring. In the first case the consequence is annoying and perhaps costly. It is rarely if ever catastrophic, although it can be in the case of a legal brief that must be filed by a certain time. It is, on the other hand, very likely that this will occur multiple times. The second case will very likely happen to you at some point in your business life, perhaps multiple times. The consequence is loss of the services supported by that hardware for some period of time and perhaps loss of a lot of important data. The third case, which is the one talked about the most in the tape backup days, is the absolute least likely to occur but the most catastrophic because you will have lost access to all your servers and services. When figuring out a restore plan you should think about Recovery Time Objective and Recovery Point Objective for each of your systems.
Recover Time Objective is the amount of time you are willing to wait in the event of a failure of a particular category on a particular system
Recovery Point Objective is the point in time to which you need to recover in the event of a failure of a particular category on a particular system.
The following examples are not suggested times these are examples of how the results of your analysis would be documented, your RPO and RTO could be wildly different.
- Email System, Category 2: RPO - loss of no more than 1 hour of email. RTO - 3 hours
- Electronic Medical Records System, Category 3: RPO - Loss of no more than 1 minute, RTO - 1 hour
- Word Processing Files, Category 2: RPO - Loss of a day is acceptable. RTO - 24 hours
You may not need to get your email system back that quickly and you may easily be able to sustain the loss of a days email. There are clients, on the other hand, who will set the objective at zero lost emails and recovery times of less than 30 seconds. As you might expect the tighter the recovery point objective and the shorter the recovery time objective the more the solution is going to cost to secure and maintain.
Is there a suggested solution that is cost effective and gives good RTO and RPO? Glad you asked. See the article, Image Based Disk to Disk Backup, the New Standard (available by end of January 09)
Posted in Computers, Disaster Recovery | Please Comment »
January 22nd, 2009
You have an idea for a computer program, what do you do if your not a programmer? The marketing literature says it’s really easy but of course it’s not really your thing. But if it’s that easy you know a guy who’s kid is a guru, he seems to know everything about computers and loves programming. Then there is also the guy down the block who is a professional and says his company has done lot’s of good programs. It is very compelling to hire a person who “knows how to program” and they listen to your idea and get started writing code. Your question is how long will it take and the answer might be something like, well about 6 weeks or 3 months or some number. A few weeks into the process you start seeing screens and other things that look like a computer program, you might be able to enter data, stuff like that. A few weeks/months later it’s reported that more of the program is done. As the time and money you expected to spend approaches you hear they are 90% done. As the time and money you expected to spend is exceeded you start to hear things like, well there is this one part that we had to do differently but we are almost there. You ask what that means and they show you. But the way they “solved” the problem doesn’t really solve your problem even though technically it does some of what you asked, sort of. You tell them that won’t work and you are told, well the way you want it will take another month we think. After a big sigh you say ok and a month later you get told that it’s harder than they thought but they almost have it done. In the mean time you have found several other things wrong with the program you ask them to fix. A month later you ask about it and they say, oh well those other things got in the way but we fixed those and we are back on the big problem. You wonder why they didn’t tell you that was going to happen, your still writing checks and can’t use the program. And on it goes…….
While the exact scenario has lots of different ways of playing out, the point is that creating an important computer program is a non-trivial exercise. It is an exercise that has much more to do with communication, problem solving, risk managment and goal seeking than it does with learning how to write code. While many applications have gotten done like the one above they are at best more costly than they needed to be and have fewer functions than you wanted. Likely they will have a shorter life and when needing enhancements will be much more prone to needing complete rewriting.
In the next article I will outline the basics of a real custom application project. Just doing it in the proper steps, while helpful, is not a guarantee of success but if you get a developer who would never think of doing it any other way you at least have a chance of having one that knows the value of proper project management.
Tags: 90%, Application Development, Frustration, Programming, project management
Posted in Application Development, Communication, Computers, Software | Please Comment »
January 15th, 2009
To my employees after I made a presentation on a tough economy.
“I made a point last night that this year was going to be tough. Clearly anyone listening to the news of any sort can not come to any other conclusion. Google, Apple, Honeywell, the banks, the auto industry, etc., etc. are all laying off large numbers of people. Locally one of our clients is 1/2 the size it was, another is down, a third is at least somewhat challenged as evidenced by forced vacation. It would be silly and self defeating to put our head in the sand and not recognize that this is happening.
That said some of the best times I have had personally and in business have been in tough times. Tough times bring out the best in good people and we are a bunch of good people. We are going into this year with 2.5 months of working capital including our line of credit. Marketing is getting our name out there and Mike is beginning to knock ‘em down. Although SAC Ear, Nose and Throat did not take services immediately Mike has established a relationship into the account. I am confident that as Mike keeps working that relationship we have a good chance of getting some labor dollars. Sacramento Coca Cola is looking for more and more work. Even our client who is half the size is still asking for our help regularly. The application we just finished is likely to serve a business 1/2 the size of their largest year but they need us more than ever for the efficiency and solid information we can give them with a proper program. One of our financial management clients get’s much of their income from a percentage of managed investment accounts, we know that investment accounts are down so their income must be down but they increased their plan level with us to Platinum.
Customer service is going to be key to our success. It always is but it’s even more important during bad times. Customer Service means many things, it means professionalism, looking and acting sharp. It means performing for clients quickly, happily and with enthusiasm. It means always keeping an eye on the value AS THE CLIENT sees it, of every dollar they pay. If you don’t know the value they see then ask, clients are happy to tell you. They are much more happy than if they are surprised. This value needs to be reinforced at the start by making sure they understand how much something will cost, executing on the expectations you have set and bringing up immediately when you can’t meet those expectations due to discoveries you make on the way. There is nothing wrong with not knowing everything about everything or all about what you might discover in a diagnosis, just don’t try hiding it, that rarely works. When you are done with a job the followup enforces the value as well. What you were asked to do and what you did in an email, work order and/or on the time record must be written to show the value of what you’ve done.
Work with each other, when someone get’s a great review ask them what they did and make it your own. The next time you’ll be the one who get’s the great recommendation and they will be coming to you.
We have a great opportunity in 2009. Being a tough economy is part of that great opportunity. The more we “up our game” the more success we will have.
I look forward eagerly to how each of you will use your creativity and excellence to “up your game” and how that will work together to up all our games.”
Bill Pennock
Tags: economy customer service tough times
Posted in People | Please Comment »
November 15th, 2008
Seriously there is still a place for tape backup but it’s not in most small to medium business networks. Here are the problems:
1. It is not random access so it’s difficult to retrieve single files or folders.
2. It is subject to degradation easily based on heat and moisture.
3. The tapes are expensive and wear out.
4. You must find the same tape drive to read tapes in the event of system loss (theft/fire).
5. You must restore data separately from the operating system making restoring a complete system time consuming and error prone.
6. When your technician finds out there is a failure that requires restoring from tape, ask them if there is fear in the pit of their stomach. Truthful caring one’s will tell you they are nervous.
Tape was the only way we had of reasonably backing up systems till just a year or two ago. But there are now very inexpensive disk storage devices on the market and great software to take advantage of disk as a backup medium. These two things make tapes a VERY bad choice for new backup in nearly all cases. Next installment on the blog….What about off-site backup?.
Tags: Backup Restore DR Disaster Recovery
Posted in Computers, Disaster Recovery, Managed Services | Please Comment »
November 15th, 2008
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, if the program is written correctly then many of 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 and makes you do it. 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.
I have had the pleasure of looking deeply inside of 100’s of companies in my career. 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, consistancy 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.
Tags: Application Development, custom software
Posted in Application Development, Computers | Please Comment »