@JohnnyA
Yay, questions! Hopefully this can clarify whatever the process is. I’m not to sure myself beyond “get it done”.
Q: Can anyone take any task or is there some direction or priority.
A: Yes and no. Anyone can take any task, as long as people are all on different tasks. Because of the modular design enforced by the process, sample data based on use cases can be used to test functions before other components are finished.
Q: How do you decide what you design?
A: If the problem in need of solving can be described at all, then it can be laid out with this system as a series of components.
Q: Specifications, requirements, etc
A: If a client is coming to me with half an idea, I ask what it is they’re trying to do and show them a layout of their current idea. I make suggestions by adding other components to the diagram, both suggesting functionality for their project and partly instructing them on the meaning of the, as Mr. @GarBenjamin put it, common sense diagram.
Q: How do you test [a component]?
A: Sample input compared to expected output. Before the method is even described or developed, sometimes all a client can do is give me a handful of inputs and the expected outputs after the function has been run. The inputs and outputs will be fed into the component to make sure it is working correctly.
Q: How do you handle defects in the testing process?
A: The modular component design & unit testing lets us know immediately where the problem is. If the group is hand picked by me, then everyone is familiar with developing highly cohesive system. In that case, it is even easier to find where the bug is happening.
Q: How do you measure progress and performance?
A: Performance among the developers? The amount they can implement I suppose. Progress in the project? Whatever’s done. I’ll let the client know what’s being worked on and how important that is for significant feature x or y, and show them some working functions with sample data that suits their project.
Q: How do you know you are staying on track?
A: If every work session involves progress 
Q: What if something is blocked because a dependency is still being worked on?
A: In modular component development, that is not an issue, ever.
Q: How does a customer accept your product?
A: They have access to the source code & a working setup of it. If they’re paying me to build the product, I’ll build and document the product so someone else can integrate it. If they’re paying me to build their working system, I’ll take the working project and get it running on their systems.
Q: What if the customer doesn’t accept the project?
A: The contract would ensure everyone involved gets paid, and then everyone has a nice day. I’m willing to make changes to the project, but if they arbitrarily decide they no longer wish to pursue the venture, they can pay us for the work done so far and cancel the contract.
Q: How do you deal with designs that change?
*A: I sever the connection in the diagram of the component being changed (which shows what components are no longer connected to the project), to show the client what’s going to be lost when the change is made. I then draw in the new component to show what functionalities are restored / changed or completely lost by the change. At this point, the client is well informed in how the diagram works, and will have an understanding and be able to make an informed decision when modifying the program.
Those are more reactions than set rules haha. Most of the important questions are answered implicitly by the process.
–edit
*A benefit to this layout is having non-programmers (like perhaps… the clients) make changes to the program and having full knowledge in what will become broken or lost when the change is made.
I have a feeling the NVidia optimus setup was made in such a way. One day, a non-programmer connected the discreet card to the integrated card instead of the display in the hardware document, and the room was awed by the unintended brilliance 