"Nicholas Lehuen on Project Scope and Design"

"My point would be the same with any other language, and

it's not rocket science : keep projects within precise functional

boundaries, and use carefully designed API whenever you have to cross those

boundaries. Don't think about building a project that spans those

boundaries, let people who know how to handle the stuff from abroad handle

it. If you're interested into changing your scope, then start a new project."Link