The [[complexity]] of most [[computer program]]s and [[programming languages]] is one of the [[unsolved problems in software engineering]]. The current applications are complex to the extentextant that when programmers leave, companies fail, if those companies have no one elseto who understandsunderstand what the programmers have donedid. Researchers have performed a great deal of research in an attemptstrove to develop metrics, which adequately capture the complexity and reduce complexity of the [[software]].
InOne generalmeasure termsof the [[complexity]] of a program is the complexity of the algorithm, which is the number of steps that it takes to solve a problem or solve an [[algorithm]].<ref>http://www.cs.bham.ac.uk/~mhe/foundations2/node121.html</ref> A smaller complexity means less steps and a more efficient program. [[Efficiency]] isand of[[optimization]] direare importanceimportant to everyprofessional Computerwriters Scientist andof Softwaresoftware Engineer - these professionals arewho often codingcode Millionsmillions of interconnected methods in the one program, imagineall ifwith theylarge allcomplexities hadand largeanalytic Complexities!and organizational difficulty.