我看软件开发

回想自己第一次接触计算机,那已经是十二年前了。但正是那第一次的接触,决定了自己在这个行业中寻找自己的事业。经过这十几年的发展,计算机已经由高档设备变成了普通电器,逐步走入并影响着人们的生活。作为计算机运用的直接提供者——软件,也为人们的生活带来的这样那样的改变。当然,作为一个有吸引力的行业,也吸引着大量的人投身于这个行业,但是,国内软件除了表面的红火以外,却蕴含着这样那样的问题。

作为一个一直对软件有着美好想法,同时也一直从事着程序开发的人员,对软件开发过程中的问题有着深入的体会。

1.软件质量无法保证

计算机是一个功能强大的工具,而且是一个非常听话的工具,它只会执行你告诉他要执行的工作。所以也就要求程序员能够正确地告诉它工作流程,但这一点在较大的系统中也比较困难。在一个多人参与共同完成的系统,大家要保证程序体现内容的逻辑一致性,这就首先需要参与者对整个系统有个一致的认识,但是现在国内的程序员却多是在自己埋头写程序员,而不是沟通,这样怎么能够保证一致性呢?在沟通方面,不仅程序员内部的需要沟通,同时还需要程序员与市场部人员的沟通,如果这两部分人员对产品的认识不一致,那么这个产品也不会有很好的市场的。

当然,在沟通这个问题上,许多行业都存在着这样的问题,毕竟中华民族是一个含蓄的民族,大家当面都会非常客气,当面不说、背后乱说。就软件方面,没有做好沟通则不仅有程序员的问题,到时也有大家对程序员这个职业的认识问题,大家还认为程序开发是一项高技术的研究,而且在大家脑海中,好像一个优秀的程序员的具体特制就是做在计算机前,埋头苦思冥想。其实不然,毕竟现在软件开发不是一个研究性的工作,而是一个与应用紧密结合的工作,那样如果没有充分的沟通,做出来的东西也只能是一个闭门造车的东西,是不能得到很好的应用的。实际上就研究方面,许多专家也不是整天的在苦思冥想,而是通过各种渠道收集各方面的信息,如果牛顿整天的苦思冥想,而不去趟到苹果树下休息一下的话,那么可能21世纪的社会就不是现在这样子了。

做为一个智慧型产品,软件比其他智慧型产品在质量方面有着更高的要求。小说是一种大型的智慧型作品,虽说漏洞百出的小说不会是一部好小说,但一部好小说却允许存在着一些漏洞,这些漏洞的存在不会影响读者的欣赏,而且许多时候读者也不会体会到其存在,金庸先生的作品不少人都读过,但有几个人意识到了其中的一些漏洞呢,好像不多吧,即使发现了,好像对你欣赏也没有太大的影响。而软件则不然,由于计算机是一个严格的执行者,但却没有什么判断纠正能力。所以其漏洞的存在就会导致这样那样的问题,影响其使用效果。

同时,软件质量对用户有着很大的影响。随着软件在各行业的运用,现在软件对其影响也越来越大。有时一个系统的问题,可能就会许多问题,而且有些问题对企业有着较大的影响。京城的一家银行,各网点的服务质量在北京来说还是很不错的,但好像这家银行的业务却不是太好,后来才发现了其中的原因,当然我看到的只是一个表现而已,如果存入一笔自动转存的时候,过了几个自动转存期后,如果去查一下,你会发现有许多笔存款。可惜的是银行工作人员却会给你说这只是一笔存款,那是系统的一个问题。系统连一个自动转存都解决不了,作为一个还没有到对视金钱如粪土境界的人,当然还是考虑一下是为了享受服务而让自动的存款受着末知的处理,还是去选择另一家服务虽说不如这家,但系统相对可靠的银行呢。我想多数人还是会选择后者的。正是因为软件质量的这种重要性,大家对软件质量的重视及软件质量对一个企业生存的影响,人员也对软件质量有着更高的要求。

下面几个部分,虽说是并列的,但实际上都是围绕这个问题作的一些具体分析。

2.不能正确对待技术

