This paper presents AOPOA, an agent oriented programming methodology based in an organizational approach. The resulting multiagent system is composed by a set of active entities that aim to accomplish a well-defined set of goals. This approach allows to design complex systems by decomposing them into simpler ones. The organizational approach makes it easier to perform an iterative and recursive decomposition based in the concept of goal; and at the same time to identify the interactions between the entities composing the system; at each iteration an organization level is developed. During the analysis phase, tasks and roles are detected. During the design phase, the interactions are characterized and managed by means of cooperation protocols. At the final iteration, the role parameterization is performed, which allows to specify the events and actions associated to each agent. Finally, the deploy of the agent instances is determined allowing redundancy to achieve the requirements of the system.