Much goes into building any type of complex software. Myself, I have built many systems with my role ranging from Lead architect more recently to junior developer back in the day when I was pretty.
Some have been consumer-facing where user-friendliness is key like Haaartland, others have been heavy number-crunching systems where the interface didn’t matter as much. These systems have something in common besides the varying aspects of complexity. They all took 2-3 rethinks to get them where they needed to be. Not all the specifications in the world thought out before starting the project will cover all the bases. If you are lucky you will cover 50% of the core flows you can think of ahead of time. The rest will shake out during development. That's why large complex systems get rewrites. It’s not due to lack of skill and effort, it's about what you learn while on the journey.
I know the people holding the money really love to see fixed numbers, the project owner needs to have a timetable. In reality, we provide this as a guesstimation at best. You know, to get the mere mortals of our back.
On more than one occasion, we have had a potential customer keen to write his own “social app”. How hard can it be? It's just a fancy blog with some comments and likes and perhaps digital keys to the office.
Well… now they are in the idea phase, before the app is usable they will have to get to a 1.0 MVP, at which point they discover they need email, push notifications, support for all the platforms, and IOS and Android apps before anyone will touch it. They need to be at 2.0 at least to get it to something people want. By now the budget and timetable are blown out of the water. It’s no fun anymore.
So I’d thought I would do a little short circuit here and give you something to think about before embarking on a new project like this.
Haaartland today consists of about 1 million lines of code. We are at 3.2 now so many lines have been discarded. The API:s have held up pretty well through the times but the web and app interfaces have been totally rewritten 3 times to get us where we are today. Lessons learned, consumer requirements all play into this. I estimate the total number of lines written to about 1.8 million at this point.
So let's do some calculations, various sources claim that a seasoned developer produces 200 lines per day. This is a lot less than I have calculated for the Haaartland team but bear with me. To write 1.8 million lines, 200 lines a day for 365 days a year gives 13 man-years! 13 developers for a year. It’s not possible to brute force it like this though. You have to do user trails, learn, and all the other stuff too to come up with a nice product. I’ll put my chin out and say that it is quite impossible to get a project like this done in less than 3 years regardless of budget and resources. Just pouring people and money on the project won’t bring the speed up. The cost will grow exponentially for very little gain.
To sum up, If you want to go into the community space, think twice before embarking on a megaproject yourself. It will set you back years and there is a possibility you won’t succeed.
You are always welcome to Haaartland, lets grow together!