关于软件开发的那些事(一):聊聊以项目型为主的定制化软件开发

各位,在你们的眼中,如何理解软件开发?我想这个问题定然会得到许多不同的答案,对于软件开发的定义,百度百科中提到:

软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。

个人认为,**软件开发过程就是一群人的思想相互碰撞的动态过程,既然是一群人,那么就人与人之间各有不同、各有所需;既然是思想相互碰撞,那么就可能会难以捉摸;既然是动态的,那么就一定会有变化。**这也就不难理解为什么说软件开发是一项复杂的系统性的技术工程。

本人自2009年开始参与到软件开发的大军中来,掐指算来,已是十年有余。在软件开发领域十余年的摸爬滚打,积累了些许经验教训,对软件开发的理解也在逐步加深。鄙人不才,愿借此机会,与各位聊聊软件开发的那些事儿。
在这里插入图片描述
今天这里要聊的其中一个话题与软件开发类型有关。

从软件开发类型来看,一般有项目开发、产品开发、技术研发等几类。

在我们公司,从这几年的实践来看,我们的软件开发几乎都是项目型的软件开发,而且几乎都是以乙方身份承接的项目开发。项目型软件开发的最大特点就是定制化开发。谈到定制化开发,想必大家都非常清楚,不同客户的需求各不相同,即使是同一类型的客户同一类型的软件需求也会有差异,开发的可控性和难度必然加大。这里似乎说明了一个问题,定制化软件开发不好做。事实上,定制化软件开发确实存在多方难点,也确实很难通过完成所有客户提出的定制化需求就能做得很成功,这里还涉及到很多商务、技术、管理等方面的综合因素。但是,这并不是意味着定制化软件开发就没有前景、就没有空间。

要想在项目型软件开发方面有大的突破,个人认为至少要考虑两个因素:一是可持续性,二是规模效应。
软件开发的可持续性意味着同一类型的软件项目我们可以持续做,继而带来业务的可持续、技术的可持续、团队的可持续。这有点像我们常常说的做完一期做二期,做完二期做三期,做完三期来个技术、业务大升级,再接着做。这种模式下,软件利润也许会有更大的空间。诚然,可持续性也有大有小,小的可持续性更多就是一个单点效应,特别是在项目规模仅在百万级别甚至更小一些的时候,虽然持续做几期规模或许也能有大几百万甚至上千万,但这并不是一件容易的事情,或者应该说对我们而言还是挺困难的一件事,至少这几年我们所做的各类型软件项目也鲜有非常成功的案例。大的可持续性有两层意思,一是大项目的可持续性,比如从一个千万级别的项目开始,历经几年时间下来,一般会有持续的需求需要开发,升级改造必不可少,这个从某种意义上来说就可以将其归结为一个典型的大项目的可持续;二是项目的规模化效应,通常由某一个软件项目开始横向拓展,比如从一个客户单位拓展到另一个客户单位甚至更多的客户单位。

软件开发的规模效应意味着在几年内能够有效地促进业务发展,有利于形成一条业务线。这里也有两层意思,一是规模大,只有大项目才有可能形成规模效应,才有可能衍生出其他相关软件项目,继而带动技术服务、运维服务等其他相关项目;二是范围广,一个好的软件项目会借助政策、市场、客户、业务等方面的力量,能够迅速将受众面铺开,陆续在更广阔区域、更多客户单位落地,从而形成规模化效应。

上述谈到的都是项目型的软件开发,即使有规模效应,也依然是需要定制开发的,不过从可持续性角度来看,定制开发也有其相应的好处,有需求就需要定制开发,有定制开发就为可持续性开发创造一些必要条件。

除了项目型软件开发,还有就是产品型的软件开发,或者直接称之为产品开发。产品型软件开发的最大特点就是可复制性及可运营性。可复制性更多针对的是销售型产品,可运营性更多针对的是平台型产品。在目前我们公司所在的行业特点及我们多年来承接项目的情况来看,要做产品开发不是一件易事,需要市场、人才、时机等各方面的综合作用并顺势而为。

此外,技术开发更多是指技术预研与基础平台的研发,更偏向于架构等技术层面。做技术开发的根本目的是服务于项目型和产品型的软件开发,以此打下坚实的基础,提升核心技术研发能力,跟上时代发展的步伐,以更好地驱动业务发展。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要使用FXML创建一个聊天软件页面,你可以按照以下步骤进行操作: 1. 首先,创建一个新的FXML文件,例如 "chat.fxml"。 2. 在FXML文件中,使用布局容器(例如 BorderPane 或 GridPane)来创建页面。可以使用 Scene Builder 工具来可视地创建布局。 3. 在布局容器中添加各种 UI 元素,例如标签、文本框、按钮等,以构建聊天软件界面。 4. 添加控制器类来处理界面中的件和操作。可以使用 @FXML 注释将FXML中的元素与控制器类中的方法关联起来。 例如,以下是一个简单的FXML文件示例,其中包含一个 BorderPane 布局容器,以及一些标签、文本框和按钮元素: ```xml <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <BorderPane fx:id="root" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.ChatController"> <top> <HBox spacing="10"> <Label text="Chat Room" /> <Button text="Connect" onAction="#connect"/> <Button text="Disconnect" onAction="#disconnect"/> </HBox> </top> <center> <TextArea fx:id="chatArea" editable="false" wrapText="true" /> </center> <bottom> <HBox spacing="10"> <TextField fx:id="messageField" onAction="#sendMessage" /> <Button text="Send" onAction="#sendMessage"/> </HBox> </bottom> </BorderPane> ``` 在这个示例中,我们使用了 BorderPane 布局容器来创建聊天软件的主界面。顶部包含一个 HBox 容器,其中包含一个标题标签和两个按钮,用于连接和断开连接到聊天室。中间是一个 TextArea 元素,用于显示聊天记录。底部包含一个 HBox 容器,其中包含一个文本框和一个发送按钮,用于输入和发送聊天消息。 在这个FXML文件中,我们还指定了一个名为 "com.example.ChatController" 的控制器类,它将处理与此界面相关的件和操作。例如,我们将 "Connect" 按钮的 onAction 属性设置为 "connect" 方法,这意味着当用户单击按钮时,控制器将调用 connect() 方法来处理件。 这只是一个示例,你可以根据你的需要自定义和添加更多的元素和件处理程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

踏雪无痕大黄蜂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值