Armour君,1972年取得Sheffield大学物理学与纯数学本科学位(BSc),40多年软件开发经验,于Corvus国际任职25年。2000年起,在《ACM通讯》撰写“软件商务”专栏。
2003年于Auerbach会议发表“The laws of Software Process”。
https://www.researchgate.net/profile/Phillip_Armour
《五阶无知》说链接:https://www.researchgate.net/publication/27293624_The_Five_Orders_of_Ignorance
软件的本质,是业务知识的可执行形式,是知识的载体。
通过Hacking获取业务知识,整理到位后,重建软件实体不难。
获取业务知识的过程,就是消除无知的过程,理解无知的五个级别,有助于清醒认知项目的难度和工作的复杂性。
- 0阶无知:已知问题、已知解答;
- 1阶无知:已知问题、未知解答;
- 2阶无知:不知问题所在;
- 3阶无知:没有建立合适的过程去发现问题所在;
- 4阶无知:不懂得无知有多个阶数。
Hacking是一种有效的知识发现实践(过程)。致力于开发“有用的软件”,注意经常检验和确认,及时作出调整(纠偏),就可以逐步发现问题所在,并得到正确的解答。
2阶无知要通过开放的活动来探索。要尊重探索活动的性质,不可强调计划(削足适履)。
过程、计划只适用于已知的问题。
规范的软件工程过程,有助于发现问题所在。解答问题是另一回事:需要求助领域知识而非软件工程方面的工具。