我曾奢侈地设计了多个中等复杂性数据库,所有这些数据库都用于企业中,并具有包括Web,Access和C#在内的各种前端。
通常,我已经坐下来并事先确定了数据库架构。这对我来说总是最有意义的。但是,在任何情况下,我最终都没有做出更改,添加新表或生活在困扰我的方面,并且基本上为时已晚,无法修复。
我认为解决办法不是先编写代码。而且我不认为问题不是“业务需求不足”,或者至少不是一个可以完全解决的问题。用户不知道他们需要什么,我也没有能力使他们更努力地思考,变得更聪明或更清楚,或者更好地回答我的问题。或者他们争论了,我被命令以某种方式做某事。
我构建的系统通常位于从未有人涉足的新领域。我没有从组织,资源或工具上获得支持的能力,一流的设计专业人员的开发团队可以像团队一样获得十倍于我的薪水来完成工作两倍的时间。
我做的很好。但是,只有我一个人在“不做开发”的环境中这样做。
综上所述,我在发现业务规则方面越来越好。我看到了第三种选择:
在设计数据库之前和编写任何代码之前,请绘制粗略的屏幕,以显示应用程序的工作方式。必须手工绘制它们,以防止任何人评论字体,大小或尺寸-您只需要功能。
使用透明胶片和纸片,您可以进出交换,有一个人是计算机,两个是非技术主题专家用户(两个可以大声说出来),而一个人在那里可以做笔记和画画向用户介绍他们的思维过程和困惑。用户“单击”并在框中拖动和写入,“计算机”更新屏幕,每个人都可以体验设计。您将学习到开发过程很久以前否则还不会学到的东西。
也许我在矛盾自己-也许这是更好的需求发现。但想法是先设计应用程序,而无需编写任何代码。我已经开始从小规模开始这样做,并且正在工作!尽管我的环境存在问题,但它可以帮助我从一开始就更好地设计数据库。我了解到列必须移入新的父表,因为存在多种类型。我了解到工作清单必须具有不来自集成订单系统的常规订单。我学到各种各样的东西!
我认为这是一个巨大的胜利。