What's our WAG on a timeframe for MVP?

We can’t really estimate work until we have a better understanding of what’s in the MVP and nail down some core architecture and design questions. I get that. I’m not asking for early commitments.

But do we have a rough sense, a wild-a**-guess if you will, of when we might be able to have an MVP up and running for early adopters or beta testers? If existing SE communities start talking about their options, what could we reasonably say to them about timeframe for Codidact?

6 Likes

I’m sad to say that my current estimate is never. But the project is still young and there is a lot of potential for things to improve.

The reason I’m pessimistic is that I’m not seeing constructive priorities. There is a core of people who are highly motivated to build something. But build what? Some people have already decided on a programming language and a database architecture, but that’s not important at this stage. What’s important at this stage is to have a sufficiently consensual goal, then to figure out what it takes to reach the first step towards this goal.

I’m pessimistic because there’s no consensual goal in sight. But maybe the goal of rebuilding Stack Exchange exactly (which I personally won’t hinder, but I have no enthusiasm for) has enough followers to achieve something usable.

I’m pessimistic because coding seems to have priority over building. There is a near-consensus to start coding even though nobody has shared any reason why we couldn’t build on what already exists.

Nonetheless, turnaround is definitely possible. The tech lead and team lead have just been chosen and some leadership can help focus efforts. Please don’t read this as “we are doomed”, that’s not what I mean at all. I mean “we need to shape up”.

8 Likes

My scientific wild-ass guess, as of current, is: up to two months for getting the requirements and specs, then about 9 months for a first (beta) release of the platform. That puts us in position to launch in about a year from now.

The goal I had in mind when joining this project (since I first made myself available for SE members that would be willing to kickstart the required efforts) was to rebuild a platform that works as well as SE (and my experience is that it works damn well), just without belonging to SE but rather to the community. In that light, I expect us to be deviating as little as possible in terms of software. We’ll do better where it can be done, but as I mentioned in What are we trying to build? - #2 by Marc.2377, I (for one) don’t expect the final product to be wildly different from current SE.

4 Likes

We’ve had a lot of discussion and MVP is starting to coalesce (while some questions are still outstanding). With that in mind, can we talk about when we might reasonably have something available? When we started I was really hoping the answer would be a couple months, not a year or more. If our primary (and initial) target is SE refugees, we need to have something sooner rather than later. In a year, our target communities will have gone somewhere else, resigned themselves to SE, or died. I fear that at least one community I care about is on track for “die”, and if not that it’ll take one of the other packages and go its own way. What can we do to make that suck less? Can we focus on an MVP, remembering both the “M” and the “V”, and get it done?

4 Likes

I’d like to say a couple of months (and if we used existing rather than built fresh, I think we could manage… but that’s another question), but knowing how unorganised shared software development goes… it’s going to take longer.

Particularly because we have major holidays coming up in the next couple of months, we’re going to be stretched for development time. Once we get into January, we might start picking up the pace a little, and then we can look towards finishing an MVP.

I’d guess we could have a bare-minimum product by… say Spring 2020. I won’t try to be more accurate than that, because I honestly don’t know. If we have someone who’s an absolute whiz at .NET Core MVC and has some time to burn, it could be quite a bit quicker, but that person is not me.

3 Likes

“Unorganized shared software development” is where we need to lean on, and agree to be leaned on by, our tech and team leads. Can we start laying out a roadmap beyond requirements, and can we all agree that once we have that roadmap, barring major issues we’ll keep moving on it?

Along the way we will surely discover many new ideas, alternate approaches, things we’d like to add in. Unless they’re really urgent, let’s defer them to after the MVP.

I know December holidays are a big deal for many, but we might have people for whom that’s a quiet time (off from school/work but don’t have pressing family stuff), so if we do have such folks, let’s try to have productive work available for them.

3 Likes

Going with .NET pushes me away from my comfort zone, so I can’t contribute there. But I’m willing to help out where I can - organization, management, etc.

I’d agree with @ArtOfCode that Spring 2020 is the earliest possible. But that honestly sounds more like an alpha release. I would be looking at summer 2020 for a project of this size, especially when there are no full-time developers.

I’ve spent the past couple hours getting acquainted with this forum, and I’m a tad overwhelmed with all the threads. I second @cellio’s recommendation of a roadmap. Is anyone working on one? Has any code be written yet?

