OSdata tech blog
Engineering and Business
Engineering and Business
Engineering and business are fundamentally different. This web page is intended to help business persons successfully make use of engineers.
I will describe the fundamental difference, outline the basic web services, and discuss how to get engineers to deliver what your business needs.
The fundamental difference is that business is a social activity and engineering is a mathematical activity. The computer is a pure mathematical machine.
In engineering (as well as science and mathematics), two plus two (2+2) always equals four (4), for all times and places, regardless of culture. The answer is the same for Stephen Hawking in modern Great Britain and Euclid in Egypt some two thousaand years ago.
In business (as well as law and government), two plus two might be equal to five-and-a-quarter, trending up. But if it reaches six, consider that a bubble and sell before it falls. If someone is rich or powerful enough, they can demand that two plus two be whatever they need it to be and nobody dare risk their wrath for failure to obey.
Engineering is absolute and business is relative.
A business person needs to be aware that engineers think in a completely different manner and that their machines do not answer to money or power. Computers answer only to the laws of mathematics.
The reason that business persons often see disconcerting, strange characters among the geeks is because they are highly skilled at mathematics and mathematics doesnt take into account fashion or custom.
It is common for business persons to see them all websites as the same because they all appear in the same tool (a web browser).
It took literally around 10,000 man-years to build Facebook to its current operating condition. Your local web developer is not going to create a website that operates like facebook, not even if you are willing to pay several hundred dollars.
There are four basic kinds of web sites (note, the borders between these groups are very fuzzy).
At the low end, there are standard websites, and at the high end, there are custom websites.
In the standard websites, the lowest end are static websites. These consist of a small number of web pages that rarely change. Any local developer should be able to crank out a static website in days, a presence only website in hours.
If your website has to be able to change on a regular basis (a dynamic website), you need a Content Management System (CMS). This will allow someone on your staff to regularly update the website (daily price changes, changes in available stock, etc.).
Note that both of the custom kinds of websites are also dynamic.
The low end of custom websites is a Create, Read, Update, Destroy (CRUD) website. This is a significant effort.
The high end is a complex website. Examples include Google, Facebook, Amazon, and Instagram.
If (like most small businesses) need a simple static website, figure out the handful of things that your customers need to know at any time of the day or night from your website. Things like your contact info (address, phone number, social media accounts, etc.), hours and days of operation, how you handle emergencies, your menu, etc. Gather together your artwork (logo, photos, etc.), preferably in a high quality digital form (such as AI or PDF). If you can write out what you want to say on your website, even better. The more things you have ready when you meet with your local developer, the happier you will be with the results (and the lower the price).
If you need a standard dynamic website, gather together all of the materials just listed above, and add in a good description of the kinds of web pages that will be changing. You need to know what kinds of information you will be presenting. The more complete your list of requirements, the better your results (and the lower the price). Also, make sure that you include training for at least two members of your staff.
The three major Content Management Systems are: Wordpress, Joomla, and Drupal. At one time they had different capabilities and purposes. Now they are pretty much interchangeable. If you already are using one, it is best to stick with it. If you are entering the field for the first time, it is best to use whichever CMS your web developer is most skilled at.
CRUD refers to the basic database operations. The most commonly used database systems are: MySQL, PostGRE, and Oracle. There are other choices. In general, use which ever database system your web developer is most skilled at. In some cases you may be able to ask that your website only use operations that can run on any database system. This will allow you the option to change to a different system (at a different hosting company) without disruption.
Some of the common programming languages used are PHP, Ruby, Python, Perl, Scheme, and LISP. Again, it probably makes the most sense to use whatever programming language your local web developer is most skilled at using.
If you really need a custom website (CRUD or complex), then you should not go directly to your local web developer. Not many of your local web developers have the appropriate skills and even if they do have the appropriate skills, you probably wont be able to effectively communicate your needs.
You need to hire either a systems analyst or a software architect. The difference is that the systems analyst figures out what you need and translates it into technical specifications for some one else to build, while the software architect does both that first step and also supervises the construction of your project.
The two most common hosting server systems are Windows and Linux/UNIX. Mac OS X Server is a kind of UNIX. In general, you can use either for almost anything. Linux is the most common simply because it is the lowest cost. There are some additional geeky advantages to Linux, but the fact that Linux costs less and matches (or exceeds) the capabilities of any other system makes it a great business decision. If you want to have fun, ask which your web developer prefers and then tell them you wanted the other chocie. Watch them bluster and try to explain why they are right. In the end, use whichever system they are most skilled at.
For a custom website and for a more complex dynamic CMS website, you will need formal technical specifications. For a static website or simple dynamic website, you still need specifications, but they can be informal.
Whether formal or informal, the accuracy and precision of your specifications will determine how happy you are with the results. And will greatly effect the price you pay. The better your specs, the lower the total price and the sooner you receive the finished work.
You want to figure out what your website should do. And clearly state those needs.
Normally, you do not tell the developer how you want your website built, but you tell them what you want the website to do. There are some rare exceptions, the most common being that you need your website to use a specific tool that is already part of your business. For example, if you need a mailing list system, you tell the developer that you need to have a mailing list that can handle 300 customers and let them choose an appropriate tool. On the other hand, if you are already using a specific mailing list program, you tell them that you need to continue to use that specific program (unless changing conditions make it inappropriate).
time to completion
A static website will typically take between 10 minutes and a couple of hours to make. Your web developer will use a template of some kind. But it will take a day or two (sometimes up to a week) because the web developer needs to schedule your job into their workflow. You are paying for their knowledge of how to get these things built quickly and easily. It would take you weeks or months to learn how to do it yourself and you would need at least $5,000 worth of special hardware and software. Typical prices are around $300 per finished web page and rarely drop below $1,000 for the entire website (even if it only one page).
A CMS website typically takes between a week and a couple of months to build. The basic CMS can be installed in a matter of minutes, but then the developer needs to customize it for your specific needs. This means selecting and installing various modules that deliver specific needs. In some cases, the developer will be subcontracting to specialists for some of your unusual needs. You are paying for the developers knowledge of which modules will meet your needs. If you do your own search, you will find that the common categories of modules are filled with literally hundreds of chocies. Your local developer knows which ones are quality (there is a lot of junk out there) and can match the right module to your needs (getting the fancy one when you really need it and otherwise giving you the solid, but less expensive one when that meets your needs).
For each business goal, there should be a specific test or measurement that can be used to determine success or failure.
For example, you might say that your website has to fulfill all of the requirements of U.S. government Section 508 (handicapped accessibility). Or you might say that your website needs to be able to handle up to 50 sales transactions per hour.
Some tests are simple pass/fail. Some have numeric values.
Create a test or measurement for every one of your requirements. You can do this in cooperation with your web developer if you think you need their expertise.
Anything that doesnt have a specific test or measurement is too nebulous for success. If you cant define the test or measurement, then there is almost no chance that the developer can deliver whatever it is that you really want. You wont be happy with the results and you will end up paying a bunch of extra money trying to get what you want.
This should outline the possibilities available to you and help you successfully get the website you need at the lowest reasonable price.
If you have more general questions, please use the contact form below.