Application of Linear Programming for Optimal Investments in Software Company

We apply the simplex algorithm which is a branch of linear programming to efficiently determine the allocation of resources required to operate a company in the software development field. The main aim of applying this tech-nique is to maximize the profit of a company under certain limitations. This can be done using the trial-and-error approach. However, this tedious process can be replaced by user-level tools such as Excel which are based on linear programming that will give more accurate results. Small software companies cannot afford to hire a high number of senior programmers to produce the required level of quality and to keep up with the demand for adding new fea-tures. On the other hand, lowering the quality of the product will reduce the number of customers and decrease profit. Another aspect is maximizing the utilization of hosting servers which are required for providing the services to customers since the cost of buying servers and maintaining them is extremely high. The simplex algorithm in linear programming will take the specified constraints into account to compute the optimal allocation of the available resources to maximize profit and limit the cost. This paper will present a model that uses the simplex algorithm with a set of constraints to determine how many projects of each type a company should take in one period of time.


Introduction
Operating a software company needs to run without pouring a lot of money. At the same time, company owners must have the ability to use and spend as little capital as possible to put the company in place and get it going. Furthermore, good money control will lead to the desired profit with the same available re- sources. This profit is the main target of any business owner to overcome and hard circumstances and Furth more company development. When it comes to money management, not all owners are good at controlling how to balance expenses with revenue, this is due to the poor product mix determination. Most companies-if not all-rely on their profit in providing services or selling products, the challenge is usually a combination of the total products or services that the company offers. For the company to know the best mix of services or products, it must make a profit at the lowest cost while keeping a certain level of quality, a profit maximization method must be utilized. A method that contains either maximization or minimization of a quantity is called linear programming (LP).
The goal of this research is to derive a mathematical model using Linear Programming and the Simplex Algorithm to determine the number of projects in each category to be taken at one period under the pre-specified limitations to achieve maximum profit.

