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 resources. 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.
2. Related Review
According to Akpan , 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, trans- portation, education, economics, production, health, and social. Akpan  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  uses the Simplex algorithm conception in his paper to allocate uncooked materials to competing for different variables of a loaf in a bakery. He  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. , 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.  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 floating- point arithmetic. Thus, they described their computational experience in four- LP categories of problems:
• Benchmark LP instances
• Orthogonal-array bounds
• Traveling salesman problem (TSP)
• Mixed-integer programming
Maurya et al.  utilized the LP model for purpose of optimizing the profit of a chemical company in Ethiopia. They used MS-Excel solver for solving the problem considering the manufacturing constraints.
In the context of resource allocation, Saaty et al.  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 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.  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.
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 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 correspond to the different types of projects available, in this case, mobile apps, desktop apps, web apps, and ERP apps. The variables 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:
Figure 1. Sample of the feasible region that satisfies all conditional constraints of the linear programming problem.
where the variables are the value of the constraint for each constraint, for each project type. The variables 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.
5) Finiteness—if the function contains an infinite, that means no feasible region or solution for this problem. Thus, all factors should be finite.
The above form of the objective function can be converted to standard form of LP problem as:
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.
Software projects are divided into four categories:
· Mobile Applications.
· Web Applications.
· Desktop Applications
· Enterprise Resource Planning (ERP) Applications
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.
Table 1. Summary of problem constraints and formulation.
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.
· ERP applications require 7 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.
· ERP applications require 9 senior programmers.
3) The Number of Testers
The maximum number of testers available is 20.
· Mobile applications require 2 testers.
· Web applications require 4 testers.
· Desktop applications require 5 testers.
· ERP applications require 7 testers.
4) The Number of Servers
The maximum number of affordable servers is 20.
· Mobile applications require 1 server.
· Web applications require 2 servers.
· Desktop applications require 1 server.
· ERP applications require 3 servers.
5) Storage Size
The total storage available is 15,000 GB.
· Mobile applications require 250 GB.
· Web applications require 925 GB.
· Desktop applications require 500 GB.
· ERP applications require 6500 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.
Profit Per Project
· Mobile applications have an approximate profit of $9000.
· Web applications have an approximate profit of $12,000.
· Desktop applications have an approximate profit of $17,000.
· ERP applications have an approximate profit of $35,000.
Let x1 be the number of mobile applications to take.
Let x2 be the number of desktop applications to take.
Let x3 be the number of web applications to take.
Let x4 be the number of ERP systems to take.
The LP model for the above resources is given by:
Then, this model will be converted to the standard form as follows:
Using MS Excel solver tool, the above linear programming model was solved and gives the optimal solution of:
Figure 2. İllustration of the problem in MS Excel solver tool.
4. 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.
· The suggested number of Web Applications to be taken in one period should be 0.
· The suggested number of Desktop Applications to be taken in one period should be 1 or 2 since 1.4 is not an integer.
· The suggested number of ERP Applications to be taken in one period should be 1.
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.
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.
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.
 Hussien, A., Murad, M.A. and Najim, H. (2018) Optimal Production of Bra Block Factory by Using Simplex Method. Academy Journal of Nawroz University, 7, 10-16.
 Maurya, V.N., Misra, R.B., Anderson, P.K. and Shukla, K.K. (2015) Profit Optimization Using Linear Programming Model: A Case Study of Ethiopian Chemical Company. American Journal of Biological and Environmental Statistics, 1, 51-57.
 Saaty, T.L., Vargas, L.G. and Dellmann, K. (2003) The Allocation of Intangible Resources: The Analytic Hierarchy Process and Linear Programming. Socio-Economic Planning Sciences, 37, 169-184.
 Amin, S.H., Razmi, J. and Zhang, G. (2011) Supplier Selection and Order Allocation Based on Fuzzy SWOT Analysis and Fuzzy Linear Programming. Expert Systems with Applications, 38, 334-342.