How to write design document? Are you kidding? After all we have had many years experience in design document.
These days I have done some design work for Automatic Claim Handling and Letter.
I reviewed previous design documents and kept thinking what should be putted into the document and what should not.
Actually, I am not alone in this issue. In software community, it’s always a hot controversial topic. Extremely there are two distinct voices.
1. CMM advocators insist on tons of documents including comprehensive design document
2. Some Agile advocators speak out design document is useless and design is dead
Eventually, I find myself at the center of this argument. I am not 空头, I am not 多头,I want to be “滑头”, I always want to be pragmatic.
So what’s a design document for?
Basically it acts as a bridge between business solution and code implementation. Dose the document stuff really help it?
Where the answer is yes, I intend to move forward, where the answer is no, action will end.
Let’s have a look at the advantage and disadvantage of design document.
Advantage:
1. It’s good at describe the whole architecture in high level and lead in a right direction
2. It’s vivid and expressive with many diagram, notation and easy to communicate
3. In interface design, it can be a deliverable contract with outer system
Disadvantage:
1. It’s incline to be out of date
First, it's hard to think through all the issues that you need to deal with when you are programming.
Even we can carry it out with extra effort, it’s impossible even for the most experienced designer to foresee requirement change.
2. It’s hard to verify automatically comparing with unit test
Although UML diagram and notation can decrease the ambiguous, it’s still mainly for human-beings. Document is hard to be synchronized with the implementation.
So my principle is to adopt the strength and avoid the weakness.
1. It can never be too detailed for interface contract design document
2. Design document should clarify the boundary with outer system
3. Design document should express high level concern and main point of business solution
4. Design document should setup common convention and pattern.
5. Design document should not run into implementation detail.
6. Unit test should be involved to help to reflect requirement and design.
Remember, it is better to have few useful design documents that you use and keep up to date than to have many forgotten, obsolete documents.
分享到:
相关推荐
I wanted to focus on the design and writing of real code rather than on how to run a large project. Before beginning to teach, I spent nearly 18 years in the computer industry, working for large and ...
Thoughtworks2017作业-羽毛球馆问题_Thoughtworks-Badminton
ThoughtWorks是一家全球知名的软件开发公司,以其在敏捷开发、精益软件实践和技术创新方面享有盛誉。在"ThoughtWorks-Contractor-Pair-Programming.zip"这个压缩包中,我们可以推测其内容可能与ThoughtWorks的外包...
thoughtworks-伍斌 - 混沌工程与系统稳定性设计模式
ThoughtWorks-数字化转型.rar是一个由全球知名的软件及咨询公司ThoughtWorks精心准备的关于数字化转型的解决方案资料。这个压缩包中包含了一系列的文档和工具,旨在帮助各种规模的组织理解并实施有效的数字化转型...
**前端开源库-thought-plugin-jsdoc** 在前端开发领域,代码文档是项目可维护性和团队协作效率的关键因素。`thought-plugin-jsdoc` 是一个专为前端开发者设计的开源插件,它将`JSDoc`注解整合到`thought`生成的`...
如何选择图表类型是数据分析和可视化的基础技能。合适的图表可以有效地传达数据信息,而不恰当的选择则可能会导致误解或信息丢失。这篇文章为我们提供了一系列图表选择的建议,引导我们根据不同的数据特性及我们要...
On the other hand, if you want to read everything, you can, but the structure of the document has not been thought for such a reading scheme. Depending on your degree of knowledge with LATEX, you can...
ThoughtWorks是一家知名的全球IT咨询公司,以其对技术的深入理解和创新解决方案而闻名。在面试过程中,ThoughtWorks常常会给候选人提出一些具有挑战性的问题,以测试他们的思维能力、问题解决技巧以及编程技能。...
ThoughtWorks是一家全球知名的软件开发公司,以其严格的面试过程和对技术人才的高标准而闻名。"Problem one: Trains"是ThoughtWorks面试中的一个经典问题,它通常被用来测试候选人的逻辑思维、算法理解和编程能力。...
《Thoughtworks:构建精益数据中台,塑造数智化企业》 在当今的数字化时代,企业正在积极寻求转型,以适应快速变化的市场环境。Thoughtworks提出的“建设精益数据中台,打造数智化企业”理念,正是为了解决企业在大...
In this compelling and thought-provoking book, Taylor explores the history and the science of thought control and shows how it still exists all around us, from marketing and television to politics ...
论文《Some Novel Thought Experiments - Foundations of Quantum Mechanics》探讨了几种新颖的思想实验,这些实验旨在深化我们对于量子力学基本原理的理解,并进一步探索量子信息处理的可能性。下面列举了一些关键...
根据给定的文件标题“Thoughtworks-建设精益数据中台,打造数智化企业-2020.pdf”以及描述中的相同内容,我们可以提炼出的关键知识点主要围绕精益数据中台的构建及其对企业数字化转型的影响。虽然提供的部分链接内容...
In the first example, we'll see how to create tests and write the code to make them pass. In the second example we look at mocking, and learn how to use it simulate our hardware. All the tests in ...
《ThoughtWorks:数字化转型的关键要素》 在当前的商业环境中,企业数字化转型已经成为了不可或缺的战略方向。ThoughtWorks的报告深入探讨了这一主题,强调了在数字化转型过程中企业需要关注的核心问题,以及如何...