i;m kinda late but here's my 2 cents. A lot of people , when they need to solve a complex problem (by this i mean a complex webfeature or app feature), use the dive and conquer method, NOTE, you won;t be able to use on all problems, but the main idea is useful. Break your problem in smaller chunks and then go at creating them and include them so that you solve the problem. Also its time consuming and you'll do a lot of things wrong, but thats how one learns stuff