I have recently moved to the dark side: I am now a CUSTOMER of software development -- mainly websites. With this new role comes new concerns.

As a programmer i know how solid an application becomes when it is properly layered, and I want to use this knowledge in my new job. I don't want business logic in my presentation layer, and certainly not presentation stuff in my data layer. Thus, I want to be able to demand from my supllier that they document the level of layering, and how neat and consistent the layering is.

The big question is: How is the level of layering documented to me as a customer, and is that a reasonable demmand for me to have, so I don't have to look in the code (I'm not supposed to do that anymore)?

  • Is successful deployment your responsibility? If so, you better have someone in your team look at the code. Nov 21 '11 at 19:22

This is reasonable - as a customer you can require anything you want, and using good layering as an indication of code quality and separation of concerns is a valid requirement.

There are many tools out there that will help with such documentation - some of them will produce an image of the Directed Acyclic Graph, showing you that the lower down layers are not calling the higher up levels. Some static analysis tools will do so too.

Getting a representation of the DAG is probably what will give you the most idea regarding how layering works in the code base.

In the .NET world, NDepend is a good commercial tool that will help with visualizing the high level architecture and layering of anapplication.


You have worked as a programmer, you probably have seen projects fail/take longer than expected and you know that you don't want that as a client.

You have every right to demand such a thing.

What I would suggest is apart from documenting the layers of the application have them run their unit/intergration tests in front of you.

How they organize their tests will tell you more about the code than just the documentation and you won't even have to see it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.