1. A method for modeling a task-site allocation, wherein the method comprises: generating a task-site allocation network comprising multiple nodes and multiple edges based on multiple site-task pairs and at least one site-centric constraint of at least two sites, wherein each node in the network represents an allocation of a task to a site and each edge connecting two nodes in the network represents a transfer of one or more software artifacts from one task to another task within a site and/or across sites, and wherein generating said task-site allocation network comprises: generating a task-specific constraints model based on task context information; and generating a task-site pair that satisfies at least one constraint based on the task-specific constraints model; and determining a preferred allocation of task to site by comparing estimated task-site allocation costs between a (i) single site allocation cost determined across one or more of the multiple nodes in the task-site allocation network that encompass the single site allocation and (ii) a distributed site allocation cost determined across at least two nodes of the multiple nodes in the task-site allocation network that encompass the distributed site allocation, wherein the cost associated with each node in the network comprises an effort of executing the corresponding task on the corresponding site, and wherein the cost associated with each edge in the network comprises an effort associated with transferring the one or more software artifacts between the two nodes connected by the edge; wherein at least one of the steps is carried out by a computer device.