Change Your Web Development Company Or Be Ready For Less Traffic to Your Site

When we are designing a new website for our company, we are always thinking broadly and apply all what is new and what is good. But as soon as the time passes by, few of us start thinking that we have done enough on our site so why shall we change. That is true for your web development company as well. But actually that should not be the case in today’s changing world. Your website should change something in look and feel as well as content couple of times in a quarter.

Suggesting a change in site and suggesting new technology upgrades to the site is a job of the web development company you have hired. Because you must be busy at business while their business is your website development and upgrades. So they must suggest something that could give you an edge over the completion. Find out here what you should expect from web Development Company of yours.

Have you implemented Div based Design?

It’s proved that div based sites load faster and search engines crawl them easily compared to tables. If your site still runs tables, you might be missing few of your possible leads as it has less Search engine exposure. Ask your website developers, when will they do it for you?

Have you implemented AJAX on your site?

AJAX refers to Asynchronous JavaScript, a dynamic effect that can give a great look and feel to your site, that is also called web 2.0 standards. Such standard describes how you can keep your customer focused on landing pages; see lot of things on one page with loading effect and not taking user on different pages for various actions. Find out if your web company knows this?

Can you add your content and images on your own?

If you have a defined content management system for your site, you certainly have a good web developer with you. If your site doesn’t allow on the fly changes, you have not hired a good web designing company for you. Change them now.

Do you have Product reviews, Blogs, Forums on your site?

Normally Product reviews, blogs, forums kind of features increase user participation.  All modern sites love to have such features on website. But you might not be aware of such trends, while web companies are. So they should suggest that it’s time to change, let’s move on.

Do You Have Your Custom Web Development Risks Under Control?

Managing custom web development is managing a software project. More and more, average people in average businesses are managing software projects in the form of customized blogs, websites, and e-commerce shopping carts. Even more so, if they are trying to deploy a custom intranet application, for internal use by their company’s employees, or an extranet application, for use by their customers and corporate partners, they may find themselves faced with developing a fully custom software system.

For example, one project I recently worked on is a custom extranet application that a certain company’s clients use to submit jobs to the company. As each job request goes through the system, a number of people in the company need to add information and sign off on it. This automated system was thick with business rules for this particular company and as a result was almost completely custom, because no off-the-shelf software got even close to doing the job the way they needed it done. It was expensive for them to develop, but it allowed them to automate a process that previously had been manually intensive. (Before this, they would email Excel spreadsheets around. Now, the computer handles all the grunt work, and frequently, all a human has to do is click “Approve.”)

This is an extreme example, but more moderate examples also exist. For example, a Gilmore Girls fansite I put together years ago had custom database features in order to store memorable quotations from the show with fan commentary, linked to episode and topical guides. That’s something that has not to my knowledge been done before or since. It required custom programming and configuration to process user submissions, store the data, and display the data in the right format.

Unfortunately, if you’re facing this type of project, many of the consultants and service providers you talk to will not be aware of the software development issues involved and how to manage the software-development risk. They may try to shoehorn your problem into something off-the-shelf software can accomplish. Or they may just “hack together” custom programming, without managing the complexity of the underlying software design. Or they may want an up-front specification of everything your project needs to do and may want to spend months working out these details, under the guise of good planning. But how can you plan a project you have zero experience with? You can’t. And neither can they.

Now, this is not a problem if all you need is a stock installation of off-the-shelf software. For example, if all you need is a WordPress blog with off-the-shelf plugins and an off-the-shelf theme, the traditional approach is the right one. Figure out what you need, install it, make sure it works, and release it to the world. Even if all you need is a custom theme for a stock website, the traditional graphic design approach–3 mock-ups, choose one, then implement it in code–may be the best approach. Even if you have a semi-custom installation of a more complex web application, like a content management system or an e-commerce shopping cart, the traditional approach may be acceptable.

But the more customization your project requires, the more software engineering concerns will impact it, and the more ignoring these concerns will put your project at risk. This is especially important in a financial squeeze, where you need to maximize what you get for your software-development dollar and minimize the risk that the project will go off track or bust.

If you find yourself faced with this prospect, here are 13 “lucky” software development tips to planning and executing your next web development project, briefly:

  1. Resolve to take tiny steps. Don’t develop and deploy the system in one big leap. Rather, do it in small chunks so that you can monitor its progress and adjust its direction each step of the way.
  2. Find an expert you can trust, then trust him. Don’t just look for someone to bang out code for you, but for someone to advise you on technology and on the software development process.
  3. Don’t commit to which features you want until you need to develop them. Wait until the last responsible moment before committing. That gives you more time to gain the experience at each step to choose the most important features to add next.
  4. Make sure the contract allows for changes, and make changes before committing, but not after. Work with a development team who will allow you to make changes to the plan, up to the point at which they begin actually implementing your requests.
  5. Provide software requirements in the form of objective test procedures. Go step by step through a typical usage scenario so that the developers can understand what you envision, and so that your in-house testers can know that they implemented what you asked for.
  6. Set objective acceptance criteria for each feature. Be as flexible as you can without giving up your core requirements. Think through ahead of time what you really need and what you can get away with. Then talk to the developers about what they can do to give you the former.
  7. Ask the developers how long each feature will take to implement, and whatever they tell you, trust but verify. Many developers are over-optimistic in their estimates. So depend on their expertise in estimating time-to-completion, but verify it with your own measurements.
  8. Make an “expert user” available to advise the developers. Good developers will ask you questions about the system that you probably never thought of. Assign an “expert user” to answer these questions, someone in your company who can represent the users of the system to the developers.
  9. Get regular status updates. Have someone in-house look at each release. Meet with the development team leader every week to address issues. Stay in constant communication.
  10. Expect the possible, but not the impossible. If your developer says such-and-such a task will take a month, don’t argue him down to a week. Rather, talk about what parts of it you can leave out to reduce the time it will take.
  11. Be prepared to choose which features are more important, and which are not. If the developer asks you to choose which of two features is more important, don’t insist that both are critical and must be done next week. Make the hard choices. Pick one to do this week, and leave the other until next.
  12. Expect to fail in the short term, even if you’re optimistic in the long term. Microsoft didn’t get Windows right until version 3. You also may need to wait until the third monthly release before you see anything usable in your application.
  13. Don’t be afraid to pull the plug. At some point, you’ll find that all the most important features are already working and that the ones that are left aren’t actually worth what you’re paying for them. At that point, stop buying new features, and move onto the next project.

