【软考论文】论敏捷开发方法及应用

【软考论文】论敏捷开发方法及应用

2021年初,我所在的研发部承担了公司自研XXXX管理平台项目的建设,为客户公司提供一站式的股权管理服务。我在该项目中中承担架构设计师的职务,主要负责该项目的系统架构、技术方案评估与实现、项目立项论证等工作。平台为上市公司提供资金管理、财富管理、税务服务等一站式XXXX相关服务的支持,涵盖股权管理、估值管理、多样化激励方案信息化管理、税务与财务咨询服务及系统个性化定制服务等。

摘要

2021年初,我所在的研发部承担了公司自研XXXX管理平台项目的建设,为客户公司提供一站式的股权管理服务。我在该项目中中承担架构设计师的职务,主要负责该项目的系统架构、技术方案评估与实现、项目立项论证等工作。平台为上市公司提供资金管理、财富管理、税务服务等一站式XXXX相关服务的支持,涵盖股权管理、估值管理、多样化激励方案信息化管理、税务与财务咨询服务及系统个性化定制服务等。

本文以该项目建设为例,讨论了敏捷开发关键特点和原则、在本系统中的具体应用以及遇到的问题和解决方案。项目于2021年11月顺利通过验收上线运行,已稳定运行2年多的时间,获得用户一致好评。

正文

国务院发布的《关于支持浙江高质量发展建设共同富裕示范区的意见》中提到了浙江到2025年和2035年要实现的共同富裕相关目标。越来越多的上市企业选择对员工开展XXXX计划。我所在的某集团公司,为了集团的发展,需要在XXXX相关服务这一赛道上保持竞争力,根据这一目标,XXXX管理平台这一项目应运而生。2021年初,我所在的研发部承担了公司自研XXXX管理平台项目的建设,为客户公司提供一站式的股权管理服务。我在该项目中中承担系统分析师的职务,主要负责该项目的系统分析和设计工作。整个平台为上市公司提供资金管理、财富管理、税务服务等一站式XXXX相关服务的支持,涵盖股权管理、估值管理、多样化激励方案信息化管理、税务与财务咨询服务及系统个性化定制服务等,更高效、更便捷地为企业客户提供“一篮子”金融解决方案。整个平台涉及证券、税务、银行、电子签署等过个复杂业务逻辑,业务流程复杂、系统可靠性和可扩展性要求较高,影像的范围比较广。整个平台以多租户的模式,进行统一的管理及日常运营,通过组织机构管理提供给上市公司进行业务的管理和服务。

敏捷开发是一种与传统的瀑布式开发模式不同的软件开发方法,它更加重视团队之间的沟通和合作,以及能够灵活地适应需求的变化。敏捷开发的核心在于高效地交付高质量的软件产品。敏捷开发的关键特点和原则可以概括为以下几点。迭代开发:在敏捷开发中,项目不是一次性完成,而是被分解成多个短周期的迭代。每个迭代都是一个完整的开发周期,团队在这个周期内完成一定的功能,并交付一个可工作的软件版本。持续集成:为了确保软件的稳定性和可靠性,敏捷开发强调频繁地集成代码。这意味着开发人员需要定期将他们的代码合并到主分支中,以便及时发现潜在的冲突和问题。自组织团队:敏捷开发鼓励团队自主决策和自我管理。团队成员共同承担项目的责责任,共同解决问题,而不是依赖外部的指导和管理。客户参与:在敏捷开发过程中,客户的参与是至关重要的。客户不仅是需求的来源,也是项目的合作伙伴。他们积极参与项目的各个阶段,提供及时的反馈,确保软件产品能够满足他们的需求和期望。快速反馈:通过持续交付、快速迭代和及时反馈,敏捷开发能够快速发现和解决问题。这种快速反馈机制有助于提高软件的质量,同时也能够及时调整项目的方向,以满足客户的变化需求。变化接受:在敏捷开发中,变化被视为常态。团队需要接受需求的变化,灵活应对变化,以满足客户需求的变化和不确定性。

在公司技术顾问的建议下,我们决定采用Scrum敏捷开发方法来建设此项目。Scrum敏捷开发流程包括需求收集与梳理、迭代规划、迭代开发、Sprint评审及开回顾会议等几个步骤,本文着重从需求收集与梳理、迭代规划、迭代开发、Sprint评审几个阶段论述Scrum敏捷开发方法在项目中的具体应用、 遇到的问题和解决方案。

