软件开发面试常问问题问题!

&>&&>&&>&&>&对日软件开发面试常见问题
对日软件开发面试常见问题
上传大小:2KB
希望能够帮助到你,少花点时间寻找资源,多一点时间提升自己。
综合评分:5(2位用户评分)
所需积分:1
下载次数:18
审核通过送C币
创建者:caozhy
创建者:caozhy
创建者:c_estbon
课程推荐相关知识库
上传者其他资源上传者专辑
开发技术热门标签
VIP会员动态
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
对日软件开发面试常见问题
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
xinbingkuai
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:本文由&– 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的!
建立和维护一个高性能的软件开发团队是一个持续努力的过程。挑战范围包括从竞争激烈的市场中吸引优秀人才到提供有趣和富有挑战性的工作,以及组建团队结构和促进人员成长。
我们很幸运地工作在一些致力于提升交付质量和频率的软件开发团队,并且我们发现了一些非常的常见阻碍团队快速地推出优质软件的结构和做法:
1:“DevOps”孤岛
特别是随着一个团队的成长,或者可能是为了填补当前团队技能集中存在的差距,我们会被诱惑着在团队中或团队周围建立单独的功能以执行特定的工作岗位。
我们看到的最常见的表现是操作(通常成为DevOps或基础设施),而且在操作中任何基础设施相关的任务需要这个单元中的某个人执行。我们认为这在软件交付的重要组成部分——部署和运行的周围增加了没有必要的边界。
我们宁愿看到真正的DevOps技能植入到软件交付团队中,让这些团队能够端到端地交付他们的应用程序,并负责地运行他们的应用程序。
2:缺少权力
我们经常能看到权力缺乏和表现不佳之间呈现了高度的相关性。一个团队需要能够管理自己每一天的工作负荷,能够做出技术决定以及,如有必要的话,还能改变他们的工作方式。
一个团队被给予小单位的高规格的工作的地方,并且自上而下做出决定的地方,很可能就是那里你会觉得冷漠的地方。
我们发现如果给予团队一个明确的、注重商业效益的理念,并且授权去弄清楚交付的最佳方式,那么团队执行最佳。
3:隔离利益相关者
在一些组织中可能存在不鼓励或不允许交付团队与利益相关者接触的结构或做法。一个高性能的团队需要与那些软件发布的利益相关者进行定期和开放的交流沟通。
除了惯常的论坛,例如kick-off会话和案例展示,可用来促进对话,我们鼓励使用通信工具,例如Slack,促使利益相关者和开发人员之间能够进行持续的讨论。
4:单枪匹马和团队人员过多
我们发现最佳的团队规模是2至4人。对于大多数人来说,在只有1个人的团队中工作比起和其他人一起工作更缺乏问责和社会互动。
当团队规模开始超过大约4人的时候,沟通会变得困难起来,并且会降低团队的责任感。
5:质量是所有人的工作
关于质量挑战一个太过于常见的回应是,试图通过引入专门的工作岗位,或者甚至更糟的是,引入测试来解决这个问题。在那些团队和生产运行的软件之间感知到安全网的地方,责任水平会下降,然后质量紧跟其后。
通过鼓励质量成为团队的责任,接受例如同行审查的做法,以及自动化测试技术地不断采用,我们看到了更好的成功。
6:功能优先于技术债务
在商业交付截止期限和跟上技术债务之间有一个平衡。如果不保持平衡,技术债务会迅速阻碍团队的交付能力。
团队乐意累积技术债务,或领导者乐意对此视而不见,是一些在我们开始和一个软件开发团队工作时可以立马识别和需要改善的行为模式。
一个团队需要被授权并被鼓励去向他们的Product Owner推销偿还技术债务的好处,这样技术债务就可以随着功能开发一起解决掉。
7:在团队建设上投资不足
在建设一个有凝聚力的团队时谨记一些基本知识非常重要。促进大量的社会活动来为团队提供论坛,让团队能够享受彼此工作之外的企业氛围,同时为个人提供学习和更好地保持自己进步的机会。
提高任何团队的幸福感、生产力和凝聚力仍然需要持续的努力,而并且需要定期修正方向。如果你想要构建一个高性能的软件交付团队,那么我们会建议你强硬地雇用人才,并投资于可以提供定期反馈循环的实践行为,以帮助你植入一种经常反省和不断改进的文化。
译文链接:
英文原文:
翻译作者:&– 小峰
[&转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]  英文原文:
软件开发的市场竞争不断升级,无数的软件公司倒下,又有更多年轻的初创公司崛起。本文笔者走访了大量公司,试图从中总结成功的软件公司所需要把握的原则是什么。当越来越多的创始人讲述他们的故事,笔者发现以下这 6 个问题是每一个软件公司想要突出重围就必须回答的!本文作者是波兰 B2B 初创公司 RightHello 的创始人兼 CEO:Piotr Zaniewicz。
  全世界的软件公司创始人都有一个想法:层出不穷的新项目排着队等它们去实现,高质量的精品软件不断被开发出来。
  但是很少有公司能够跻身于佼佼者的行列,软件开发这个行业的竞争是那么的残酷,客户似乎永远不够多,而优秀的程序员似乎永远就那么几个。但是,获得商业成功的公司会用它们活生生的事迹向我们证明:即便是在最严酷的竞争环境中,你还是能够杀出一条血路,为自己争取到生存发展的机会。我曾经跟 B2B 领域的软件开发公司创始人聊过,其中有些公司的雇员数已经到达了数百人,想通过对话,了解软件公司的生存发展秘诀究竟是什么。这其中,这四家软件公司的创始人让我更清楚软件公司的生存发展之路究竟是什么。它们分别是 Arkency, Netguru, Polcode 以及 Software Mill.
  那么,成功的创始人都是如何运营自己的软件公司的呢?
  第一个问题:如何看待大客户以及大项目?
  从一个声名显赫的大公司手里争取到一个利润空间巨大的大项目,这能够大大的提升初创公司在早期的发展速度,这是明摆着的事实。但是这也可能成为一种非常不健康的瘾症。在软件公司发展的路上,你不可能就想着依靠屈指可数的这几家大客户就能获得持续、稳健的增长,而且这些项目都是难于管理的,他们往往会让你团队大部分成员深陷其中,而且时间漫长无法有个干脆的终结。
  其中最重要的黄金法则就是:不要把你团队三分之一的人手分配给一个项目。如果一个客户的项目需要你团队一半的人手,除非你是非常相信这个客户,否则这个单子竟然不要接。
  另外判别这个项目是否值得接的标准:不要让任何一个项目所带来的收入超过你总收入的 10%。随着你的公司不断地壮大,这件事越来越容易做到。这个标准给你的公司发展提供了一定的安全系数:当你手中的某个项目忽然因为某些不可预料的原因终结掉,你的团队仍然可以在其他至少 9 个项目上继续赚钱。
  第二个问题:你意识到&没有新的项目出现就相当于把钞票点着烧掉&这个道理了吗?
  你必须定期给你的程序员支付薪资,如果你没有持续不断地找到新的软件开发项目给他们做,那么这无异于把自己的一把一把钱扔到火里烧掉。
  出于这种考虑,你必须想出一些应对之策,比如让团队能够接手一些被证明是有好处的「副项目」,导师指导、培训、专题研讨会,这些都能提升团队的工作表现。专门在网络上开辟一个官方博客,在上面持续不断地撰写内容,又或者在某些特定的软件开发社群,或者 Quora 上回答技术性的问题,再不然就是参加世界各地举办的软件业内大会,这些活动都能给你带来不错的营销效果,而你完全不需要配备一支营销团队就可以做到这一切,获得理想的推广结果。
  要完全避免项目出现「青黄不接」的情况其实是很难的,但是最起码你能够降低这种情况发生的概率。仔细地分析自己的核心客户群,看看那些客户对于你来说在商业上能起到最好的支撑?直接跟这些客户展开对话,不管是发邮件、在社交媒体上发私信你,总之得持续不断地跟他们保持联系,不放过任何一个能够向他们销售的机会。
  你的目标是让新的项目进入等待队列,当旧的项目完成之后,新的项目能够立刻顶替上来。
  为了让公司获得更多新的业务增长机会,必须由一些懂专业技术的人来推动这项工作,而这往往是程序员最不愿意做的。他们往往觉得销售工作是很复杂,粗鲁的,往往会招到冷言冷语的,但这并不是事实,软件开发比这要复杂多了,你不是也每天都在做呢吗?你有一份计划,一个目标,并且有要去工作的激情和动力。
  这同样适用于销售。你也需要一份计划,每天的工作是沿着路线图来走,而且也要有韧劲,不找到新的项目不罢休的决心与意志。
  也许你现在已经有了一个销售流程,但是却不如预想中那么有效?解决办法是将你的新客户(新项目)的渠道实现多元化。在我所接触的优秀软件公司中,没有任何一个创始人是完全依赖于一个渠道,比如是「口碑效应」,又或者是「内容营销」,它们往往是从多个渠道共同发力,尽可能从市场上捕获更多的潜在客户。
  具体而言,它们是这样做的:
