Linking business and software development
A Cross-Atlantic Partnership

In 2007, CMU | Carnegie Mellon University and the UC | University of Coimbra launched the first dual degree MSE | Master Program on Software Engineering with the support from the Portuguese Government. Today, graduates from the program are making a difference in their organizations by leading new business areas, contributing to an increase in the quality of products and changing the way software is developed, boosting both efficiency and innovation. MSE moto was - Creating Agents of Change - and it succeeded.

The EPSE | Executive Program on Software Engineering  is born out of that tradition. It combines the knowledge and experience of two leading universities and their industry partners in the creation of a rich and rewarding learning program, providing trainees with a business perspective on Software Engineering.

Developing a business perspective for software engineering

The business of software development is more demanding today than ever before. Margins for service companies are low, deadlines are shorter, buyers, users and regulators are increasingly aware and perceptive of quality. Furthermore, the complexity and scale of today’s software systems defies conventional thinking.

In this context, software engineering is no longer an option, it is a necessity. Development teams need to learn how to plan, track and react to the unexpected, understand the risks and have the tools, processes and strategies to avoid major setbacks.

The role of software development professionals is no longer limited to technical concerns, nowadays, these professionals also need to be competent in business and product management.

Creating a rich and rewarding learning environment

EPSE is an advanced training program for high potential contributors and first level managers. At the individual level, the program aims not only to provide specialized training but also to create an arena for the exchange of experiences and extend professional networks. At the organizational level, EPSE seeks to develop the critical mass that organizations need to leverage new technologies and processes. At a country level, the program aspires to become an engine for innovation and economic growth, thru its role as a meeting place for industry and academia.

Industry involvement

CMU, UC and IPN (Instituto Pedro Nunes, Best Science Based Incubator 2010) would like to partner with Portuguese firms seeking to retain their best talent by rewarding excellence and commitment, to train the leaders of tomorrow but also learn from them. The program intends to do this by forming an advising council to update and review the program content, developing case studies from partners’ projects and by inviting those involved to share their learnings and perspectives.

Candidate Profile

The program targets high-potential individual contributors transitioning into a business or technical leadership role in software development. Applicants must have practical knowledge of programming methods and computer organization, good communication skills and good knowledge of English, both written and spoken. Candidates must be sponsored by their respective organizations. 


EPSE goal is to train leading professionals for the software industry. ESPE graduates will be able to lead technical, organizational and business-related activities and teams on software development projects. 
EPSE training is focused on 3 main areas: Business and organizational concerns in software development; Software Practices; and Soft Skills. Under the first area, students will learn about managing software development, managing processes, thinking about strategy, competitiveness and innovation, and also about the legal aspect of software creation and commercialization. In terms of Software Practices, EPSE will offer a detailed and technical view over the topics of software development and software logistics, with emphasis on Agile approaches, project and risk management, planning, tracking and measuring software development, deployment, validation and support, quality and assurance, as well as architectures for software systems. The soft skills component addresses negotiation, conflict management, communication, decision making, motivation and leadership.

Program Structure


Process Management12h
Paulo Rupino | UC 
This unit introduces key concepts and approaches for business process management and improvement. Its main focus is on understanding, designing and improving business processes. Attendants will learn how to identify, design, document, analyse, and improve of business processes. They will learn how to use specific tools for this purpose. Finally, students will also learn about the challenges, advantages, and risks of inter-organizational processes and process outsourcing.
Strategy and Competitiveness12h
Licínio Roque | UC 
This unit provides technical people with competencies and tools to discuss information systems design and evolution with business managers. They will learn how to perform a strategic analysis and use it to identify and prioritize opportunities for the use of IT supported on solid business cases. They will come to understand why management and IT often have distinct and conflicting perspectives, thus becoming privileged actors the dialog between those parties.
Innovation Management12h
Guest Lecturer | UC-IPN 
Innovation management encompasses product, business process, and organizational innovation, as means to allow an organization to respond to business opportunities, and apply the available creativity to design novel products, services, ideas or processes. This unit presents concepts, methods, and tools for managing the creativity of the work force toward continuous development of an organization.