作为一技术人员,同时对技术有着深厚感情的人,当然希望大家把技术看得越高越好,不过同时却也应该清醒的认识到技术不是万能的。前段时间通读了“温伯格”的“程序开发心里学”这本书,让自己深有感触。其中的“技术是没有价值的”这个论点,让我重新调整了自己对技术的看法。是呀,任何一件物品,其价值的体现在于运用,一个产品,无论你认为还是事实上它是多么的卓越,只要它不能为用户所接受,那么它就是没有什么价值。同时一个东西,由于其使用方面,它也会发挥出完全不同的价值。曾听人讲过这样的一种事,说一个人到农村旅游,在一个农家发现用于喂鸡的盆竟然是一个价值连城的文物,立即倾其随身之钱并向同伴借了些钱购买,同时还向对方说由于身上带的钱有限,只能给这么多了,而农家的人也没想到自己的一个鸡食盆竟然能够值这么多钱,也是非常高兴。同样一个“破盆”,对于不同的人,由于将之用于不同的用途,其体现的价值就完全不同。

所以说,作为一个技术人员,除了考虑产品如何具有高的技术性外,还应该考虑如何才能让用户接受,因为只有这样自己辛苦的付出才不至于没有意义。由于术业有专攻,在这方面也不防多听听市场人员的意见,毕竟他们整天和最终用户打交道,会有更多的体会的,在这方面市场人员一定程度上更有发方言权。这样说可能会受到技术人员的反对,记得前不久和一位朋友说起我现在的这种想法时,他讲我已经不再是完全站在技术人员的角度看问题。也许吧,不过就我个人来看,我对技术还是有着非常大的热情,而且现在的主要工作还是写代码,当然由于一些经历以及自己的一些所谓理想,让我看问题的角度更广了些。同时我还觉得大家也没必要去区分技术人员还是市场人员么,都是公司的一员,大家到一起就是为了共同做事么。为什么要把一个人限制在技术或者市场呢?当然在东方文化有一种绝对化的思维方式,喜欢把事物分成两个或者几个绝对的部分,这点在各种文化载体中有着较大的体现,比如说起一个人,说是好人,这就是没有一点缺点,而坏人则一无是处。这某种意义上说是这些文化载体的失败,因为他们没有能够完全的体现生活,虽说他们也一样影响了大家的思维。无论是技术人员还是技术人员,大家的共同目的就是为了把一个产品做好,并为用户接受,这一点是共同目标,有这个共同目标下才能对产品有个清晰的描述,也才能保证一个产品的成功。

当然,市场人员也不要以为市场是万能的,而技术是无用的。实际上这方面也存在着不少这样的例子,有许多公司认为只要有关系,拿得到项目,做成什么样子都可以赚钱。但是如果没有一个好的产品,还是无法向用户交待,虽说有时可能由于某种关系或者原因导致这个项目的成功,但同时也会潜在其他的问题。一件事情的成功,需要多方面的配合,当然多方面中不仅仅是市场人员和技术人员,还包括其他各种各样的人员,如果说开的话就更加脱离技术话题。

3.自视过高

自视过高应该说是在许多人员中都存在的,就象前面说那样,也有市场人员认为市场是万能的,离开了市场就什么也不行,但作为技术人员的一篇自我批评的文章,这方面不去做过多的讨论,则主要说一些技术方面存在的问题。

总认为自己在技术有着非常市的水平,这种水平是其他人无法达到的。其实,一个问题,既然你能够解决,为什么就能断定别人不能解决呢?当然就某个个体来讲,可能这个人是无法解决你解决的这个问题,但中国有十亿人口,难道就只有一个人会解决这个问题么?我想应该不是吧。同时解决方式上大家也总认为自己采用的方式是最好的,这也是受绝对思维的影响,其实没有什么最不最的,只有适合不适合之分,在软件重构技术中,许多对立的技术都是同时存在的,如果分拆类和整合类,这是可能会有疑问到底是应该把类分拆还是整合呢?大类好还是小类好呢?这是一个具体情况的具体判断,会因运用目的、人员而异。所以说需要放弃绝对思维的想法,“海纳多川”,多了解一些,才能有更好的分析判断能力。需要对于别人的工作,首先应该是接受,然后是分析,最后是吸其精华去其糟粕。