Related Review
According to Akpan [1], Linear programming (LP) can be used to find the best result for minimizing cost or maximizing profit for a real-life problem. This can be reached after converting this problem into a mathematical model with a list of requirements. LP is used in a wide range of applications, including industry, transportation, education, economics, production, health, and social. Akpan [1] believes that this science is not new, as some organizations see, in terms of maximization of profit in the business institute. LP came to light in the days of the Second World War during the need of solving some military logistics problems.
From that time until today, linear programming remains one of the most statistics special techniques that are employed and used in modern societies. Today, using LP techniques, millions of dollars have been saved in various fields, thanks to LP which brings a proper way of utilizing the available resources in the company or organization. Akpan [1] uses the Simplex algorithm conception in his paper to allocate uncooked materials to competing for different variables of a loaf in a bakery. He [1] mainly aims to maximize profit by using this concept.
After analyzing, he concluded that how should he integrate the materials to reach the highest possible profit in his bakery.
Based on Hussien et al. [2], the simplex method has proved in practice to perform very well in small-to-medium size problems. They have presented a practical usage of the simplex method to find an optimal solution for a problem related to "BRA BLOCK FACTORY" in Duhok. They implemented the method by applying three types of blocks during their investigation. They started their research by formulating the problem into a standard linear programming problem (LPP), therefore, slack variables are added to constraints. They used WinQSB user-tool program to solving this problem.
Applegate, et al. [3] proposed a solution for some inaccurate results obtained by linear programming software. This defect is an inaccuracy because of the use of floating-point calculations. While most of the standard LP solvers can result in several optimal objective values for the same problem, some inconsistency can appear and lead to nontrivial errors in the context of factorization. So, They provided an implementation of the simplex algorithm that provides exact solutions to LP instances with attempting to minimize the arithmetic operations performed using the natural method in rational arithmetic and using floatingpoint arithmetic. Thus, they described their computational experience in four-LP categories of problems:  Benchmark LP instances In the context of resource allocation, Saaty et al. [5] talk about how could intangible resources be measured and evaluated to optimize for cost reduction and profit maximization. Intangible attributes do not have a scale for quantifying them and must be measured in relative terms side by side to tangible attributes.
Measuring intangible begins by first comparing the properties of each intangible relative to another intangible and produce relative ratios. This comparison must be done by an expert who worked with different levels of that characteristic. This comparison must be done between each pair to produce a pairwise ratio matrix.
From this matrix, they compute the priority of each intangible property using the eigenvector method which is done by solving the matrix equation Aw nw = for w where A is the ratios matrix and w is the priorities of characteristics. These priorities are used as the coefficients in the maximization function of an LP model. Each department in the business will have a ratio matrix that represents its effect on the properties of the intangible property and a budget allocated to it.
The priorities computed for the matrix and the budget will constitute a constraint function on the mode. The solution to the LP model will give the effort for each property of the intangible. This paper is relevant to our research to estimate the effort required for the intangible attributes in software development such as product quality and programmer experience level and link it with the budget allocated for each department in the company, which will give us the data required to make decisions based on concrete values rather than speculations.
Amin et al. [6] present a new method for selecting a supplier which is based on the quantified evaluation of Strengths, Weaknesses, Opportunities, and Threats (SWOT). This method has several advantages over other approaches since 1) It will take uncertainty into account. 2) Fuzzy logic is used to account for vagueness and inaccuracy in human thoughts.
3) It supports the qualitative method and the quantitative method at the same time. 4) It supports multiple products.
This method is composed of multiple phases. First, it selects the suppliers that are capable of providing the products demanded. The second phase is to set up the key factors of criteria for the selection process which include both positive and negative metrics. Then this list of criteria is reviewed and studied to select the suitable ones for the selection process. The third phase is to evaluate each supplier how much it is satisfying each criterion based on the opinion of experts in that criteria using the scale (Very Low, Low Medium Low, Medium, Medium-high, high, very high). The weight of each criterion is computed by averaging the evaluations of all the experts. The fourth phase is to query the data for the quantitative attributes (i.e. unit cost, etc.) by compiling them into one form and sending it to the selected suppliers. The fifth phase is computing the weight for each criterion based on its importance in the selection process. The sixth phase is to normalize the weights in the previous phase by dividing each weight by the sum of all weights, this will ensure that the sum of all weights is equal to one. Then the final weights can be calculated by multiplying the weights of criteria by the normalized weights. The seventh phase is computing the benchmarking value which is the average of the total weighted value and the coordinated value which is the weighted value for each product for each supplier minus the benchmarked value. The final phase is to enter the coordinated values of all products into the LP model to select the supplier that maximizes Opportunities and Strengths.
Taking everything into account, they energetically suggest the utilization of linear programming and its methods to decision-makers in settling on choices concerning their available resources instead of using the trial-and-error method.

Methodology
In this section, we show how to optimize by applying linear programming. We will explain the fundamental of this method. The final result of applying LP shows the optimal combination as a solution for maximum profit liable to our problem. This target is called "Objective function" which has the following form: The Z is the profit that is being maximized. The variables 1 2 , , , n x x x are the decision variables that need to be solved by linear programming, in this case, it is the number of projects that need to be taken in one period. The numbers 1, 2, , n correspond to the different types of projects available, in this case, mobile apps, desktop apps, web apps, and ERP apps. The variables 1 2 , , , n c c c are the profit made from one project for each project type.
To solve this function, it will be subjected to different constraints specified as mathematical inequalities. Thus, to find the optimal solution (maximum profit in our case) for our problem, all these conditional constraints must be satisfied ( Figure 1). Then, the objective function can be evaluated later by substituting x values.
Problem constraints have the following form:   b are the constraint boundaries that must be obeyed. Each one can be a maximum value or a minimum value or an exact value depending on the operator used ( ) , , ≤ ≥ = .
To use the simplex algorithm for solving any LP problem, it requires that the problem is converted to a form called Standard Form. In such a form, these properties must apply: 1) Constraints-all constraints must be expressed as equalities by adding slack or surplus variables.
2) Objective function-objective function in a problem must be expressed in quantitative form.
3) Non-negativity-variable values should equal zero or greater, but not a negative value. 4) Linearity-between two or more variables in the equation, the relationship must be in linear form, which means the degree of the variable is one.

