2026/2027




Методы и средства коллективной разработки
Статус:
Маго-лего
Где читается:
Факультет социально-экономических и компьютерных наук
Охват аудитории:
для своего кампуса
Преподаватели:
Михайлов Александр Витальевич
Язык:
русский
Кредиты:
3
Контактные часы:
24
Программа дисциплины
Аннотация
The course introduces students to methods and tools for the collaborative development and maintenance of software systems in an industrial setting. Its objective is to develop practical teamwork skills through group academic projects, business simulations, and work with a software product as an object of maintenance and evolution (source code, project documentation, requirements, and software engineering process work products).
The course builds on content from preceding program modules and focuses on the operational context and tools of day-to-day team work: issue tracking, knowledge bases, version control, continuous integration and delivery, containerization, and observability. Particular attention is given to the analyst's role: defining and managing work items, documenting and aligning requirements, participating in code review, and using monitoring and log data to create follow-up work items.
Laboratory sessions are organized as an end-to-end academic project on GitHub: project teams take over an operational software product, establish a collaborative working environment within an assigned domain, and present their results at a final defense. The practicum uses GitHub (Issues, Projects, Wiki, Actions, GitHub Container Registry) and a teaching environment (VictoriaMetrics, Victoria Logs, Grafana).
Цель освоения дисциплины
- development of systematic knowledge of methods and tools for the collaborative development and maintenance of software systems in an industrial team (participant roles, life cycle, process work products)
- development of skills in organizing day-to-day team work: work item tracking and execution, defect triage, knowledge base maintenance, requirements management, and traceability among documentation, work items, and source code
- development of practical skills in collaborative development using version control systems: recording and integrating changes through pull requests, code review, and alignment with requirements
- development of skills in development process automation (continuous integration and delivery, build and test pipelines, containerization and deployment) and in using observability data to detect problems and create work items during product maintenance
Планируемые результаты обучения
- A student knows the roles of participants in the software development process and the types of work products in a development team.
- A student is able to organize work item tracking and execution in an issue tracking system, distinguishing project and operational work.
- A student is able to triage work items and defects, clarify requirements, and maintain operational documentation in issues.
- A student is able to manage requirements in the team knowledge base, ensuring traceability among documentation, work items, and source code.
- A student knows the principles of source code version management and collaborative work through a repository on a Git-based hosting platform.
- A student is able to use the Git version control system to commit changes, branch, and merge, linking changes to work items and requirements.
- A student is able to create pull requests, participate in code review, and align changes with requirements when integrating them into the shared codebase.
- A student knows the foundations of continuous integration and continuous delivery, the purpose of development pipelines, and runtime environments.
- A student is able to configure build and test automation workflows triggered by source code changes.
- A student is able to deploy a software product using containerization (Docker) and publish images to a container registry.
- A student is able to use observability data (monitoring, logs) to detect system problems and create work items for the team.
Содержание учебной дисциплины
- Section 1. Team Work Management and Project Knowledge
- Section 2. Collaborative Development with Version Control Systems
- Section 3. Development Process Automation
Элементы контроля
- seminar assignmentsLaboratory sessions are organized as an end-to-end academic project on GitHub. All changes are recorded in the repository; assessment is based on artifacts and GitHub history (Issues, Pull Requests, Wiki, Actions, commits). Scenario: students act as a project team in an IT company that has won a tender for an operational software product (source code and a deployed environment) to maintain and evolve. Each team's task is to establish a collaborative working environment: work item management, a knowledge base, a change process, build and delivery automation, monitoring, and feedback into the team's workflow. One academic product is shared by several teams; each team is responsible for its own domain or subsystem (the exact split is defined after the product is selected). Seminars 1–5: the instructor demonstrates practical application of the lecture material; the group completes an incremental assignment in the GitHub project before the next seminar.
- end-to-end projectThe end-to-end academic project links Seminars 1–5 into a single chain of team work on GitHub. Teams take over an operational software product, are responsible for their domain in a shared repository, and step by step build a maintenance and evolution environment: work item tracking and team regulations, operational work and triage, as-is / to-be documentation and requirements, changes through pull requests and review, build automation, containerization, deployment on the teaching environment, and monitoring. Each seminar adds an increment; results are recorded in GitHub artifacts (Issues, Projects, Wiki, Actions, pull requests, commits). Seminars 1–5 are assessed against milestones 1–5. Seminar 6 is the final project defense: the team presents accumulated results, a report covering milestones 1–5, and each member's contribution. Platform: GitHub (Issues, Projects, Wiki, Actions, GitHub Container Registry) and the teaching environment (VictoriaMetrics, Victoria Logs, Grafana). Each team presents outcomes for its domain and its contribution to the shared product maintenance environment. Every group member delivers part of the presentation (division of topics — as agreed within the team). Defense format: - presentation and Q&A (approximately 10–15 minutes per team + questions); - live demonstration of the environment and Grafana is not required; links and materials in the report are sufficient; - required: presentation, report in project documentation, participation of all students in the presentation.
Список литературы
Рекомендуемая основная литература
- Continuous integration : improving software quality and reducing risk, Duvall, P. M., 2007
- Effective software project management, Wysocki, R. K., 2006
- Git pocket guide, Silverman, R. E., 2013
- Malheiro, A. (2018). Handbook of Research on Knowledge Management for Contemporary Business Environments. Hershey, PA: Business Science Reference. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1803009
- Managed Software Evolution. (2019). Springer International Publishing. https://doi.org/10.1007/978-3-030-13499-0
- Mark Richards, & Neal Ford. (2019). Fundamentals of Software Architecture : An Engineering Approach. O’Reilly Media.
- Mikael Krief. (2019). Learning DevOps : The Complete Guide to Accelerate Collaboration with Jenkins, Kubernetes, Terraform and Azure DevOps. Birmingham: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=2284100
- Milton, N. J., & Lambe, P. (2020). The Knowledge Manager’s Handbook : A Step-by-Step Guide to Embedding Effective Knowledge Management in Your Organization: Vol. Second edition. Kogan Page.
- Nigel Poulton. (2020). Docker Deep Dive : Harness the Full Potential of Your Applications with Docker. Packt Publishing.
- Scott Chacon, & Ben Straub. (2014). Pro Git (Second Edition). Web server without geographic relation, Web server without geographic relation (org): Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.E86D0407
- Software engineering : a practitioner's approach, Pressman, R. S., 2020
- Somasundaram, R., & Ebooks Corporation. (2013). Git : Version Control for Everyone: the Non-coder’s Guide for Everyday Version Control for Increased Efficiency and Productivity: Beginner’s Guide. Birmingham: Packt Publishing. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=533211
Рекомендуемая дополнительная литература
- Achilleas Pipinellis. (2018). GitHub Essentials : Unleash the Power of Collaborative Development Workflows Using GitHub, 2nd Edition: Vol. Second edition. Packt Publishing.
- Humble, J., & Farley, D. (2011). Continuous Delivery : Reliable Software Releases Through Build, Test, and Deployment Automation. Upper Saddle River, NJ: Addison-Wesley Professional. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1599336
- VRANDEČIĆ, D., & KRÖTZSCH, M. (2014). Wikidata: A Free Collaborative Knowledgebase. Communications of the ACM, 57(10), 78–85. https://doi.org/10.1145/2629489