Law & Ethics12h
Guest Lecturer | UC-IPN 
This unit discusses fundamental issues about IP and Software licenses, focusing on the rights, relations, and conduct of organizations and people engaged in business activities. Furthermore, the unit addresses business ethics as the means to understand the ethical dimensions of organizations, including ethical considerations of producing, distributing, marketing, and selling goods and services. 
Service Design Thinking12h
Licínio Roque | UC
The student will gain an understanding of the techniques involved in the design of service experience, and in particular of those whose implementation involves, or heavily depends on, the design of innovative interaction solutions, based on information and communication technologies. The student will develop the capacity to apply the service modeling techniques in concrete situations, and the capacity to evaluate design results in a critical manner, in relation to the intended user experience.
Key topics include:  
— The interdisciplinary problem of Service Experience Design;
— Participatory Methods and Co-Design;
— Design-Thinking methods for services;
— Service prototyping and rehearsal;
— Modeling service contexts and value networks;
— Business Model Canvas for services;
— Modeling services: blueprints, from context to content, from touchpoints to operations;
— Evaluation of service experience, usability and beyond; UX research and behavior analytics.
Management of Software Development12h/week
Eduardo Miranda | CMU 
The course explores agile software development methods form a managerial perspective and explains the challenges of working with distributed teams. It starts by explaining the overall software development process and how these processes are implemented in different contexts, e.g. software products, systems of record and systems of engagement. Later it focus on Scrum and the Disciplined Agile Delivery method to provide students a working knowledge of two of the most widely adopted software development methods. It does this assuming the student will play the role of product owner in these teams. Finally, the course addresses the challenges presented by distributed development and takes a look at emerging technologies that will affect the industry and the development landscape in the coming years.
Business for Engineers12h/week
Vijay Say | CMU 
In this course, students will learn key concepts in strategy, microeconomics, finance, operations, marketing and ethics. Successful completion of this course will provide students with the knowledge and skills to:
— Compare engineering proposals on the basis of their financial merit or financial value proposition and measuring cash flow streams;
— Solve minimization/maximization problems using Microsoft Excel Solver to understand concepts of profit maximization, optimal resource allocations, cost minimization;
— Review, interpret and opine on financial statements of selected companies to reinforce financial performance measurement concepts including Gross Margin, Contribution margin, EBIT, Net;
— Income, Debt Equity, Dividend Ratio, Cash Conversion cycle;
— Determine how variation in supply and demand for a product influences its price;
— Review, analyze and present (in small groups of 3‐5 students) views on a real world business situation; financial and other facts will be presented; managerial decisions – tactical and strategic ‐ need to be analyzed in light of challenges and opportunities;
— Analyze the issues and challenges around ethics, managing change and managing intellectual human capital, i.e., engineers.


Agile Development Frameworks: Practice12h/week
Mel Rosso Llopart | CMU 
The course Agile Software Development Frameworks gives students the opportunity to use some of these frameworks in the actual development of a software system and see the impact of choices made, the challenges the techniques introduced and the ways the developers can work to overcome the challenges and deliver a product successfully. Students will be required to develop a software system using a framework and evaluate the team’s performance in using the Agile techniques. At the end of the course students will be able to:
— Perform the key context elements for an Agile development method selected;
— Plan, appraise and control work performed according to the methods covered, but understand how this applies to all the methods;
— Evaluate the impact of substituting an existing practice or introducing a new one;
— Attempt improvement changes to better understand the “Agile” culture;
— Understand key ways to measure the success of a processes selected.

