mapping the code is a time consuming process, a lot can and always will go wrong. And even once the errors are considered tolerable, that leaves you with thousands of functions that have no intelligible names; things like func_175924_b. and yes, there were indeed 175924 functions listed before reaching this one... So teams start working on deobfuscating the code.
This is the point were teams like forge take a crack at it and start sifting through the code, renaming variables to something that we mere mortals can more or less understand, since "private final boolean vinesGrow;" has a lot more meaning than "private final boolean b41259;". They even create hooks that let you tie into the program and a loader to juggle those modifications.
So, now the current issue is that these things aren't finished. There are errors in the code, names are still changing, the mod loader and the hooks are not finished. What's been done so far is fantastic, and there are even some mods out now, but those mods have to be updated each time a new version of forge comes out or they will stop working. When there is a stable release, mods made with that release should be able to run on future releases of forge for 1.8 as well.