There are many small independent IT teams working on IT market. They consist of analysts, developers, designers, consultants etc. These teams are not individual freelancers already as grouped in a single unit for their clients. However, they are not still firms because they do not have full-sized and completed business processes inherent to firms (e.g. HR, financial accounting).
Nevertheless, they have to develop all the processes including automation. It is important to find the rational balance between functionality and cost of these «internal» IT-solutions. Nobody wants to spend time and money on manual settlements with external clients and individuals within the team. However, nobody wants to spend time and money on creation and implementation big systems instead of earning money on commercial projects.
Representing a small IT-team I want to share my experience in setting up of management accounting within the team. I am doing it in style of «IT-case».
Business goals, problems and restrictions
- To provide with full clarity of settlements with our clients
- To provide with full clarity of settlements within the team
- Always to know what tasks are doing, who is doing these tasks, who are doing these tasks for
- To provide with keeping formal and informal arrangements with clients and internal resources about deadlines and man-hours for tasks
- To reduce inefficient efforts on manual creation of bills, clients reports etc.
- To analyze financial outcomes of projects, tasks and clients
- Time – ready to use for 1-2 weeks
- Finance – the cheaper, the better
- Functionality – possibility to gradually increase functions according to business needs without significant expenses on making changes (build versions, testing, deployment etc.)
Ideas from IT
I considered next alternative options to automate management accounting based on the goals and restrictions referred above:
- Using of out-of-the-box software for general accounting (an ERP for a small firm)
- Using of out-of-the-box software for development process automation (like Redmine)
- Developing of my own solution
After considering «Yes» and «No» for every option I decided to select the variant «3».
I did not like the variant «1» because I would have to customize any «out-of-the-box» general accounting software for our specific needs. At the same time, cost of customization with unknown tools would be very likely more than cost of development new solution. As well as, we would have to do some modifications of our processes according to business logic realized in the out-of-the-box product.
The variant «2» was better than «1» for an IT-team. However, these solutions have no or weakly developed financial accounting functions.
Both the «1» and «2» required of additional licenses payments and included some excess functions that were not required or already implemented in other solutions (e.g. project management in MS Project, team portal in Alfresco ECM).
I liked the option «3» as we could implement now just we need now. Then we could increase functions according to extending and changing our business needs. As regards a platform to realize the system, firstly, I wanted to use Alfresco ECM, but then decided to use MS Access. MS Access allows doing everything faster and to make changes of system objects along using the solution. This let us tryout information model and user interface with low costs. Then we could port the solution to more productive platform. On the other hand, Access is suited for us because small size of our team and small volumes processed data.
Concept of the solution
Therefore, our IT-solution for management accounting is a MS Access file including database tables, UI forms, queries and reports.
Main task when developing such an application is creation of an information model represented existing business objects and processes. There is no one and only right solution of this task. However, lack of any suggested model would give negative effects in process of developing and using the final solution.
I propose my own version of the information model in a little simplified view below.
A central entity of the model is Project. Projects differ by Type (Internal, External and Presale) and by Contract Type (fixed price, time & material, not commercial). Every Project is related with one and only Customer. For one Customer can be managed no, one or many Projects.
The model enables to bill efforts linked on Clients and Projects by two ways depending on Project Contract Type:
- Based on factual man hours spended (for T&M projects) – instances of ManHours entity
- Based on Bills represented phases and terms of the contract (for FP projects)
Task entity serves to specify groups of work within Projects. Task relates also with elementary or summarized work in work breakdown structure (WBS) of the project in the external project management system (Microsoft Project) using for calendar and resources planning. As well as Task stores various types of man-hours estimations (the first estimation, the estimation approved by the customer etc.) and consolidates factual man-hours stored by ManHours instances.
Furthermore for a Task is created an Assignment for a Resource. A Resource is a person, a member of our team. In future, we plan to realize supporting not only working resources but also material resources. Every Resource has the cost (price per hour).
An Assignment is an arrangement with a Resource to do some work (with man-hours estimation approved by assignee and project manager) to have done a Task. For instance, for the Task «Prototyping» can be created next three Assignments:
- Functional design – for an analyst Bob
- Prototype development – for a developer Ann
- Testing of the prototype – for a tester Bill
During execution of the Assignment, assignee or project manager fixes efforts (man-hours) of the Resource for the day by using an instance of ManHours entity. It is doing on day-by-day base.
Project manager evaluates quality of the results of the Assignment and stores a grade in the Assignment instance. Furthermore, these grades are used for analysis of efficiency of Resources.
Finally, in the suggested information model there are payments from Clients and to Resources. As well in real life, I mark out two types of payments by direction:
- Incoming payment (PaymentIn entity in the model) – any money receipt in common budget of the team (by cash, to a bank account etc.) including payments from Clients for services and products
- Outgoing payment (PaymentOut entity in the model) – any charge to common budget of the team including payments to Resources for completed work
Payments can be between not only Clients and Resources, but they reflect all the financial transactions of the IT-team including expenses for hardware, advertising, incomes from sponsors and so on. This approach enables to control finances completely including demand balance.
Also for the each payment is named a corresponding expense or income item. This provides us with ability to create various management reports to analyze structure of expenses and incomes.
Finally, the system enables to calculate automatically the balances for the Clients and Resources (who, to whom and how much is due) by using instances of Bill, ManHours, PaymentIn and PaymentOut.
Tasks to realize the solution
To realize the concept described above we have done the next tasks.
|Creation of the information model, designing of DB structure and UI forms, discussions and adjustments||8|
|Creation of tables in MS Access, filling dictionaries and first data records||4|
|Creation of data macros in MS Access (realization of business logic on database level)||4|
|Creation of forms on MS Access (realization of interface logic)||8|
|Creation of queries and reports in MS Access (realization of analytics)||8|
|Testing, trial operation, fixing||8|
Total: 40 man-hours.
Expenses to creation of the solution grouped by expense items is showed below.
|Expense item||Expense name||Volume||Cost|
|Licenses||It is not required additional software besides MS Office purchased early||–||0 USD|
|Work||Our own works by rate 40 USD per hour||40 man-hours||1.600 USD|
Total: 1.600 USD.
|Benefit name||Algorithm calculation of benefit||Rate|
|Reducing cost to management accounting||Before the solution was implemented I spended to management accounting about 1 hour per day (about 20 hours per month).After implementation of the solution these works was been reduced on 50% (until 10 hours per month).Benefit is 10 man-hours per month. It is 400 USD per month by rate 40 USD per hour.||400 USD per month|
Total: 400 USD per month.
- Increased clarity of management accounting
- Reduced mistakes in calculations
- Raised quality of management decisions by having additional analytical tools
- Enhancement customer relations by clear and centralized fixation of adjustments about due dates and man hours to complete tasks
- Enhancement relations within the team by clear and centralized fixation of adjustments about due dates and man hours to complete assignments
Calculations showed above are evidence of payback time about 4 months even we take in account only direct benefits.
However, it is obvious that management accounting is a central important function for business. Therefore, influence of indirect benefits may be even more than direct benefits.
So we can assert with confidence that creation of the solution had high economic efficiency for our IT-team.