I think there are still lots of people who’s misjudged on how easy to develop a piece of software including developing a website.
Let’s focus on website, how easy to build them? On a few occasions, I’ve been asked to develop websites for whatever reasons and most of the time on voluntary basis. I had to turn down most of them. It’s a very hard thing to decline people’s request especially from friends, but I had to decline the request. If I have some time, resources and not doing anything else, I will try to help them. But, most of the time, I don’t have the luxury to do so.
In my early uni days, I only managed to develope a website for our club. Towards the end of my studies, I had to refuse some of my friends’ request to help them build some more websites. I am sorry if you read this. At that time, spending lots of time making websites etc is probably not the best thing to do considering my grades.
Even now working as a software developer, I am not as free as the first year in Uni. I’ve got to work. I want to spend my remaining time with my family especially with this little wee guy, who’s fast asleep with his mum. There are time (like now), my workload is quite heavy. I just stopped doing office-related work to type this blog entry (and it’s 2am). So… it’s not as free… I had to say no to the people who ask my help.
tl;dr – Developing a website is quite similar to developing a house. More complex the requirements, more complex the development process.
My analogy to building a “simple” website is similar to asking someone to build a “simple” self-assembly house. You already have all the pieces for the constructions. Anyone with basic construction skills will just do. After all, they just need to assemble all pieces. But, even that, it will take some times to come out a complete house.
Same thing with building a simple website. Based on the given requirements, you already know that you probably need a few pages with some links that need to be “glued” together. Anyone with basic software skills can do this with some helps with the readily available software tools. But, even so, doing this will definitely take some time to finish.
Similarly to a finished self-assembly house, I wouldn’t put even a “simple” website into the WWW untested. Some things may break and cause trouble to whoever visit the website. I’ve got to do some regression tests to the website first, check whether those “simple” links are working or not. If it’s not, what’s the point of making a website in the first place? During the regression testing phase, I will probably spend some more time to fix the problems.
So, I would say building a minimal, properly tested website, would optimistically take a week to complete if you this on casual basis, if not more.
Most of the time, people don’t actually know what they want although they have some rough idea. Let’s take an analogy to a house. It’s like having an idea to live in big and modern house, but you didn’t know exactly what. Do you want to make a small lowrise house? Do you want to make a terrace house? Do you want to make a bungalow house? Do you want to make high-rise flats or condos? Or do you want to make a mansion? So, you seek an architect before telling the house builder on your house design. Just because the idea is simple, that doesn’t mean that the actual work will be simple.
Same thing with software. Many people have ideas to create a social media or website where people can post news so that others can see. But, very few can even nourish the idea to captivate attentions from others. Zuckerberg may be one of these few people. In this case, he’s the architect of his software. He’s also the developer and builder for his own software (initially). Some says that the original idea of making Facebook is not his, which is the exact point I want to stress here.
By the way, just to get my readers some rough idea on how much effort does it take to build a complex website… First of all, at this scale, a better technical term is web application. Simply because it wont be multiple pages that are links together to form a website. Web application sort of means, your normal desktop applications like MS Word or Reminder app, and put it to the web. Sometimes, web application can be more complex than your average desktop application because web application logics are computed/stored somewhere else in the server. But, you will have probably hundreds or thousands of concurrent users accessing that.
All these complex logics are abstracted away from the users. Simply said, you won’t know about this if you didn’t do this line of job. So, it’s like typical house buyers. Sometimes, people may perceive it as a simple thing to be done.
One of the best example that I can give for a complex web app is what my team is doing atm: cloud-based Electronic Document and Record Management System (if you’re working for government, you will probably use this later). It’s not just me. It’s a team who build this. There’s also someone in our team who’re very experience in both record management and this technical field and architect almost everything in the application. The rest of us have experiences ranging from 1 year to 10 years on this technical field. And, we do need more talented people in the team. Well, if possible, I do want some people working under me. So… the main point is… it’s not so easy to create something simple or simplistic.
Of course, this also applies to other softwares, not just making websites. You may see and think that this tiny little app on your mobile phone looks easy to make. Not necessarily true.