Software Processes12h
This unit critically discusses the implementation and improvement of effective and efficient software processes, covering the spectrum from formal to agile. Different perspectives on Quality are presented and discussed. The Capability Maturity Model is introduced. Its rationale and some of its practices are analysed in more detail. People and cultural issues and their impact on software processes is analysed.
Project Management Fundamentals12h
Marco Vieira | UC 
This unit addresses project management approaches, focused on achieving project goals within the constraints of scope, time, quality and budget. Managing the work of a team is achieved by planning, executing, and controlling the effort in order to meet specified success criteria while achieving the specified goals.
Software Measurement12h
Licinio Roque | UC 
The purpose of the Software Measurement module is to introduce you to applying software measurement; from need identification through metrics definition, analysis and feedback, and the processes to implement an empirical SE practice. Much of the course material used to demonstrate the concepts are based on how software measurement is used by managers and practitioners in industry. Software Measurement practices are also the basis for the implementing Project Management Offices, quality improvement and capability maturity management programs.
Objectives of the Software Measurement module:
— Learn measurement concepts as applied to software engineering;
— Be prepared to apply measurement to make decisions based on the data in a software engineering environment;
— Be able to develop a measurement plan that can be implemented and used to improve an organization's software engineering practice and management processes.
Risk Management12h
Mário Zenha-Rela | UC 
This unit is focused on predicting the risks that may affect a software project, establishing actions to avoid those risks, and communicating the status of the project risks to the team. We focus on several distinct categories of risk, namely those associated to a project, a product, or a business, and progressively learn how to conduct risk identification, analysis, planning and monitoring.
Raul Barbosa | UC 
This unit focuses on methods and techniques for ensuring that a software project meets the established scope, time, and cost goals. To this end, engineering activities, such as analysis, design, and implementation, must be adequately complemented with management activities directed toward planning, monitoring, tracking, and oversight. Planning takes into consideration the scope, cost estimates, and a development schedule. 
Tracking and Oversight12h
Raul Barbosa | UC 
The starting point for this unit is a project plan. Actively tracking progress, with a control strategy, is then needed to proceed according to plan. This unit provides attendants with knowledge and techniques for tracking and overseeing software projects, and re-plan activities if necessary to adapt as rapidly as possible to changes.
Dealing with Change12h
Marco Vieira | UC 
In engineering projects, changes must be addressed in a systematic way in order to manage the costs and benefits associated with each change. This unit focuses on methods for managing changes from the perspective of the project manager. This involves strategies for consolidating customer requests and techniques for analysing, evaluating, planning, and reviewing changes.
Software Quality12h
Raul Barbosa | UC 
This unit addresses the software engineering areas related to verification, validation, and certification. The goal is to provide attendants with a broad knowledge on software quality and the technical activities that are carried out to ensure quality, including static and dynamic analysis, development models, and software certification. Attendants will understand how to adequately conduct quality assurance during software development, learn the difference between static and dynamic analysis, and understand the activities toward quality assurance during the software development process.
Requirements Engineering24h
Mário Zenha-Rela | UC 
The development of software requires an understanding of the most successful methods to bridge the gap between the problem (in the world) and the solution (in the technological realm). In this unit we address different complementary methods to understand and analyze the problem, the factors that shape and constrain the set of possible solutions, and criteria to choose among them. After this course, students shall be able to identify different classes of problems, and use a truly engineering approach to analyze the technical, business, usability and market dimensions that constrain a potential solution.
Software Architecture for Managers12h/week
Matt Bass | CMU 
This course introduces key architectural concepts, techniques, and guidance to aspiring technical managers enabling them to improve their ability to manage effectively. Although the course introduces technical concepts, the focus is on managerial challenges rather than technical implementation. This is neither a pure technology course, nor a pure management course. Students are encouraged to explore the ways in which business context drive architectural decisions, as well as the ways in which architectural decisions can support and constrain future business decisions and opportunities. Upon the successful completion of this course students will:
— Be better equipped to organize, manage, and lead high tech organizations building and deploying large scale, software intensive systems;
— Understand what software architecture is, what it is used for, and how it relates to the overall business context of the organization;
— Be better equipped to help identify architecturally relevant aspects of the business context and articulate relevant architectural drivers to reflect these objectives;
— Better understand how to manage business tradeoffs based on the architectural options available;
— Understand the basics of architectural documentation and how, as managers, architectural documentation can be used to facilitate your responsibilities.