通过打造优秀的产品,逐渐获得业界的信誉和口碑,从而获得客户的推荐;
通过内容营销、业内活动、社交媒体等服务,回答针对服务所提出的种种问题;
通过陌生人邮件,电话等形式,对客户进行分类。
  另外一个解决办法是将用户获取的一系列操作自动化,这之前都是由你团队中某个人手动来完成的,既浪费时间,也浪费金钱。现在市场上有很多初创公司(其中包括了 RightHello),能够通过解决线上销售的种种痛点,频繁地让你获取到新的项目,具体内容如下所示:
帮你锁定目标客户和联系信息
以你的名义向更广阔的市场搜寻新的客户
为你的博客制作和派发各种内容
帮你打理 SEO
  第三个问题:在规模化增长上缺乏规划
  为了能够实现有效的规模化增长,你的公司需要一个切实可行的计划来做支撑,而计划中绝大部分内容归结于一点就是:你开发项目的方式,你确定它是能规模化的吗?
  因为它有可能成为你公司发展的一个最大的瓶颈,而一个「可规模化」的方式意味着在运营你服务的时候,存在这样一种明确的流程。这个流程是可以应用到所有客户身上的,因为如果你想要获取增长,你不能浪费时间在思考什么是可以为客户做的,什么是不可以为客户做的上面。你需要一套规范的,可复制的流程来理清这一切。
  一个越规范的大公司,外人不太知道的秘密是:它们不会每次都为了某一个新的客户来全盘重新思考自己所开发的东西,从另外一个角度来说,这样一套具有约束性质的流程能够为你带来更加理想的客户,如果某个人并不同意你的这套办法,你不会做任何的妥协、退让,直接越过他去寻找更加适合你的客户就是了,你不会为这个客户浪费精力、时间去单独拿出来一套方案。
  所有省却下来的时间也会使得你能拿出更加优秀的工作质量,这是能够让公司迅速实现规模化增长的真正方式!
  第四个问题:管理变得太过复杂
  当你的公司在壮大发展的过程中,管理会变得异常的复杂。曾经,当要做出艰难决策的时候,是你的理智和直觉告诉你这是正确的,然后才能把决策做出,如今随着管理的日益复杂,事事都落于你的肩头让你做决策越来越不现实,很多时候你需要为做出错误决定付出惨痛的代价。那么,你现在只需要再做一次决策就可以解决这个问题:它就是让你公司里的每一个人都成为 CEO;换句话说,就是努力让公司的管理架构扁平化。为了实现这一点,你需要聘请在商业领域拥有专门经验的人才,他知道销售和客服是怎样一回事,还拥有一定的技术技能。如果有这样的人才在岗位上,你并不需要一支专门的营销团队或者销售团队,你的程序员及能够搞定这一切。
  第五个问题:它并不一定非得是具有颠覆性的
  你只需要将你现在的公司组织结构进行改善,就能获得意想不到的成效。为了减小噪音,你必须将你的团队切割成为小规模的次级团队,每一个这样的小团队都会有一个专门的项目经理进行全程把控。这些团队将交换资源,彼此指派一些任务,但是只有项目经理来决定这一切。(这样做,无论是给你,还是给程序员都减轻了肩头上的压力)。
  第六个问题:反馈!反馈!
  想要实现比较完美的团队协作,一定要有反馈!如果你没有办法找出现在困扰程序员的问题是什么,这就给项目的后续开发埋下了非常大的隐患。与其用命令的口吻,要求他们找出目前公司内部出错的地方,还不如去探寻他们的情绪,体察入微。
  只有得到有效的反馈,你才知道下一步该做什么才能让公司变得更加有效率。
  最后的一点野心:挑战软件公司的市场格局
  B2B 的软件市场中竞争异常残酷,但是业内的领导者却用事实证明了:成功是可以达到的。尽管现在很多励志学演讲学专家都在说:你现在的工作需要变得更加聪明一些,而不要那么辛苦。这一点上我有着不同的意见,打造一家成功的软件公司,你真的需要拿出一点吃苦的劲头,当然你也要保持足够的机敏睿智,抱歉,在这个领域不存在捷径。
  本文来源:&译文创见首发由 TECH2IPO/创见花满楼软件开发,程序错误,exception - 我的异常网各类解决方案WEB开发数据库移动开发企业软件/开发硬件/嵌入开发JAVA应用服务器软件工程/管理/测试.NETLinux/Unix多媒体开发语言/框架专题开发/技术/项目综合高性能开发硬件设备Windows培训认证热门搜索热门搜索
解决方案热门解决方案
最新解决方案
其他解决方案
友情链接要求权重和PR≥4,收录≥1万,Alexa排名2万以内,快照正常;联系QQ:
Copyright & &&版权所有&

我要回帖

更多关于 软件开发面试问题 的文章

 

随机推荐