[Chatter] 引用新技术的考虑

新技术不是不能用,而是堆了新技术,接手的人就要学会这些。

这边对于新技术的定义,是很广泛的定义为系统中没有使用过的技术。在系统一开始的时候,技术需求就是一片空白,后续设计的时候,每次加入的没有用过的技术,都需要去考虑是否有延续性、是否要定义为基础技术...等等考虑。大一点就像是要不要使用Design Patterns、DDD、TDD,或是MVVM要不要用、ASP.NET MVC不错要不要推。小一点的就像是版本控管要用哪种、版本分支、合并的策略是甚么。这些都是需要依照目前团队、未来目标等等方面去考虑。

每个系统都有隐藏的项目天赋表,天赋就是系统里的技术,开发人员点满天赋才能吃透系统。
--以开发人员的角度来说,自己天赋当然是越多越好,并且也比较有趣。
--但开发管理的角度来说,项目天赋表越多,就代表替补人力需要更高的等级。
这是设计上需要取舍的点,并且很难取到平衡......

而如果单纯从系统设计的角度来看这个议题。我目前是试着采取,透过系统架构层级去切割不同等级的区块,并且为每个区块的关键技术建立可延伸的框架、样版,这样两种方式来处理。

--例如说:将系统切割为N层,后三层需要多线程设计、前两层只需要单线程设计、额外一层需要Web开发。透过这样的方式,就可以概略的依照开发人员的技能等级来分配人力。

--例如说:先前写过的 MVVM Plugin模式、Device Projection模式,就分别为表示层、通讯层定义了关键的样板技术。透过这样的方式,后续替补人力等级低的时候,就先照着样板直接开发系统,透过使用、学习样板慢慢提高技能等级,进而设计样版、设计系统。

这是还在摸索中的做法,团队也都是不超过10人的小团队,一时还看不出大问题,等哪天爆炸了再看看怎么调整吧。Orz


原文地址:https://www.cnblogs.com/clark159/p/3091962.html