常州定制软件开发外包公司

18912312413 在线客服 关于我们 返回顶部
企业新闻 技术分享 行业动态

关于软件开发,都应该知道的10个常识

2020-11-17分享
    2011年,马克·安德列森(MarcAndreessen)写了一篇文章,预言“软件吞噬世界”。观点主要有两个:第一,许多传统业务正在被软件公司所取代;第二,所有其他公司都发现,他们所提供的价值越来越多地来自软件系统。
 
    在安德森撰写这篇文章时,市值最大的10家公司中,没有一家是从事软件驱动业务的。如今,10家最大的公司中有6家主要由软件驱动,而其他4家也已经准备好了转型。
 
    StackOverflow和LinkedIn列出非技术公司的软件工程招聘广告超过了科技行业本身。这是经济发展中的一个重大转变,表明公司正在加强他们的软件工程实践。
 
    会计和软件,哪一个对公司更重要?本文没有答案。但是现在许多不认为自己是软件公司的公司也开始发现:软件系统是他们运营的一个关键组成部分。
 
    关于软件,这是所有管理者都需要知道的10件最重要的事情:
 
    1.软件不是魔术
 
    软件不是魔术。虽然它看起来像魔术,或者是魔法,但它不是魔法。每一个元素都是由人设计的,都有其数学基础,或者是可以用人类语言解释的过程。
 
    与魔术不同,软件不是凭空变出来的。它需要设计、构建和维护。就像房子有多种系统一起工作(地基、结构、管道、房间、家具等等)那样,软件系统也需要许多层和子系统来创建整个系统。它可以设计得很好,也可以设计得很差,而且快速的设计很少能持久。
 
    如果人们不能用语言来描述它会做什么(包括想要的结果和如何实现),那么计算机也无法做到。“how”被称为算法,这并不神奇。
 
    机器学习和其他人工智能技术也并不神奇。机器学习是基于数据的预测,而不是显式的规则或指令。它一般是用线性代数来做的。如果有100万张已知的香蕉照片和100万张没有香蕉的照片,一个训练有素的机器学习系统看一张新照片,会根据它从之前的照片中学到的知识告诉你它看起来像第一组还是第二组,这不是魔术。使用机器学习根据过去的招聘决定对简历进行排序,即使没有任何故意的偏见,也可能会放大经验主义的招聘历史。
 
    2.软件永远不会“完成”
 
    软件永远不会“完成”,软件是一个迭代的过程,在其生命周期中包含许多修订和更新。我们的工作是创造一个能认识到这一点的环境。
 
    同样,我们从来没有期望市场营销和客户获取是“完成的”,它们也是迭代过程。在每个迭代中,随着我们不断地为业务交付价值,我们也不断地学习和成长。即使已经做了一些成功的发布,我们从来没有打算“停止”做这些事情。
 
    如果软件可以在一个版本中完成就好了,但这不是现实。需求文档充满了模糊性,软件的第一个版本充满了“哦,那是我写的,但不是我的意思”的场景。最好的软件能激发新的想法和功能需求,看到新的销售管理系统更加高效,就会激发出更高的效率。世界在变化,竞争对手提供了新的功能,人们就有了新的想法。另外,总是有一些bug需要修复:可能是在代码中,也可能是在构建代码的底层软件框架和系统中。某些软件可能是完美的,但可以确信的是,随着时间的推移,人们会发现它所构建的平台存在各种漏洞。
 
    我们的工作就是让一个组织能够认识到这一点。
 
    认识到这一点的方法是建立一个有信心定期发布新版本的组织。当完全自动化测试和其他工程规范就位时,我们就建立了信心。这种信心创造了一种能力,可以避免过长的发布周期,而是每季度、每月甚至每周发布高质量的软件。特定的频率并不重要,但是信心很重要,自信能够带来更快的创新。
 
    3.软件开发是团队作战,没有人能做所有事情
 
    软件开发是团队作战,开发人员既不是产品经理,也不是UX(用户体验)设计师,也不是质量工程师、分析师、安全专家、技术作家或运营工程师。组织需要所有角色。
 
    没有哪个管理者会建议每个销售(sale)人员都做营销(marketing)及PR,否则就解雇销售团队(因为营销人员了解产品,也能做销售)。营销和销售是相关的,但又是不同的。因此,两者之间存在着分工。
 
    同样,开发团队需要独立的人员来收集需求、质量保证和测试、代码编写等等。
在线咨询
Copyright © 2013-2020 YongJiaSoft 永佳软件 版权所有 备案号:苏ICP备13061077号-17