Architectural Programming in it's most basic sense is making a list of the spaces required in a building, and examining in a critical way how those spaces relate to each other.

Small projects may only require a list of spaces, and square footages required. 

Larger more complex projects may require a formal programming effort, with a written document as the final result.  This may require a deep examination of the spaces required, adjacency requirements, and other specialized factors.

Congruence Architecture can lead a programming effort for your organization, and help synthesize and prioritize conflicting needs and interests. 

Time and effort spent in the programming process, helps create very efficient buildings, which respond well to the needs of users and customers, and leads to cost savings down the road.