Not every development shop will be able to work within these bounds. These tips do come from many years of experience, failed projects, and successful ones. But there’s also a certain amount of faith involved, because despite the years of experience, we still have scanty scientific data to prove which software-development practices are most effective. That’s why some developers may not be used to working with the kind of process I’ve outlined here and may even refuse to. So you may need to shop around a little to find a developer who can. But at least now you know what questions to ask.

Choosing a Web Development Framework

I recently had the opportunity to develop a small online booking system. This time round I was determined to make use of some development framework. Not for me the slow slog of writing all my code from scratch – surely we have moved beyond that now in web development?

The big question was – which framework to use? Since the advent of Ruby on Rails, development frameworks have become quite the flavour d’jour and there are now, well, maybe not thousands of them, but quite a few! The last time I heard there are about 80 development frameworks out there. I am not 100% user of this number, it could be a bit higher, it could be a bit more conservative (on the phpwact site you can find about 40 PHP frameworks listed). The point is, the web developer is now really spoilt for choice. Which is a problem in itself, since having too much choice can leave you dithering between different options.

This article is therefore about how I made my choice, which was CakePHP, and which factors I took into consideration.

Obviously, and certainly, I will get bombarded with “Why don’t you try X framework, it is really much simpler to use…” type responses. That is quite OK, to each his own! But this is the choice I made and I am sticking to it. Frankly, the idea of going through another learning curve gives me the heeby-jeeby’s….

I found that the selection criteria were not independent. In other words, once I have ruled out some frameworks due to some specific criteria, other factors came into play. It was therefore more a process of elimination than judging all the frameworks off a predefined set of criteria.

The first major selection point was: Ruby on Rails or not.

Obviously there is the attraction of using a brand new, hip, buzz-word hyped framework. You can’t go wrong with something that is getting so much attention… or can you?

Let’s look at some of the selection criteria that filtered out Ruby on Rails

1. Ease of installation and ability to run on shared hosting The problem is that most of my clients make use of a shared hosting environment. Can Ruby on Rails run on common-or garden variety type shared hosting? The answer was, I soon discovered – no. One needs to either have access your own private servers or run on a shared hosting environment that has Ruby on Rails preinstalled. Admittedly, there are a couple of them now starting up.

2. Minimize the learning curve Even though I knew that any new framework will involve a steep learning curve, I really did not have the guts to go through TWO learning curves – one for the language itself and one for the framework. I might still have been prepared to go through the learning curve though if it wasn’t for the fact that RoR requires special hosting.

So basically the decision was: Not RoR. And based on criterion 2, I decided to stick to a PHP framework, and not go for something else based on Perl or something else since I’ve been developing in PHP for the past two, almost three years. Having said this, it is all very well to say that CakePHP allows you to use your PHP skills – because it is an object oriented framework/MVC based framework it has its own rich language infrastructure. You still need to learn the CakePHP terminology and the learning curve is pretty steep!

3. Ability to run on PHP 4 Although PHP 5 offers more object oriented features, once again, not all shared hosts offer PHP 5 out of the box. I decided that I wanted to stick to a framework that will offer backwards compatibility and enable me to run on most of the servers that I, as well as my clients, host on.

My further criteria came down to:
4. Must have good documentation Under good documentation I count the following:

– User manual

– Examples and code snippets

– Screen casts and videos – although I do not see these as essential

5. Good support by the user community This, in combination with formal documentation is absolutely essential. All of these frameworks are pretty young and the documentation is also constantly evolving. Some documentation might be patchy in details. This is where the user support in terms of the community comes in. How active are the forums? Is there a bug tracker? Any other informal tutorials, write-ups, comments, blogs and other support?

6. Regular upgrades and bug fixes..but not so close to each other that the software becomes unstable and unusable. Backward compatibility is also important.

Version number of the software can be used to indicate maturity.

The following frameworks are quite popular (2007):

  • CakePHP
  • Seagull Framework
  • WACT – since ‘disqualified’ since the latest version now requires PHP 5
  • Zoop
  • CodeIgniter

The next step was a bit less scientific – but still fitted in with point 5 – how well is this Framework regarded? How much support does it generate in the ‘community’.

I scouted through forums and followed links and surfed the net and tried to get a general feel – and overall, CakePHP did seem to come out tops. A similar check that one can do is the following – do a Google search for each of the frameworks and see how many results are returned. This will give you a good idea of the general support, number of tutorials, number of forum posts and general ‘talked about’ factor for the specific framework. The results for this exercise can be seen here: http://www.tm4y.co.za/cakephp/ruby-on-rails-popularity-for-web-development.html

In summary therefore, the support for Ruby on Rails and the amount of information available for it is astounding and you will probably not go wrong if you decide to go this route. But if you want to stick with a PHP framework – CakePHP seems to be the route to go!