Once we have a decent feature list/roadmap we can put that on github and people can tackle features one at a time as available. But coming onto this forum just now it’s hard to know what’s needed or practical steps on how to help.

In other words, if we want any timeline on an open-sourced, non-funded project like this, we’ll need to give people simple objectives they can view from a central location.

5 Likes

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 https://github.com/cwellsx/react-forum 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:

  1. Code the UI
  2. Code the database
  3. Code the web server, and other network infrastructure like auth and email, and the hosting
  4. 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)

IMO:

  • 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. :slight_smile:

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.

2 Likes

13 posts were split to a new topic: Considerations about the tech stack and architecture

For what it’s worth, I reconsidered the time it should take to release an MVP and my current estimate is about 5 and a half months.

As for me, personally, I’m planning on initiating some sort of crowdfunding campaign that will allow me to dedicate near full-time in this project. If that turns out to be successful, the time to release may be even shorter.

That is very much correct.

Found that quite interesting!

You bet. I posted a collection of resources on creating SE “clones” on Discord (channel: #programming-general - reproducing here:

  1. https://meta.stackexchange.com/questions/2267/are-there-any-clones-alternatives-for-running-a-stack-exchange-style-qa-site
  2. https://meta.stackexchange.com/questions/44637/open-source-php-clone-of-stackoverflow (p.s. read Tyler Carter’s answer)
  3. https://www.bitquabit.com/post/one-which-i-call-out-hacker-news/
  4. https://blog.codinghorror.com/code-its-trivial/
  5. https://blog.codinghorror.com/whos-your-arch-enemy/
  6. https://meta.stackexchange.com/questions/10369/which-tools-and-technologies-are-used-to-build-the-stack-exchange-network

Make sure to see link #4!

There’s also a collection of resources on SE architecture, stack and infrastructure:

  1. https://stackoverflow.blog/2008/12/10/server-hosting-rent-vs-buy/

  2. https://stackoverflow.blog/2009/01/12/new-stack-overflow-server-glamour-shots/

  3. https://blog.serverfault.com/2010/09/10/1097492931/

  4. https://www.dev-metal.com/architecture-stackoverflow/ (2014)

  5. http://highscalability.com/blog/2014/7/21/stackoverflow-update-560m-pageviews-a-month-25-servers-and-i.html

  6. https://nickcraver.com/blog/2016/02/17/stack-overflow-the-architecture-2016-edition/

  7. https://meta.stackexchange.com/questions/10369/which-tools-and-technologies-are-used-to-build-the-stack-exchange-network/10370#10370 (a bit outdated and not clear enough, but references at the end may be useful)

    Additional insights:

  8. https://stackoverflow.blog/tags/server/ (a couple of blog posts, most not too much relevant)

  9. https://stackoverflow.blog/2019/07/22/how-stack-overflow-upgraded-from-windows-server-2012/

  10. https://meta.stackexchange.com/questions/333095/planned-maintenance-scheduled-for-wednesday-september-11-2019-at-100-utc-9-pm (some comments relevant)

  11. https://stackexchange.com/performance

To the extent that’ll be possible, that’s the idea. I dedicated a good amount of time getting to know devs and my plan is to allocate “work” in as much of an orthogonal manner as possible. Let’s just get past this end-of-the-year time window and that should start to move much more efficiently.

More or less. As I imagine you are aware, there’s a wealth of existing SE “clone” or similar implementations, each with their own set of pros/cons. We have, since early on, decided that we will build something that is different in that it lasts. You probably won’t find much disagreement in that the current SE implementation works well. We want to do better. Obviously, I’m not saying “perfection from day zero”, but no, I don’t think we want to launch something to be embarassed about either because that might be our doom.
Now, in the meantime, it appears that one specific existing implementation is being used in an “urgent” fashion for one community (https://writing.codidact.com/). Not sure if it was publicly discussed (or even announced), but there you have it.

Oh, if you plan to contribute, let’s get to know each other, then :) Please join our Discord whenever you have a chance, and ping me. Many (probably most) past 1:1 talks have been over the #tech-lead-communication channel, and they are recorded there so you can refer to them if you like.

3 Likes