Not really the answer to your question, but In many real world scenarios, applications are written in a Higher language using the idioms common to that language, and only use a bit of assembly language where performance or hardware needs require. This is probably the only sensible approach for real projects, because assembly language just isn't as productive as other languages, in terms of getting the computer to do more for each hour spent programming it.
That being said, All of the tools and techniques for managing a project in any other language apply equally to assembly language. Source Control, TDD, Project specifications, meaningful names for identifiers, Separation of concerns, object oriented design patterns (you can have object oriented design without an object oriented language) all apply equally to assembly language as it does to C# or PHP