codewars / codewars.com

Issue tracker for Codewars
https://www.codewars.com
BSD 2-Clause "Simplified" License
2.09k stars 219 forks source link

Technical debt is negatively effecting the usability of the website #312

Closed paul-calvelage closed 8 years ago

paul-calvelage commented 8 years ago

NOTE: I love Codewars. Its creators have done excellent work and should be proud. Please read what is below with that in mind and with the utmost respect.


I am having an issue with the non-functional requirement that the website be usable. There are too many accumulated bugs.

This is sort of a "meta" issue, but I wanted to see if anyone wanted to discuss how technical debt is negatively effecting the usability of the website. And if there is anything productive to do to help other than reporting issues as they arise. Some parts are open source, but a big part of it is not.

From my perspective, Codewars is going down in flames.

There are 94 open bugs on GitHub and counting. It's gotten to the point that it's impossible to use the site on a daily basis without running into bugs and errors all the time. I'm discovering new bugs and rediscovering old bugs. So it's not a stretch to say that it's seriously effecting the usability of the website for me.

Declaring the site to be in "beta" doesn't really cover the current situation. It's more like "alpha". Changes are being rolled out with serious regressions, which makes it seem like there is insufficient testing before these changes are pushed to production.

There's a lot to be said about this, but excuse #3 (My customers will test the software for me) in Joel Spolsky's article Top Five (Wrong) Reasons You Don't Have Testers from April 2000 pretty much covers it. The relevant line is "The worst thing about this form of testing is the remarkably bad impression you will make of your company." Codewars is now getting a reputation for being buggy. How will it be able to live it down even if someday the bugs that are now plaguing it are fixed?

I'm not sure how the community can help with the many bugs in the closed-source part of Codewars. So there is a big opening for an open-source clone of Codewars that would focus on stability.

But some might see this as threatening the cohesiveness of the community that has been built up so far. So it is unclear to me how to address this. What would the attitude of the creators be toward a clone? Would it be considered a threat? Or is imitation the "highest form of flattery"?

What do you think?

Dan-Nolan commented 8 years ago

Sounds a little dramatic to me tbh 😄. Jake's been the only dev working on Codewars and his time's been restricted the last year or so with other projects. I've completed over 700 kata on the site and I can only really recall one time where an issue came up that actually stopped me from completing the kata, and even then, it was solved the next day.

I'd say that CodeRunner getting open-sourced is a pretty big step towards getting the energy back into Codewars. We might have to be a little patient with bugs as an influx of new languages get added, but it's not going down in flames any time soon 🔥

jhoffner commented 8 years ago

Thanks for posting @paul-calvelage. I appreciate the concerns. Over the last year I have had very little time to focus on Codewars and as @Dan-Nolan said, I am the sole developer. Interestingly enough, this post comes at a time when I am able to refocus back on CW. The mountain of bugs that need to be climbed is pretty steep, and there are a number of features that I hope to implement. I'll only be able to focus on quick wins and critical issues for the time being.

One of the next big steps is to move the site off of Heroku and over to AWS, which I am working on right now. I will be standing up a preview environment first, which will have access to live production data and will be the testing ground for new features, bug fixes and allow us to test the site on AWS before rolling it out as our live production system. Once its fully moved over, performance should be improved.

As far as open-sourcing the codebase. Its not in a place where that makes sense. We would like to, but open sourcing an entire site is hard in general, and involves a tremendous amount of hand holding, and the code base is just not in a good state for that. Strive.co is basically Codewars 2.0, where we use Angular for the front-end and only the good parts were extracted from CW for the backend. The plan is to rewrite CW at some point to bring its architecture inline with what we did for Strive.

As Dan mentioned, the site is still functional. Yes its not the pillar of quality that I would like it to be, and the perfectionist in me hates that, but I've had to make peace with the fact that I am one developer maintaining a site that really needs to have a full team working on it. Codewars has the potential to be even more than it is, and I hope to someday see that potential realized. Adding new languages will be a big boost (which the community can now contribute to), and there are a few quick win features that I hope will give the site even more of a boost. Even with all of its warts though, it still functionally provides a great (and free) service to the development community.

BTW, speaking of "non-functional requirements". Your entire site is down 😉 I guess both of our sites are having issues dodging bugs :)

paul-calvelage commented 8 years ago

Thanks for the good comments! It helps me better understand where things are at. I really appreciate you guys taking the time to respond in the detail that you have.

Dan, reading back over what I wrote here a few days ago, it does sound a little dramatic. So I'll stand corrected on that point. Apologies. (Me: open mouth, insert foot...)

I have to remind myself I only started using Codewars a couple of months ago, and I'm relatively ignorant of its past. To be perfectly honest, I had gotten the wrong impression from the About page and people's LinkedIn profiles (1 2 3 4) that there were more people actively working on Codewars. That's my bad for perceiving things in the wrong way by assuming things that aren't true.

On a personal note, for the last couple of months, I've been trying to get back up to speed with coding after a long battle with Crohn's disease. I am now in remission and off of the terrible medicine I was taking to keep it at bay. So probably I have too much free time. And I tend to be perfectionistic as well. I had gotten pretty rusty, but after 1300+ kata completed, I am feeling a lot more confident about my abilities. I owe you my thanks for that.

What I have seen with Codewars makes more sense in perspective, Jake, knowing that you are the only active developer--and that a good part of Strive was rewritten and is separate. I wish you all the best in climbing "the mountain of bugs," especially if you're doing it on your own.

Also, you are right to point out that dodgebugs.com is down; I have now taken it off my Github profile since that project is inactive at the moment.