Dave Ormsbee, one of our most longest-lived engineers at edX, wrote up a highly opinionated post about XBlock Fields, the good and the bad (XBlocks are how you can implement custom content types in Open edX courses). In it, Dave argues that we over-engineered them in an attempt to hide complexity from the end user/developer, leaving XBlock creators to deal with the unintended consequences of our early abstraction choices. This quote is a good summary:

    “…it’s probably not surprising that I see XBlock Fields as a case where we have unnecessarily complicated the design with over-abstraction. Worse than that though, I think that it’s actually tainted our mental model of courseware over the years and pushed us further away from where we need to go as a platform. But let’s start at the beginning.”

If you want to learn more about design choices and consequences, especially as it pertains to LMSs or Open edX in particular, read the full article. If you want to help us navigate the rearchitecting of the platform and associated APIs, we’d like to hear from you!

More on XBlocks here and here.