在需求收集与梳理阶段,我们必须迅速而有效地全面掌握客户需求。为了高效地进行需求收集,我们将团队划分为若干专门小组,每个小组负责研究不同的领域,如股权、税务、协议等。在梳理股权管理的需求时,对于XXXX计划执行过程中如何进行激励计划窗口期的管理、参与方的行权和解禁处理等流程不是很清晰,所以我们选择了现场观摩和沟通的方式进行需求收集。我们首先选取了几家具有代表性公司作为重点研究对象,并逐步扩大研究范围。通过深入访谈这些公司的董事会秘书和业务人员,我们全面了解了XXXX管理系统的核心功能以及激励计划执行过程中各个阶段的用户活动。我们明确了系统需要包含两个端口:一个供管理员使用,另一个供员工使用;同时,我们规划了多种角色,以控制在XXXX计划执行过程中的不同业务逻辑。此外,为了快速收集XXXX方案实施过程中的具体业务流程信息,我们设计了调查问卷,并在客户公司的证券代表、财务等相关人员的帮助下,将这些问卷发放给了相关员工。在收集到的数据经过整理后,我们与客户公司的骨干员工再次进行了需求细节的沟通和确认。随着需求分析进入后期阶段,我们已经基本完成了大部分业务需求的收集工作。

在迭代规划阶段,团队通过精心组织的Sprint计划会议,团队成员一致同意将每个Sprint周期设定为4周的时间,这样的安排旨在保证团队有足够的时间来专注于当前Sprint的目标,同时也能够保持快速的反应能力和灵活性,以适应可能出现的任何变化或新的要求。在确定了Sprint周期的持续时间之后,团队接着对项目中的各项需求进行了详细的分析和讨论。根据需求的紧迫性、重要性以及对整个项目进度的影响,对每个需求点进行了优先级排序。例如,公司XXXX计划信息管理、参与方管理等功能优先级最高,电子协议线上签署的优先级其次,消息通知的优先级最低。在对所有需求进行优先级排序后,团队明确了第一个Sprint需要完成的具体任务和目标。这些任务和目标是基于最高优先级的需求点来确定的,确保了团队能够在第一个Sprint周期内取得实质性的进展。

在迭代开发阶段,我们团队不仅致力于完成既定的迭代任务和进行相应的测试工作,还注重团队间的沟通与协作。我们还会举行每日站会,旨在分享每位团队成员的工作进度和遇到的挑战。此外,我们还实施代码审查流程,确保编写的代码符合既定标准,并及时识别出潜在的问题。例如,在研发测试过程中,我们发现当系统需要批量处理电子协议签署和发送消息时,由于服务层处理逻辑的执行速度较慢,用户界面的响应时间被不必要地延长了。为了解决这个问题,我们将其记录在产品待办列表(backlog)中,并在下一个Sprint的开发周期中,对电子协议签署和消息推送模块进行了优化。我们引入了消息队列机制来进行异步处理,这样用户界面就不再需要等待服务层的处理结果,从而显著缩短了用户的等待时间。

在每个迭代周期的收尾阶段,团队都会召开一次回顾会议。这场会议的宗旨是审视和总结刚刚完成的迭代过程中的经验教训,以促进持续改进。团队成员会深入讨论本次迭代期间遇到的挑战。这些挑战可能包括技术上的难题、项目管理上的问题,以及团队协作方面的障碍。例如,在一次会议中,测试人员指出了一个问题:由于开发人员对系统单元测试的投入不足,导致提交给测试的代码中存在较多问题,这不仅加大了测试人员的工作量,还延误了项目进度。针对这一反馈,开发团队回应称,他们之所以没有充分进行单元测试,是因为任务繁重,开发时间紧迫。为了解决这一问题,项目经理引导团队重新评估了各个需求点的工作量,并据此调整了任务计划。这样的调整确保了开发人员有足够的时间进行开发和单元测试,从而保障了项目的质量。通过这种持续的反思和调整,团队能够更有效地应对挑战,提升工作效率,确保项目的顺利进行。

2021年11月,ESOP系统正式上线运行,至今已稳定运行了2年多的时间,系统平稳经历了访问量大增、紧急客户公司接入等复杂运维状况。在使用中系统也出现了一些问题,比如线上电子协议的签署功能,短时间内大量用户完成了电子签署操作,导致电子签署模块中所有实例全部宕机。这是由于在可靠性方面的需求分析不够周全,系统没有进行充分的容错设计。我们引入心跳机制、快照回滚机制,使签署服务宕机时能够在 10 秒内自动重置恢复运行,最终解决了该问题。实践证明,XXXX管理系统项目能够顺利上线,并且稳定运行,与系统采用了合适的设计方法密不可分。经过这次基于Scrum敏捷开发方法的应用效果后,我也看到了自己身上的不足之处,在未来还会不断地更新知识,完善本系统在各方面的设计,使整个系统能够更加好用。

【软考论文】论敏捷开发方法及应用

https://www.shuiwh.com/posts/learn-ruankao-008/

作者

水无痕

发布于

2025-07-12

更新于

2025-07-19

许可协议