In theory it could be.
I haven’t read your spec, I don’t know Marc, I don’t know how many developers you have or how dedicated they are – so “no comment” on the “then about 9 months” estimate, except to say I see no justification for it, it’s only a WAG.
IMO the technical part is relatively easy and the hardest part might be …
- marketing – overcoming the “network effect” (including PageRank and mind-share)
- money issues – e.g. if you want it fast
https://en.wikipedia.org/wiki/Project_management_triangle then you’d prefer people work on it full-time
- possibly leadership
… and so I don’t recommend trying to fork SO or SE at all – though perhaps you have a new niche in mind for which this project or your product might be used/useful.
But aside from that and to get back to the topic of an estimate – I wrote a good bit of the StackOverflow UI just as a programming exercise, last summer, to teach myself React.JS – that’s at GitHub - cwellsx/view: Forum software written using ReactJS and TypeScript. with a link there to a running demo you can look at.
- That took me 6 weeks of coding in fact
- That included whatever time it took me to learn React.JS and to experiment with design
- That includes the core/minimum UI pages – without fancy features like User Preferences and Voting etc. – but perhaps enough, depending on what you mean by “MVP”
- That includes the design of its REST-like interface to its back end, and of the data model (which is included in the implementation of the demo)
If you had more than one programmer I suppose they could work in parallel, without having to interfere with each other too much – e.g. one programmer for each of the following components:
- Code the UI
- Code the database
- Code the web server, and other network infrastructure like auth and email, and the hosting
- Technical writer (perhaps one can more-or-less clone/reimplement the UI design but must rewrite any text which is all copyright, including any Help text, FAQs, marketing)
- That’s approximately a minimal or right-sized dev team (if they’re full-time)
- You might combine the database and web server into one “back-end” developer – but such tasks might be subdivided, planned, and completed in parallel, and if you have willing staff then possibly don’t under-staff it
- You could even combine it all under a single developer – but then the work is done in serial not in parallel – which, would double and quadruple (or more) the calendar-time
Given that an MVP of the UI can apparently be done in “6 to 8 weeks” I assume the other bits might take a similar order of magnitude – which if done in parallel implies that it could all be done in “a couple months, not a year or more” as you wanted.
I guess that any SO employees who read this will see that this grossly underestimates how much effort, cost, and hardware it takes to operate their current site, given how much data and how much traffic it has. But I assume that this site won’t have that many users, so needn’t solve that kind of problem immediately.
If you wanted to have more developers then I think you could, without interfering with the existing development roles listed above; for example some additional (perhaps part-time) developers might manage additional orthogonal features such as:
- Data import/export
- Operations (whatever that involves)
- Community/Product/Project Management (where “management” might include the community’s cooperating and not interfering with developer sprints)
- UI design (perhaps, or perhaps not, only altering the CSS rather than the data on each page)
- Adding features – e.g. associated with various user preferences, moderation tools, anti-spam, etc., etc., etc.
- Automated testing and I don’t know what else
People have different ideas of what “minimum” means in “MVP”.
If this famous quote were applicable …
If you are not embarrassed by the first version of your product, you’ve launched too late.
… then I imagine that simply adding some kind of back-end to my existing “react-forum” could be done within a few weeks (if I were doing it full-time). It’s not like a developer must write a web server, database engine, 3rd-party authentication, etc. – it’s kind of only a matter of choosing the components and configuring them, isn’t it.