Персональный процесс разработки программного обеспечения (PSP) для повышения качества кода.
Personal software process
Улучшение качества кода с PSP: личный процесс разработки ПО для отслеживания, планирования и повышения эффективности. Анализ дефектов и времени разработки.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Процесс улучшения качества программирования
Process to improve programming quality
Персональный процесс разработки программного обеспечения (PSP) — это структурированный процесс разработки программного обеспечения, предназначенный для того, чтобы помочь инженерам-программистам лучше понимать и повышать свою эффективность, внедряя дисциплину в процесс разработки и отслеживая прогнозируемые и фактические результаты кодирования. Он наглядно демонстрирует разработчикам, как управлять качеством своих продуктов, составлять обоснованные планы и брать на себя обязательства. PSP также предоставляет данные для подтверждения этих планов. Разработчики могут оценивать свою работу и определять направления для улучшения, анализируя и рассматривая время разработки, количество дефектов и объём кода. PSP был разработан Уоттсом Хамфри для применения базовых принципов модели зрелости возможностей (CMM) Института программной инженерии (SEI) к практике разработки программного обеспечения отдельным разработчиком. Он позволяет инженерам-программистам приобрести навыки, необходимые для работы в команде, использующей командный процесс разработки программного обеспечения (TSP). "Personal Software Process" и "PSP" являются зарегистрированными товарными знаками Университета Карнеги — Меллона.
The Personal Software Process (PSP) is a structured software development process that is designed to help software engineers better understand and improve their performance by bringing discipline to the way they develop software and tracking their predicted and actual development of the code. It clearly shows developers how to manage the quality of their products, how to make a sound plan, and how to make commitments. It also offers them the data to justify their plans. They can evaluate their work and suggest improvement direction by analyzing and reviewing development time, defects, and size data. The PSP was created by Watts Humphrey to apply the underlying principles of the Software Engineering Institute's (SEI) Capability Maturity Model (CMM) to the software development practices of a single developer. It claims to give software engineers the process skills necessary to work on a team software process (TSP) team. "Personal Software Process" and "PSP" are registered service marks of the Carnegie Mellon University.
Цели
PSP направлена на предоставление инженерам-программистам структурированных методов для совершенствования их личных процессов разработки программного обеспечения. PSP помогает инженерам-программистам:
The PSP aims to provide software engineers with disciplined methods for improving personal software development processes. The PSP helps software engineers to:
Совершенствовать навыки оценки и планирования. Выполнять взятые на себя обязательства. Управлять качеством своих проектов. Снижать количество дефектов в своей работе.
Improve their estimating and planning skills. Make commitments they can keep. Manage the quality of their projects. Reduce the number of defects in their work.
Планирование и отслеживание
Регистрация данных о времени, дефектах и объеме является важной частью планирования и отслеживания проектов PSP, так как исторические данные используются для повышения точности прогнозирования. PSP использует метод PROBE (PROxy Based Estimation – оценка на основе прокси) для улучшения навыков прогнозирования разработчиков и более точного планирования проектов. Для отслеживания хода проектов PSP использует метод оценки по заработанной стоимости. PSP также применяет статистические методы, такие как корреляция, линейная регрессия и стандартное отклонение, для преобразования данных в полезную информацию, позволяющую улучшить прогнозирование, планирование и качество. Эти статистические формулы рассчитываются инструментом PSP.
Logging time, defect, and size data is an essential part of planning and tracking PSP projects, as historical data is used to improve estimating accuracy. The PSP uses the PROxy Based Estimation (PROBE) method to improve a developer's estimating skills for more accurate project planning. For project tracking, the PSP uses the earned value method. The PSP also uses statistical techniques, such as correlation, linear regression, and standard deviation, to translate data into useful information for improving estimating, planning and quality. These statistical formulas are calculated by the PSP tool.
Использование ПСП
PSP предназначен для помощи разработчику в совершенствовании его личного процесса; следовательно, от разработчиков PSP ожидается дальнейшая адаптация процесса для обеспечения соответствия их индивидуальным потребностям.
The PSP is intended to help a developer improve their personal process; therefore PSP developers are expected to continue adapting the process to ensure it meets their personal needs.
PSP и TSP
На практике навыки ПСП применяются в командной среде ТСП. Команды ТСП состоят из разработчиков, прошедших обучение ПСП, которые добровольно берут на себя ответственность за отдельные области проекта, благодаря чему проект управляется самой командой. Используя персональные данные, собранные с помощью навыков ПСП, команда разрабатывает планы, составляет сметы и контролирует качество. Применение методов процесса ПСП помогает командам ТСП выполнять свои обязательства по срокам и создавать высококачественное программное обеспечение. Например, согласно исследованиям Уоттса Хамфри, треть всех программных проектов заканчивается неудачей, однако исследование SEI, охватившее 20 проектов ТСП в 13 различных организациях, показало, что команды ТСП в среднем отставали от запланированных сроков лишь на шесть процентов. Успешное соблюдение сроков можно объяснить использованием исторических данных для более точных оценок, что позволяет разрабатывать проекты на основе реалистичных планов, а также применением методов контроля качества ПСП, благодаря которым создается программное обеспечение с низким количеством дефектов, что сокращает время, затрачиваемое на их устранение на более поздних этапах, таких как интеграция и приемочное тестирование.
In practice, PSP skills are used in a TSP team environment. TSP teams consist of PSP trained developers who volunteer for areas of project responsibility, so the project is managed by the team itself. Using personal data gathered using their PSP skills; the team makes the plans, the estimates, and controls the quality. Using PSP process methods can help TSP teams to meet their schedule commitments and produce high quality software. For example, according to research by Watts Humphrey, a third of all software projects fail, but an SEI study on 20 TSP projects in 13 different organizations found that TSP teams missed their target schedules by an average of only six percent. Successfully meeting schedule commitments can be attributed to using historical data to make more accurate estimates, so projects are based on realistic plans – and by using PSP quality methods, they produce low defect software, which reduces time spent on removing defects in later phases, such as integration and acceptance testing.
PSP и другие методологии
PSP – это индивидуальный процесс, который можно адаптировать к потребностям конкретного разработчика. Он не привязан к какой-либо методологии программирования или проектирования и, следовательно, может использоваться с различными методологиями, включая гибкую разработку программного обеспечения (Agile). Методы разработки программного обеспечения могут варьироваться от предсказуемых до адаптивных. PSP является предсказуемой методологией, а Agile – адаптивной, но, несмотря на эти различия, TSP/PSP и Agile разделяют ряд концепций и подходов, особенно в отношении организации команды. Обе методологии позволяют команде:
The PSP is a personal process that can be adapted to suit the needs of the individual developer. It is not specific to any programming or design methodology; therefore it can be used with different methodologies, including Agile software development. Software engineering methods can be considered to vary from predictive through adaptive. The PSP is a predictive methodology, and Agile is considered adaptive, but despite their differences, the TSP/PSP and Agile share several concepts and approaches – particularly in regard to team organization. They both enable the team to:
Определять свои цели и стандарты. Оценивать объём работы и составлять график. Разрабатывать реалистичные и достижимые планы-графики. Планировать и совершенствовать процессы. И Agile, и TSP/PSP основаны на идее о том, что члены команды несут ответственность за свою работу и совместно согласовывают реалистичный план, создавая атмосферу доверия и ответственности. Однако TSP/PSP отличается от Agile акцентом на документирование процесса и использованием данных для прогнозирования и определения сроков проекта.
Define their goals and standards. Estimate and schedule the work. Determine realistic and attainable schedules. Make plans and process improvements. Both Agile and the TSP/PSP share the idea of team members taking responsibility for their own work and working together to agree on a realistic plan, creating an environment of trust and accountability. However, the TSP/PSP differs from Agile in its emphasis on documenting the process and its use of data for predicting and defining project schedules.
Сертификация
Сертификация по PSP предлагается SEI при Университете Карнеги-Меллона. Чтобы стать сертифицированным разработчиком PSP от SEI, необходимо: изучить PSP; сдать сертификационный экзамен; поддерживать свою квалификацию. Экзамен для разработчиков PSP основан на концепциях, изложенных в Базе знаний PSP. SEI поддерживает раздел часто задаваемых вопросов (FAQ) по сертификации.
A certification covering PSP is offered by the SEI at Carnegie Mellon University. The steps to becoming an SEI Certified PSP Developer are: learn the PSP; take the certification exam; maintain credentials. The PSP Developer examination is based on concepts found in the PSP Body of Knowledge. The SEI maintains an FAQ on certification.