另一个问题是过于追求技术,刚才写到“海纳多川”时,本来顺手打入了“而后为大”,最后又把那四个字删去了。中国人好像对“最”字有深厚的感情,动不动就是最好、最大呀,何必呢?适合就可以,最就不一定了,适者生存么,而最者却可能会灭亡的,恐龙曾是最大的动物,结果是灭亡了。在技术上,大家也不要动不动就想做最好的软件,实际上需要用户需要就可以,而有些技术上好的用户却可能不需要,或者不是很需要,这些可以在有时间和精力时做,但绝不能把它放在第一位。

还有一个问题是交流问题,也是一种沟通问题,不过这里是一个内部沟通的问题。不知道是什么原因,也可能是大家要求技术人员应该是内向的吧,大家好像平时不喜欢交谈,而技术大家好像谈论的更少,每天就守着自己的计算机忙碌。这一点好像还不如农民,大家不要生气,每个人群都有其优缺点么,再者应该也有不少是来自农民吧,反正我是。再转回来,农民虽说也是整天守着自己的“一亩三分地”,但闲时也会聊聊种什么好,如果看到别人地里的庄稼有什么问题时候,也会提醒一下,在劳动休息时也会谈论一下如何浇水施肥等。但技术人员却不知道为什么,却很少会相互谈论技术。虽说现在网络比较方便,通过其可以得到许多资料,但交谈过程中才能把自己看到东西做更好的整理和理解。如果有什么问题不能解决的话,找个人说说,可能问题就迎刃而解了。我记得曾经建议,在什么问题不知道原因或者如何解决时,最好找个人说说,如果找不到人,自己养的猫也可以。那样在向别人描述问题的过程可能就会发现问题的所在。这种方法着实不错,不过由于我没有养宠物的习惯,所以在找不到人的时候,一般只能假设一个听众来讲了。另外,如果有人来找你讨论问题,你也不要以为这是对自己时间的一种浪费,其实这对自己来讲是一种快捷的经验形成方式,因为问题更代表一些有难度的东西,而我们每天做的工作许多只是简单的重复性劳动,是不会积累什么经验的,而听别人犯了什么样的错并为什么犯就可以避免自己以后犯同样的问题,以前曾经有人让我帮他看一个死锁的问题,由于他那边是一个较小的程序,所以我们两个经过一会的讨论就发现了其原因所在,也就在这时,我突然意识自己程序中存在的一个偶然性错误可能也是这种原因造成的,所以立即也查找类似的地方并做了修改,这样困绕了我近一个许久的问题就搞定。前不久见高中的老同学,一位同学和我说了好久多谢我上学时在问题帮助,着实上学时他及其他一些同学有什么问题就会和我讨论,现在想想,如果不是这样,我现在却可能会是另外一种情形。当时高中时我是一个非常贪玩的学生,绝对没有耐心在题海中“畅游”。但正因为我也会毫无保留和大家讨论问题,所以大家有什么问题都会和我讨论,这样我知道的问题也就会越来越多,会吸引更多同学和我讨论问题,并且可以以更少的时间得到各种各样的问题。当然当时没有想得这么多,不过现在想想我还真应该感谢他们,没有他们可能就不会和计算机能够有这么早的接触,那时毕竟只有少数学校才有较好的计算机资源。写到这儿,又对自己当时高考成绩做了个分析,发现更能体现这一点,因为只有那些有问题交流的科目如数、理、化考得不错,英语也还可以,而其他几门却是很差,语文相对分甚至是不及格。因为在语文方面好像大家基本上没有什么问题,而实际上我感觉自己的语文相对还可以,高中时写的文章也曾被老师当作范文宣读,大学时也有被迫写的文章在省内比赛得奖,但正是没有与人做过足够讨论,所以才没考出较好的分数,虽说分数并不能完全代表一个人的能力,但在大家挤过当时很窄的“独木桥”时还是很有意义的:)。

 

