区块链下的社群与开放的软件生命周期如何结合?



  • 现在很多大学都有一门计算机课程---软件工程,软件工程是一门研究工程化方法构建和维护有效的、实用的和高质量的软件的学科。而在软件工程学科中,更多的从整体阐述是在软件生命周期体系下,在现有的互联网公司和软件公司,软件生命周期是整个公司的部门建立依据,根据不同的生命周期配备不同的人才,使得软件生产过程更集中更高效。从发现问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,都需要对应的人员与系统。

    区块链的发展,开放的社群行为是区块链发展的必备要素,虽然现在联盟链私有链的发展和推进不需要开放的社群,采用传统的软件工程管理与封闭的软件生命周期体系,但是真正的区块链行为必定是开放的、全球性的,那么在软件工程管理也将面临巨大的改革与转变,将不具备中心化集体的软件管理方式,面临着开发任务与开发需求的不确定性,同样软件生命周期的各环节行为都将要发生变化的管理方式。

    封闭的软件生命周期包含以下几个阶段:

    1 需求分析阶段:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,也是整个软件开发过程中不断变化和深入的阶段,能够为整个软件开发项目的成功打下良好的基础。

    2 软件设计阶段:包括概要设计和详细设计,主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。

    3 软件编码阶段:将软件设计的结果转换城计算机可运行的程序代码。在程序编码中必须制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

    4 软件测试阶段:在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。

    4 软件运行和维护阶段:软件生命周期持续时间最长的阶段,包括纠错性维护和改进性维护。

    以上软件生命周期必须具备现成的人员进行对应,该人员通常是招聘形式,发放法币工资,在核心岗位还必须配备期权和股权进行激励。

    传统的开源项目一般是一个idea,在github或者开源svn上提交自己的框架源码,在wiki与论坛宣传自己的想法与工程内容,同样形成了一些约定:

    1 代码的文档一般放哪里了(README.md?或者docs目录)

    2 代码的起名字和目录组织遵循了什么规范

    3 代码如何配置

    4 代码如何build

    程序员或者公司通过对开源代码库的浏览找到自己可用的项目与代码,在感兴趣以及对自己有利的情况下参与到开源项目的贡献中来,这里一般是兴趣或者是该项目对自己有帮助才会参与进行,更多的是修复或者是改善增加新的功能在开源代码上,管理者对代码进行审核测试,合并到代码库中。

    社群性的开源项目,更多的是区块链该如何进行呢?是否和传统的开源项目方式一致?我觉得不是,区块链项目应更带有多个小中心化的利益的开放性开源项目。

    第一:白皮书内容的传播,找到志同道合的社区研发和传播者;

    第二:提交开源的代码框架,并制定全面的需求文档介绍;

    第三:搭建redmine、bugzilla等开源软件工程项目工具;

    第四:搭建社区论坛与提供远程邮件、视频、语音等分布式讨论方式;

    第五:分配任务与社区激励同时进行,进行交叉式可替代式开发人员分配;

    第六:全社区人员激励性测试与公测同时进行;

    第七:迭代模型式的开发方式与全社区需求确认式激励式模型;

    第八:节点确认性版本发布。

    区块链下的社群开放式的项目是整个软件生命周期里最具有挑战也是最具有创新性的和改革性的,不仅仅与传统的开源项目有结合,还与封闭的软件生成方式也有结合,相信在现有的软件工程体系下区块链的出现会带来新的一波软件管理讨论热潮。


Log in to reply