[Sony Xperia L] Hnk1:
In a nutshell [MENTION=5422247]Joel16[/MENTION]

I understand exactly what you are talking. I'll try clarifying up a bit very basically for a simple user. Almost all credits go to the one who develops the device tree which is the major hurdle (varun.chitre15). Once a complete stable device tree is available, actually anyone with little know how can use a device tree to build a ROM.

So basically once varun uploads his sources, only then people can use his sources to develop something which is mostly an easy job as almost 90% it'd be the same process to develop a certain ROM. Using device tree as main source and making some Rom specific changing etc to develop the ROM.

Its like a car manufacturer provides an engine and body but leaves the choice to others how they simply want to modify their design and interior. And they might add one two features like music player and power windows/steerings . Simply every work is done by the person who is making engine and body. And if anything is broken in engine or body, it would be very tough job for other users to fix that problem because the only knowledge they have is of modifying the car with already provided everything working!

Secondly our device has not got any blobs from Qualcomm apart from Jelly Bean. So working on blobs which is basically telling how a device should work in a certain environment (Android Version). This is also a major hurdle in developing process because for almost every new build you need revision of blobs!

Lets say for example ,Varun provided the device tree and blobs for Lollipop. Now all development for Lollipop is sort of a piece of cake comparatively. (I'm no way taking any credit out from developers who work so hard as well but that's just in comparison )

So once AOSP lollipop updates its sources, we already have device tree + blobs for Lollipop. Any changes made by AOSP is simply little modification of the previous code and this can be addeded very easily. This means , even when 5.2 codes are out, I just need to merge these changes to the same device tree and blobs as base value hadn't changed as its still Android 5. (5 is base value, secondary changes result in 5.x.x)

Now, little more details.

Now suppose I want to make changes to modification of the car and I connect the wrong wires because my design is a bit complicated. This means, my head lights aren't working now. This isn't fault of the engine or body provider but myself. So this will break something in one ROm but wouldn't in another.

Also when newer advanced power steerings has been developed 5.x.x which is simple modification, that might not work with my ROM because my design is old. So to fix it, I simply need to change my old design or make some changes so newer power steering also starts to work as well on my ROM.

Varun is trying to find out what's the reason for BSOD, is it related to CM or is it Kernel fault or is it simply device tree problem or blobs. Once he has figure it out, I'm sure he'd update it out!

Lastly a piece of advice, as a developer you are working on something and it gives you 10 errors. You take 5 hours and fix each other and diagnose it again only to fins out, newer 200 have come because of little changes made. Itsyvery frustrating to pick out very small code errors and I think in my opinion, I'll prefer writing the whole code than revise my own. However, it'd be great help if someone else could look at my code (as it's hard to find problems in your own code) but we don't have anyone apart from Varun!

I hope this is enough