随手写了这么多,回头看看发现好像和软件开发关联不大,有点“挂狗头卖羊肉”的感觉。但再想想,许多事情本来就是相通么,一篇关于软件开发的文章,不一定就需要是满篇的软件开发字吧。说到相通,就再说一点吧,“隐患险于明火”这句话是许多生产地方的一句标语,在公车、工地、厂房都可能看到,但在软件开发中,何偿不是这样,缺陷(即 Bug )的存在对于一个软件系统来说应该比一个不支持的功能更可怕吧。由于整天写程序,而好长时间没写点东西了,所以写的东西可能有的程序化了,不过应该还是可以凑合着看的。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我很乐意帮助你开发一个具有显微镜功能的软件。在开始之前,我们需要先确定一些事情,例如你希望这个软件能做什么,它的用户界面应该是什么样子,以及你希望它运行在什么设备上。 首先,我们需要考虑这个软件的功能。显微镜是一种用来放大物体的工具,因此我们的软件可能需要提供放大和缩小功能。此外,我们还可以考虑提供一些颜色过滤器,例如红色、绿色和蓝色,以便用户可以更好地看清楚某些细节。我们也可以考虑提供一些标记工具,例如线条、圆圈和箭头,以便用户可以在图像上标记重要的细节。 接下来,我们需要设计用户界面。我们可以使用一个显微镜图标来表示这个软件,并在主界面上放置一个大的图像显示区域,用户可以在这里看到放大的图像。此外,我们还可以在界面上放置一些按钮,例如“放大”、“缩小”、“颜色过滤器”和“标记工具”,以 ### 回答2: 当然可以帮你开发一个具有显微镜功能的软件。这个软件可以模拟实际显微镜的操作,并且具备一些额外的功能。 首先,我们可以设计一个用户界面,以便用户可以轻松地导航和操作软件。界面可以包括一个放大缩小的滑动条,用户可以通过滑动条来调整图像的放大倍数。另外,我们还可以提供一个拖动功能,使用户可以在样本上拖动显微镜,以便观察不同的区域。 其次,为了增加软件的功能和实用性,我们可以加入一些特殊的功能。例如,我们可以添加自动聚焦功能,使图像始终保持清晰。我们还可以添加标记和测量工具,以便用户可以在图像中标记感兴趣的区域,并测量距离或面积。此外,我们还可以集成图像处理算法,如增强对比度或减少噪声等,以提高图像质量。 同时,我们可以考虑将这个软件与更多的设备或平台集成,以增加其可用性和灵活性。例如,我们可以将软件连接到实际的显微镜设备上,通过USB或无线网络,实时传输显微图像到计算机上,并将其显示在软件界面中。此外,我们还可以将软件开发为移动应用程序,以便用户可以在手机或平板电脑上进行显微观察。 最后,为了确保我们开发的软件是稳定和可靠的,我们将进行严格的测试和调试。我们将在不同的操作系统和设备上进行充分测试,以确保软件在各种环境下都能正常运行。 总而言之,我们将致力于开发一个具有显微镜功能的软件,以提供给用户一个方便、实用和高质量的显微观察工具。我们将从用户界面、功能扩展、设备集成和测试等方面进行全面考虑,以满足用户的需求。 ### 回答3: 当然,我很高兴能为你开发一个具有显微镜功能的软件。 首先,我会了解你对于软件的具体需求。例如,你希望软件能够提供哪些显微镜功能?是要能够放大和观察图像,还是需要具备额外的分析和测量功能等等。通过了解你的需求,我可以根据你的要求进行软件开发。 接下来,我会设计并制定一个软件开发计划。这包括确定开发阶段、时间表、所需资源和技术以及预期的成果等。我会确保在开发过程中与你保持沟通,确保软件的功能和设计符合你的期望。 在软件开发过程中,我会首先进行功能设计和界面设计。这涉及到显微镜的图像处理、放大和观察功能等。我会利用图像处理算法和相应的编程语言,来实现这些功能。同时,我会确保软件界面简洁明了,易于操作。 在开发完成后,我会进行软件的测试和调试。这是为了确保软件的稳定性和功能的可靠性。如果出现任何问题,我会及时修复并进行优化,以提供最佳的用户体验。 最后,我会将开发完成的软件交给你进行试用。并请你提供意见和反馈,以便我能够进行改进和优化。如果你有任何更多的需求或想法,我也会非常乐意为你进行后续的开发和改善。 总之,我会尽力满足你的需求,开发出一个功能完善、易于使用的具有显微镜功能的软件。希望这个软件能够对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值