Gallery Words Contact


Keenworks specializes in advanced website programming. To the layperson, this is everything that happens after you press the submit button. To project managers, this means well-organized, flexible, and easily maintainable code that will reduce your future costs.

A lot of developers can write code. But it is all too easy to become burdened by code that is difficult to read, expand, or maintain. It is well worth it to focus on developing code correctly, and this can be accomplished by focusing on the following principles:

  • Architecture: A written program is not a sequential list of steps. It is more like a living construct of logic - building blocks of functionality that are used for different purposes at different times. Advanced functionality needs to be built like how a building is constructed: by creating self-contained units of functionality that can be easily connected later in the process. Computers think in sequential, methodical steps, but developers don't. The cost of bad architecture is that if something in the foundation needs to change, the entire construct can come tumbling down. The benefit of good architecture is that you can easily unplug old functionality and replace it with new, without risking the integrity of the project.

  • Flexibility: If you're in software, you know that project requirements can change quickly. There's no such thing as a solid spec, and with some clients, feature creep can be the rule. With the wrong software approach, this can create a lot of pain. Flexible development techniques reduce this pain to a minimum. Using methodologies such as "MVC", most of the advanced development requirements are offloaded to a conceptual layer that rarely needs to be changed in the late stages of a project. Think of it as nouns and verbs - nouns being the data, and verbs being what the site wants to do with it. By making the verb layer as small and economical as possible, last-minute changes in functionality can be accomplished quickly, easily, and with a minimum of added cost.

  • Maintainability: Larger projects have a team of developers responsible for them. Most likely, they have some overlapping skills, but different specializations. By participating in the correct techniques of separation, different areas of the site can easily be adjusted by different team members. Separating logic from presentation can make it easy for your designers to change user interface elements without risking the functionality of the site. Separating data elements from control logic can allow you to easily support new data requirements without having to tear apart the entire project. Putting it all together leads to clear, concise code with reduced documentation needs.

  • Portability: By focusing on flexible technology platforms, "technological handcuffs" can be avoided and system upgrades can usually be accomplished without threatening the functionality of your applications. By using commonly available technologies such as Linux, Apache, MySQL, Oracle, PHP, Perl, and Java, developed applications will automatically inherit the kind of flexibility that will keep you free of expensive support calls and vendor lock-in.

Keenworks can write software responsibly. If you have web software development needs, please consider dropping a note.