首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >非编程软件开发可行吗?

非编程软件开发可行吗?
EN

Stack Overflow用户
提问于 2010-07-12 08:11:52
回答 9查看 1.8K关注 0票数 54

我目前正面临着一个非常不寻常的设计问题,希望一个比我更聪明的开发人员能够提供一些见解。

背景

不是很具体,我受雇于一家非营利性组织,帮助他们的遗产重新开发,但非常有价值(就社会价值而言)。开发团队不同于我在担任软件开发人员期间遇到的任何团队,它由少量开发人员和大量非编程领域专家组成。这种安排的不同寻常之处在于,领域专家(让我们称他们为内容创建者)使用定制工具,其中一些基于prolog专家系统引擎,来开发基于web的软件组件/表单。

问题所在

系统使用非常笨拙的回发模型来执行逻辑操作,服务器端并返回新的表单/结果。它速度很慢,而且容易失败。简单的事情,比如使用现有的工具创建html表单,比它应该做的要困难得多。随着对更具交互性和更高性能体验的需求的增长,软件开发者越来越发现,他们必须绕过由内容创建者使用的专家系统/可视化工具,并且用javascript手工编写新的组件。内容创建者越来越觉得自己束手无策,因为他们现在无法贡献新的组件。

设计方法:传统/典型

我一直主张完全放弃以前的模型,采用典型的软件开发过程。正如前面提到的,由于非编程开发工具已经不能满足业务需求,项目自然朝着这个方向发展。

然而,内容创建者有一个非常有价值的贡献,我希望看到他们专注于使用Cucumber等工具正式指定软件的预期行为,而不是参与实现。

设计方法:非程序化

我的同事,我非常尊敬他,我怀疑他比我知识丰富得多,他觉得现有的流程很好,我们只需要构建更好的工具。然而,我不禁觉得这种方法存在一些根本性的缺陷。我还没有找到一个例子,无论是在历史上还是在当代,这种软件开发模型都是成功的。COBOL的开发理念是允许业务人员/领域专家在不需要程序员的情况下编写应用程序,在我看来,所有这些都创造了一种新的程序员- COBOL程序员。如果有可能开发有效的系统,允许非程序员创建非平凡的应用程序,那么对程序员的需求肯定会低得多?据我所知,只有SAP的Smart Forms和Microsoft的Dynamix AX大致符合这种模型-这两个框架都是非常特定于领域的ERP系统。

DSL,模板语言

这两个概念之间的某种折衷方案是将某种DSL实现为模板语言。然而,我甚至不确定这是否会成功,因为所有的内容创建者,除了一个例外,都是完全非技术性的。

我还考虑过使用图形化/工具箱风格的工具,基于Visual Studio或Net Beans构建自定义IDE。

有什么想法?

非程序化开发是愚蠢的差事吗?这是否总是会导致一些不令人满意的事情,需要程序员亲自动手开发?

非常感谢你花时间阅读这篇文章,我当然希望得到任何反馈。

EN

回答 9

Stack Overflow用户

发布于 2010-07-12 09:35:00

电子表格是一个简单的系统,允许非技术用户使用计算机的计算能力。在这样做的过程中,他们开放了计算机来解决大量的任务,而这些任务通常需要开发定制的软件来解决它们。所以,是的,非程序化的软件开发是可能的。

另一方面,看看电子表格。尽管它们具有计算能力,但作为程序员,您并不希望必须使用它们来开发软件。最后,许多让编程语言变得更适合程序员的技术,对一般人来说却变得更糟。例如,定义函数的能力让程序员的生活变得容易得多,但我认为这会让大多数人感到困惑。

此外,超过一定的复杂性,尝试使用电子表格将是一个真正的痛苦。电子表格在设计时所针对的领域内工作良好。一旦你偏离得太远,这是不可行的。同样,这正是程序员用来处理复杂性的工具,这将阻止系统的广泛使用和足够强大。

我认为,对于任何给定的问题领域,您都可以开发一个允许专家指定解决方案的系统。开发该系统将比首先解决问题困难得多。然而,如果你反复遇到类似的问题,专家们可以为其开发解决方案,那么它可能是值得的。

票数 8
EN

Stack Overflow用户

发布于 2010-07-12 08:16:07

我认为非开发人员的开发注定要失败。当开发人员尝试它时,这已经够难的了。目前的失败率是多少? 50%或更高?

我的建议是,要么购买你能找到的最接近的商业产品,要么雇佣某人帮助你开发一个定制的解决方案,同时考虑到你的非开发人员维护特征。

作为一名开发人员,意味着同时牢记一百万个细节,并关心细节,如版本控制、部署、测试等。大多数不关心这些事情的人很快就厌倦了复杂性。

一定要让领域专家参与进来。但也不要让他们承担开发和维护的负担。

如果解决方案做得不好,您可能会将您的组织置于风险之中。如果它很重要,那就做对它。

票数 7
EN

Stack Overflow用户

发布于 2010-07-12 09:33:24

我不相信任何广泛的非程序员解决方案会起作用。编程不仅仅是语言,它知道如何合理地做事情。被设计成非程序员友好的东西几乎肯定会包含程序员知道要避免的所有陷阱,即使它是用英语或GUI表示的。

我认为,在这种情况下,需要的是让内容创建者担心内容的制作,并让实际的程序员将其转换为合理的计算机代码。

我曾经使用过两个面向非程序员的ERP系统,在这两种情况下,你几乎可以用它们犯书中的每一个错误。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3225177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档