miércoles, 12 de febrero de 2014

Formal Methods and Project Planning for the Software Process

From my experience as a software developer and complex software projects managers, I had learn over time that to successfully execute software project besides having a hard working team, it is essential to count with a clearly defined plan that all parties understand and endorse. 

Over the past years we had tried to align our administrative process to comply with CMMI standards. However, in practice, being a medium size company achieving this intention is very expensive, time consuming and doesn’t pay off from the customers perspective. Small and medium software development companies represent the largest segment in the software development industry in the US.

I believe that there are real values to following the process, but I also think whether companies follow their CMMI processes depend in large part on their customers. In the federal government market, I found that it is a requirement in the Request for Quote, but the customer doesn't really want to pay the costs associated with it. Formal models such as CMMI have been developed without taking into account small businesses and their limitations; neither has been adapted to facilitate its adoption. This brings to my attention the following questions:
  • How to calculate / to evaluate the return-on-invest of introducing CMMI in small companies and specifically Project Planning practices.
  • How many developers must exist so that process improvement and project management with all its components (PP, PCM, etc.) saves money in a feasible time frame? 
  • Is it necessary (from an official CMMI point of view) to introduce expensive tools or is it possible that small companies realize CMMI level2 without any tools?
  • Is marketing the major reason why companies invest in this certification or are there real values in following the CMMI processes?
  • Do companies actually follow CMMI processes after certification?
The Reality 

Process improvement in small enterprises is a problem that has been studied with more interest since 2005 (Mondragon, 2006). Process improvement in small enterprises is naturally limited by the constraints of small businesses:
  1. Company Cash Flow: Proper cash flow instantiates resources on a process improvement project. In small companies (fewer than 25 employees) normally the agenda of technology experts are on assigned above 100%. In many cases small businesses are not competent when making estimates of effort and performance expectations of the team, neither on planning or formally managing it projects.
  2. People Skills: People with higher education usually have developed analytical thinking skills much stronger than people who do not have this training. The development of training guides and process guidelines are required to deploy a complete solution for process improvement.
  3. Project Size: Project size is a variable that directly affect the amount of communication, information and skills needed for proper performance. In large projects the software engineering practices become essential to produce work that meets the objectives to meet the requirements, meet the schedule, respecting the project's cost, provide the expected quality and achieve the expected productivity (Goldenson, 2010). In this particular aspect, project planning has a determinant role in regards to the project success.
Project planning done right can bring peace of mind and even outright relief to the most complex projects. On the other hand, project planning done wrong is easy to detect: The weeks and months of delays, a blown budget, angry clients and likely bad ending.

Many things lead to project success and many other leads to failure. Successful project depends on a combination of many variables including practices, experiences, methodologies, internal and external factors, etc. However, we can conclude that among those important variables, appropriate Project Planning is one of the primary indicators for high chances to succeed in a project.

PP Process Area requires excellent forward planning, which includes detailed planning of the process implementation stages, task timeliness, fallback positions, and re-planning. Initial planning is not enough. Projects often take wrong turns, or initial solutions prove unfounded. The project manager who does not prepare to re-plan, or has not considered and planned fall-back positions when initial plans fail, will often find that the project first stalls, and then fails. We must remember that project management is not a straight line process, but an iterative process that requires agile rethinking as the known environment changes before your eyes (Anil, 1991). 

Project failure is preventable with good project planning based on a well-constructed deliverables-based Work Breakdown Structure and proper controls. There may be some casualties along the way, such as some reduction in scope, additional time, and/or additional cost, but with good project planning and timely intervention where required, these can be minimized.

Finally, going formal represent a big step for small companies but is a decision that requires some sacrifices in working time and money. However this should not be an excuse for not taking the advantages of the formal methodologies. Implementing formal project management and proper planning could be a very good first step. After all, small business should ask themselves: How are we going to eat this elephant (CMMI)? The only possible answer is simple: In small bytes! As stated in the Practices topic, start crawling, follow these guidelines and before you know you might be walking.

It is important for a good manager, to be knowledgeable of this techniques and methodologies. Planning ahead is the best medicine. Prevention is the best of all cures.

References

Anil, Iyer and Thomasson, David (1991). “An Empirical Investigation of the Use of Content Analysis to Define the Variables Most Prevalent in Project Successes and Failures”, Proceedings of the 1991 PMI Annual Seminar/Symposium.

Mondragon, O. (2006). “Addressing infrastructure issues in very small settings. In Proceedings of the First International Research Workshop for Process Improvement in small Settings” Software Engineering Institute, Carnegie Melon University.

Goldenson, Dennis Herbsleb, and James (1995). “After the appraisal: A systematic survey of process improvement, its benefits and factors that influence success”. Technical Report CMU/SEI-95-TR-009, ADA302225, Software Engineering Institute, Carnegie Mellon University.

No hay comentarios:

Publicar un comentario