Estimating Software Development and Maintenance Projects12h/week
Eduardo Miranda | CMU 
Ultimately time, resources and money are the three criteria by which society and organizations decide what gets built, how it is built and by whom and in consequence, the importance of having credible and reliable estimates cannot be overstressed. Unrealistically small budgets as well as unnecessarily large ones result in misallocation of resources and wasteful spending. The objective of the course is to teach participants how to develop estimates for software development and maintenance projects, how to communicate them to others and how to include them in a contract. Although the orientation is basically quantitative, the course will delve into the cognitive biases and the administrative behaviors that afflict the estimation process. The course will address the use of structured expert methods, parametric models and counting methods.
Introduction to Software Assurance12h/week
Nancy Mead, Jose Morales | CMU 
The goal of this course is to provide a broad overview of software assurance topics, at the awareness and comprehension levels. It is suitable for managers and software engineers interested in gaining knowledge of software assurance issues. Course topics include:
— Current landscape of malware, threats, vulnerabilities;
— Evolution of cyber‐attacks early 80's to today;
— Reasons why attacks are successful (exploit, social engineering, insider threat);
— Threat modeling;
— Root causes for these reasons (code flaws, design flaws);
— Steps avoid the flaws and check for their existence;
— Security Lifecycle models (Microsoft, others);
— Security Requirements engineering;
— SQUARE and other security requirements methods.


[TBD] | UC 
This unit addresses the communication processes that take place in organizations and strategies for improving their effectiveness. The goals are to understand the advantages and disadvantages of different communication channels, including the use of computer-aided technology, to identify common barriers to communication, and to discuss approaches toward effective communication.
[TBD] | UC 
Most organizations place employees on teams, as a means to achieve better results than individuals in tasks requiring multiple skills and experience. This unit focuses on different types of teams and how to establish the necessary conditions for creating team players. With the right tools, management can greatly aid in creating effective teams and prevent those teams from stagnating and become rigid.
Decision Making12h
[TBD] | UC 
This unit focuses on perception and decision making, as a means to understand decision-making processes and how to improve their efficiency and effectiveness. Participants will learn about the rational decision-making model and the hurdles that one typically finds in applying that model in practice, aiming to improve decision-making skills.
[TBD] | UC 
Negotiation is a fundamental skill required to manage any situation in which two or more parties focus on attaining independent goals. In a software engineering project, negotiation is necessary in aspects ranging from requirement elicitation, to software changes, to conflict management. To this end, this module discusses challenges typically arising in negotiation processes and strategies to improve the outcome of negotiations.
Conflict Management12h
[TBD] | UC 
Conflicts arise in organizational interactions and can impact a wide range of tasks, processes, and relationships. The conflict process can be handled in diverse ways. To this end, it is necessary to understand the different conflict-handling intentions and the conflict process. Managing conflict processes should be seen as an integral part of managing software development, by applying different strategies that include negotiation.
Motivation & Leadership12h
Marco Vieira | UC 
This unit focuses on leadership as a means to establish a common vision of the goals, and provides insight into aligning individual goals by adequate communication of those goals and inspiring people to overcome any issues and to put the effort needed to change organizations. A key aspect of this unit is to understand how to coordinate good management with good leadership, including strategies for improving employee motivation and involvement.
Note: the topics listed above might vary and also be adapted to the students interests. At CMU, students can choose four of the six available courses.

Over 600 hours of training.

Lecturers from the
academy and industry.
All materials included.

8 Months of training

6 Months part-time @UC, classes on friday and saturday. 6 weeks full-time @CMU.

*** Please refer to the “Calendar” section on the following page for more precise dates


Companies and organizations interested in becoming partners of the program and submitting the application of their collaborators to the program can express their interest by e-mail to epse@dei.uc.pt

Tuition — 12 000 Euros


Universidade de Coimbra
Departamento de Engenharia Informática | Faculdade de Ciência e Tecnologia
Pólo 2, 3030-192 Coimbra, Portugal

Institute for Software Research
300 South Craig St., Room 273
Pittsburgh, PA 15213 USA 


The program will run from November to June (excluding the stay at CMU)
Fri. 10:30 - 19:00 Sat. 9:00 - 17:00

Classes between March and May (6/7 weeks)


Telephone: +351 239 79 00 00
E-mail: epse@dei.uc.pt 


Telephone: +1 (412) 268-4359
E-mail: mil3@cs.cmu.edu
Hours: 9:00 a.m. - 5:30 p.m.
Eastern Time
Fax: (412) 268-5413