top of page
  • Writer's pictureNoorcon

Software Metrics - Manager's Perspectives



Even in the absence of project troubles, measurement serves not only as a valuable tool but also as an imperative one. After all, how can one gauge the well-being of a project without any metrics to assess its status?


Hence, measurement becomes indispensable, particularly for evaluating the progress of projects, the quality of products, the efficiency of processes, and the allocation of resources. Given the unpredictability that can sometimes disrupt projects, it becomes paramount to measure and document both the attributes of successful projects and those of less fortunate ones.


We must diligently capture trends, quantify the corrective actions taken, and note the resultant transformations. In essence, our approach should involve project control, not merely project execution.


Manager's Perspective


From a manager's perspective in software development, several key questions revolve around efficiency, productivity, quality, customer satisfaction, and continuous improvement. Here are some questions:


  1. What does each process cost?

  2. How productive is the staff?

  3. How good is the code being developed?

  4. Will the user be satisfied with the product?

  5. How can we improve?


What does each process cost?


Managers are interested in understanding the financial aspects of the software development process. They want to know the costs associated with each phase, from planning and design to development, testing, and maintenance.


Here are a few examples:

  • Cost Breakdown: To understand the cost of each process, you dissect the project into discrete activities such as requirement elicitation, system specification, system design, coding, and testing.

  • Resource Allocation: You can then allocate resources, both human and financial, to each of these activities. This includes calculating the salaries of team members involved, the cost of tools and equipment used, and any other direct and indirect costs.

  • Total Project Cost: Summing up the costs of all these activities provides you with the total project cost. This is crucial for budgeting and ensuring that the project remains within budgetary constraints.

  • Cost Contribution: By analyzing the cost of each activity, you can identify which parts of the project are the most resource-intensive. This insight can help you prioritize efforts and resources effectively.


How productive is the staff?


Managers want to measure the productivity of their development teams. They might ask questions like: Are teams delivering code on schedule? Are they meeting project milestones? Are they efficiently utilizing their time and resources?


Here are a few examples:

  • Activity Measurement: You can measure the time it takes for staff to perform specific activities in the software development process, such as specifying the system, designing it, coding it, and testing it.

  • Output Measurement: Concurrently, you can measure the size or volume of the deliverables associated with each activity. For example, you can quantify the size of specifications, design documents, lines of code written, and the scope of test plans.

  • Productivity Calculations: By dividing the size of the output by the time and effort expended, you can calculate productivity metrics for each activity. These metrics could be expressed as lines of code per hour, design documents per week, or test cases per day.

  • Change Impact Assessment: When changes or modifications are proposed during the project, managers can utilize the productivity figures to estimate the potential impact of these changes. For instance, you can estimate how long it will take to implement a change based on the staff's productivity rate for coding and testing.


How good is the code being developed?


Assessing code quality is crucial. Managers are concerned with questions such as: Is the code maintainable? Does it adhere to coding standards and best practices? Is it free from critical defects and vulnerabilities?


Here are a few examples:


  • Maintainability: Managers want to ensure that the codebase is maintainable over time. They may ask questions such as: Is the code well-structured and organized? Is it easy to understand and modify? Are there clear comments and documentation to aid future developers?

  • Coding Standards: Coding standards and best practices exist to promote consistency and readability in the code. Managers may inquire: Is the code consistent with the organization's coding standards? Are naming conventions followed? Are coding guidelines for error handling and exception handling adhered to?

  • Performance: Code should be efficient and not introduce unnecessary bottlenecks. Managers might question: Does the code meet performance expectations? Are there any performance bottlenecks or areas where optimization is needed?

  • Testing and Quality Assurance: Managers are concerned with whether the code has been thoroughly tested to identify and address defects. Has the code undergone rigorous testing, including unit testing, integration testing, and system testing? Are there documented test cases and test coverage reports? What is the defect density in the code, and how is it being managed?


Will the user be satisfied with the product?


Ultimately, customer satisfaction is a key metric. Managers want to know if the software being developed aligns with user expectations. They might inquire about user feedback, the software's usability, and whether it meets the desired functionality.


Functionality Assessment: This involves evaluating whether all the specified requirements have been implemented correctly and comprehensively. Questions to consider include: Have all requested features and functionalities been delivered? Are there any missing or incomplete features compared to the initial requirements?


Usability Assessment: Usability directly impacts user satisfaction. It involves assessing how easily users can interact with and navigate through the software. Questions include: Is the user interface intuitive and user-friendly? Are users able to complete tasks efficiently and with minimal errors? Do users encounter frustration or confusion while using the software?


Reliability Measurement: Reliability is crucial for user satisfaction, as users expect software to work consistently without unexpected crashes or errors. Questions to consider include: Does the software operate reliably without frequent crashes or failures? Are there any known issues or defects that affect reliability?


Error Rate and Defect Analysis: A high error rate or frequent defects can frustrate users and reduce satisfaction. Questions to consider include: Are users encountering a high number of errors or issues while using the software? How quickly are defects identified and resolved?


How can we improve?


Continuous improvement is a central concern. Managers seek answers on how to enhance processes, reduce development time, minimize defects, and increase overall efficiency. They may ask for recommendations and insights on areas that need enhancement.


Here are some examples:


  • Measure Development Activities: Start by measuring the time it takes to complete each major development activity, such as requirements gathering, design, coding, testing, and deployment. This data provides a baseline for your analysis.

  • Assess Impact on Quality and Productivity: Evaluate the impact of each activity on both software quality and productivity. Consider metrics related to defects, code quality, user satisfaction, and project timelines.

  • Prioritize Improvement Areas: Based on your cost-benefit analysis, prioritize the areas or practices that offer the most significant potential for improvement. Focus on those where the benefits clearly outweigh the costs.

  • Knowledge Sharing: Encourage knowledge sharing and collaboration among team members. Share findings and best practices to ensure that everyone benefits from the improvements.

  • Feedback Loops: Establish feedback loops with team members, stakeholders, and end-users. Gather input on the effectiveness of the implemented improvements and make adjustments accordingly.

  • Continuous Learning: Stay informed about emerging trends, technologies, and industry best practices. Incorporate new knowledge into your improvement efforts.


Different stakeholders within an organization may focus on specific perspectives depending on their roles and objectives. Effective software metric selection should align with the goals and priorities of each perspective to drive informed decision-making and continuous improvement in software development and maintenance processes.


In the next article we will look at what Software Metrics mean from a Developer's Perspective.


In the meantime check out the first article for Software Metrics:


You might also be interested in the following articles discussing Software Architecture:

8 views0 comments

Comentários


bottom of page