Assumptions
To apply the method we will use a hypothetical example of a small-sized company with random constraints to demonstrate how LP will be used on them to maximize profit. This method does not dictate what those constraints should be, how many there are, or what their values should be. It is up to the user to apply to whatever scenario he has.
To formulate the constraints that are relevant to our problem, we will discuss the company's available resources. Because of some space restrictions and other company's financial conditions that couldn't allow the ability to increase the number of employees at present. Also, the amount of hardware resources available to support simultaneously running projects is limited.
We divide the potential programming projects into multiple categories. These categories vary from each other enough to have different requirements and resources. For example, the amount of expert programmers required by an ERP software is much larger than a website or mobile application and the number of servers and the amount of storage required by web applications is also different from a desktop application.
This division into categories is useful for computing the most efficient combination of projects to take at one period based on the available resources and current limitations. The specified period in this application is a quarter of the year (4 months) and all restrictions mentioned are considered within that period unless it is mentioned otherwise.
Data Presentation Software projects are divided into four categories: The goal of this research is to determine how many projects from each category are to take at one time to work with the limitations and maximize profit. The numbers and the constraints are shown in Table 1. These categories are analyzed using the following constraints:

1) The Number of Expert Programmers
The maximum number of experts available is 18 programmers. • Mobile applications require 1 expert programmer.
• Web applications require 4 expert programmers.
• Desktop applications require 2 expert programmers.

2) The Number of Senior Programmers
The maximum number of seniors available is 30 programmers.
• Mobile applications require 4 senior programmers.
• Web applications require 4 senior programmers.
• Desktop applications require 6 senior programmers.

3) The Number of Testers
The maximum number of testers available is 20.

4) The Number of Servers
The maximum number of affordable servers is 20.
• Mobile applications require 1 server.
• Web applications require 2 servers.

5) Storage Size
The total storage available is 15,000 GB.
• Web applications require 925 GB.

6) Fixed Expenses Per Project
The maximum affordable expenses are $45,000.
• Mobile applications have fixed expenses of $4700.
• Web applications have fixed expenses of $5000.
• Desktop applications have fixed expenses of $8000.
• ERP applications have fixed expenses of $14,000.

7) Other Constraints
The maximum number of ERP applications taken within a period cannot be more than one.
The maximum number of mobile applications taken within a period cannot be more than three. • Web applications have an approximate profit of $12,000.

Profit Per Project
• Desktop applications have an approximate profit of $17,000.
• ERP applications have an approximate profit of $35,000.

Model formulation
Let x 1 be the number of mobile applications to take. Let x 2 be the number of desktop applications to take. Let x 3 be the number of web applications to take. Let x 4 be the number of ERP systems to take.
The LP model for the above resources is given by:

Discussing the Results
Under the given constraints, LP solved the model provided and produced the following results: • The suggested number of Mobile Applications to be taken in one period should be 3. These numbers also tell us that we are bound on the number of testers and senior employees because for the proposed combination the number of seniors and testers is almost equal to the maximum limit. That means if the company needs to improve and release some of the limitations it must consider these constraints first since increasing them will allow the number of projects to go up and hence make more profit (See Figure 2).
The numbers also show that servers usage (7.4) and storage usage (7950) is very small compared to the available resources (20 servers and 15,000 storage).
This means that the company can reduce these constraints to save resources without affecting the number of projects they can do which will reduce the cost and potentially increase profit.

Limitations
The current work operates on the given constraints that are already available and the current profit per project they have. It does not show how to select those values, how to modify them to achieve different results, nor the effect of changing those variables on the behavior of the algorithm. It assumes that the given company already has its own constraints and an estimation of the profit from previous periods and allows them to maximize their profit based on that. However, the current algorithm does show the binding constraint that should be increased in order to increase profit with currently available resources.

Conclusion
We presented a model that uses linear programming to solve an operational problem in a software company by determining how many different projects, it should take in a given period to maximize profit given the resources and the constraints it already has. Using the same method, other inputs and constraints can be entered into the model to obtain the optimal solution for any given circumstance.