In this tutorial we will model an enterprise management control system on a Cloudlet, implementing requirements for subsequent iterations. We will model concepts such as employees, projects, assignments (understood as project assignment to an employee), activities, and invoices.
- Initially, we’ll be looking at just staff management (master, employees, resources, and teams). This “narrow” domain is necessary to introduce basic modeling concepts such as classes, attributes and warnings.
- Next, we will include small enhancements and also consider elements such as projects and activities; for this purpose we will introduce relationships and widgets.
- Finally, we will address advanced modeling topics such as queries and filters, implement accounting management, and partition the model into multiple application views, making the model a true management control system.
Real World Example #
Thesfor Consulting, an IT consulting firm that develops projects on behalf of clients and third-party companies, just hired us as analysts. A year ago the firm was nothing more than a startup of five people in a room, each working on a single project. Today it’s a promising enterprise with fifty or so employees, contractors and freelancers spread across multiple cities, simultaneously managing dozens of projects for multiple clients.
Only one thing hasn’t changed since day one: the company’s data regarding projects, resources, master data and payments are fragmented into hundreds of documents, spreadsheets, emails and post-it notes, which are scattered across computers and desks around the globe. This chaotic approach doesn’t scale, and risks slowing the company’s otherwise exponential growth.
Thesfor’s CEO has decided to entrust you with the design of an ad-hoc system to centralize the company’s data into a single database while enabling management control.
What is management control?
The CEO is short-sleeved and already suffering thinking about how long it might take to implement the system and how much money it might take to pay developers, engineers and analysts to build and maintain it. That’s where Livebase comes in: once we learn the modeling techniques, we’ll be able to build the entire system ourselves right in front of the CEO during a requirements analysis meeting; he’ll be happy to interact with a demo of the application in real-time!
The system must meet a fundamental requirement: provide a structured overview of the entire business domain, highlighting the relationships that link concepts such as project, invoice, assignment and activity.
User Profiles #
We need to implement a multi-user system and ensure that each profile accesses only the information that is within its competence and according to its role in the company. The profiles we need to model are as follows:
- Administrator: has vision of the whole system; he
can create, modify and manage all details of projects, and has access to management control indicators related to each project;
- Accounting Manager (accountant): records income invoices for each project and enters customer payments related to them; also records expense invoices related to the projects’ out-of-pocket expenses;
- Staff manager (staff manager): manages employees and staff, including dividing them into teams and assigning new assignments for projects;
- Employees (user): each person has a personal area from which he/she can access his/her personal data and record the activities he/she performs on a daily basis for the projects he/she is assigned;
- Team manager: a “special” employee, enabled to manage the activities of all the members of the team he is part of; he has access to data related to the general progress of the team.
In the next lesson… #
We will model a first, simple version of the described system: Creating your first application.