During a recent meeting with a prospective client I made an off hand remark that the project we were discussing is around 6/10 in terms of complexity ( 1 being simple and 10 very complex). The gentleman immediately asked how I came to that figure but it was difficult for me to explain it. I guess it was part intuition, part experience and part based on the brief of the project. But I also realized that complexity especially in a web design project can be very subjective.
I am not one of those people who can spontaneously make excel sheets that can give a marking to every factor and then come up with a complexity score. I am more partly a right brain-left brain combo type, i.e. I use part intuition and part facts to make evaluations.
But it did get me thinking about evaluating complexity and the various factors that affect a complex website. It also goes hand in hand with costing and budgeting of the website.
The size of the website can definitely impact the complexity of the website although the internal workings might be simple.
Size can be dictated by factors such as
As you can see its more left brained number crunching but sometimes even size is not a good indicator.
As I have mentioned above, complexity can be subjective. What might be very complex and daunting for a junior team might be much simpler and less complex for an experienced senior team. We usually combine juniors with seniors on projects (a kind of jedi apprentiship) to balance things out a bit. My above mentioned evaluation might be due to my vast experience in programming sites and could easily be a 8-9 for a less experienced programmer.
An algorithm is a series of programming instructions to process some input or display some output from the website. My team once worked on a project that was very simple concept but the complexity was skewed by the points structure (rewards for shopping) envisioned by the client. The convoluted logic resulted in convoluted algorithms which had tons of exceptions (a type of choice which changes the flow of the program).
Anyone who has been explained the reward structure of an MLM will immediately grasp this kind of complexity. I always advise my clients to keep it simple for this very reason.
Sometimes a web design project can simply become complex by the number of sources from which data has to be collated or streamed. Websites with data pouring from hundreds of forms is an example. An ERP system would be a good example of this type of complexity. Different consoles in different functions of the business need to piped to the correct database, processed and then piped back out as MIS (Management Information Systems). This also ties with the first point about the database size.
Like 'the blind leading the blind', a web development team with no idea about specific deliverables or with poor documentation can go around in circles. For the team members without clear deliverables and a road map the project is complex because of the unknown. Decisions have to be made (and are many times avoided) at every turn. Some decisions lead to ridiculous complexities in the structure of the website which creates a negative spiral that demoralizes the team. Simply put, a poorly planned project is by default a complex project.
My own evaluation of some common types of web projects and thier complexity levels
In conclusion it can be a variety of factors that dictate the complexity of the web development project, mixed with the experience of the team, it can dictate the success or failure of your project.
Cheers,
Ron