10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

七步打造一家成功的软件开发公司

  • 2017-09-12
  • 本文字数:3582 字

    阅读完需:约 12 分钟

关键点

  • 团队非常重要,这是公司的支柱。这也是为什么你的面试流程必须非常严格的原因之一。
  • 要有清晰的焦点:不管是技术、服务还是产品,要获得更大的成功,你就要不断地尝试去掌握某一方面。
  • 多建立伙伴关系并重视它们:不管是现在还是将来,更大的关系网都会给你创造更多的机会。
  • 每天不断地向团队讲述你的核心价值观,并下大力气围绕你的核心价值观来打造企业文化。
  • 不断地紧跟时代潮流,寻找新机会,但同时也要密切跟进你的支出和收益。

打造一家成功的软件开发公司,这事从来都没有像现在这么难过。哪怕仅仅是几年前,不错的公司也不过是在办公室提供早餐、为员工提供培训机会来提升他们的技能水平,类似这些而已。可现在世道已经完全变了。为了吸引和留住顶级人才,我们必须去请来专业的教练,并且要把办公室安排在风景优美的海边。

用称职的和激情的 IT 人士组成核心团队

团队永远是最重要的!只要核心团队靠谱,你就已经踏上了成功之路。作为 Dreamix(一家做 Java 和 Angular 开发的软件公司)公司的 CEO,我可以非常有信心地说在任何 IT 公司,CTO 都是最重要的角色。不过,他或她并不一定要做一个可以实现任何你想要的东西的极客。相反,你需要的是一个领袖,需要他去鼓励团队,并且可以将最好的专家吸引到你的公司来。

我们公司的 CTO 叫 Angel(他也的确是我们的天使),他的确是我们的福星。在公司刚刚创立的时候,他还在当地一家大学里教 Java 开发。公司里有一位 IT 业界内的名人,这可是无价之宝。有这么一个人就意味着他会不断地培养出专家来,而不只是招个人进来,然后就让他去做个什么项目。从我们与 Angel 相处的经验来看,大家都非常关注和看重他关心的东西。

而且,你还需要一位强势的经理和软件架构师。这些人都到位之后,你就可以放手开干了。

关注关键技术或业务解决方案

这是一个永远的话题:你到底该关注技术还是业务解决方案?对我们来说,技术为先。我们决定关注 Java 后台和网页解决方案。我们不做.net 或智能手机 App,也不做页面设计。我们甚至花钱请了一家别的公司来帮我们重新做了主页,因为我们真的没有做过任何页面设计相关的项目(的确如你看的那么可笑,一家 IT 公司竟然还要请别人来帮忙做网站)。

“我们公司里随便一个人都可以搞定任何问题”,这样的大话在以前也许还能管点用。但如果现在把你们和业界顶尖的公司放在一起比较的话,没人会相信你们这拿着一把小瑞士军刀的公司,会比别的拿着大砍刀冲过来的公司强。

而且根据我的经验,当你的员工们各自有各自的强项时,大多数人其实是坐在候补席上的,因此你的利润率就更低了。因为你不可能让销售把各种类型的项目都找来做。而且按墨菲定律所说,等你招到了一个 Ruby 开发者之后,你接下来的项目就肯定都是用 Java 或 C#的,但绝对不会有 Ruby 的。

建立严格的面试流程

核心团队建立之后,你就要严把用人关,只让合适的人被录用。要同时做技术面试和“文化适合度”面试(下文会更多地讲到文化)。严格的面试有两方面好处:

  • 这样可以帮你请到很强的专家。你要保证你请到的都是顶尖高手,因为顶尖高手才能打造顶尖的公司;
  • 这样你在业界面的名气就有了。比如你拒掉了一个有十年工作经验的人,原因是他的多线程编程技术达不到你的要求。一下子全城的人都会听说这件事。然后怎么样?有些高手就会非常想来尝试一下,看看你会给他打多少分;

不过即使你请到了技术非常强的员工,你们公司也不一定会发展得非常好,因为大家都知道,开发软件很重要的另一方面是与对方进行沟通。因此我们的面试流程中还有另一部分:“文化适合度”。在面试过程中我们会问,你自己提出过什么点子?在上一家公司工作时你做出了怎样的贡献?你怎么给予你的同事帮助呢?这些问题会帮我们确认我们选中的人将来可以融入我们,并且善于沟通,会成为我们的好队友。

建立伙伴关系和业务开发网络

业务再重要也比不上客户和合作伙伴。作为一家近岸外包软件开发公司,我们的客户来自不同的国家,甚至不同的大陆。这意味着我们必须注意保持与客户近距离接触。因此我们与不同国家的许多软件开发公司都建立了合作伙伴关系,包括英国、瑞士、德国和美国等。有了好的合作伙伴,就能接触到非常不错的客户和项目。如果交付的软件质量又非常高,那很快你就会成为他们的第一候选。不过,你要明白这个过程并不容易,你要做好付出的准备。

根据我的经验,当你一个项目也没完成时,客户一般不会信任你。比如,我们第一次帮一家位于伦敦的咨询公司做项目时,我们派了一位员工去他们公司驻点。我们的专家干得很漂亮,没用多少时间就把项目完成了,成功地证明了他的 Java 和集成技术是多么熟练。之后不久客户就联系我们了,还想再多做一个小项目。尽管项目需要出差到威尔士市郊,我们还是克服了困难,派人去那里干了几个星期。那个项目很难搞,有很多旧程序要重构,根本就算不上“梦想中的项目”,但我们还是花了很大精力,做了很多牺牲,最终成功地超出客户预期完成了它。

做完了这些早期的项目之后,再扩展合作、讨论新的项目机会就容易得多了。所以我才会建议你一定要重视最开始时的小项目,一定要做得非常好。一旦你成功地获得了客户的信任之后,再去争取一些长期的、好的合同就是水到渠成的了。

企业文化以及为什么它很重要

企业文化的意义在于,你相信的价值是什么,为什么你要追寻它,你想了什么主意去支持它。在这里我要感谢我的伙伴 Stoyan,他成功地在 Dreamix 里建立了很好的企业文化——在他的一篇博客“ Dreamix:为什么企业文化这么重要?”里你可以了解到更多内容。

简而言之,你要确保的是:

  • 你们公司的价值:包括内部和外部两方面。内部价值指可以帮助员工们工作得更好的东西,外部价值在于可以吸引和留住客户的东西。
  • 支撑着它们的点子:如果你的价值是要在新兴技术中做得很好,那就定个例会,每两周开一次,在会上每个人都做一下分享,新的框架、技术、甚至新兴公司等都可以。如果你想成为一家成功的咨询公司,那就请一些著名的咨询师来,分享一下他们是怎么成功的。
  • 找些办法去推广你的文化:可以写博客、拍视频,或者组织些活动去展示一下你在这方面取得的成就。

有个良好的企业文化可以让你在很多方面受益。比如根据我的经验,每周举行线下的例会可以让大家有机会在众人面前展示自己并提高受关注度,可以在有问题时及早发现。大家对工作满意时,就会推荐自己的朋友来应聘新职位。我们设立了内部推荐奖,结果在招聘工作上省了一大笔钱,所以我们就更可以专注于把公司做得更好。

跟上新技术的步伐

现在主流的核心技术差不多每五年就会发生一次重大变化,作为这个时代里的一家技术公司,你就要不断地改变自己,适应变化。

十一年前我们公司刚成立时,RIA(Flash)技术已经应用得很广了。现在我们在把 Flex 程序改成 Angular 的。假如当初我们决定固守旧的技术,那现在就只能做做支持旧程序的事,当下一次技术变革到来时,我们就完全无事可做了。与之相反,我们一直在紧跟潮流,现在我们还在筹划着建立一个 AI 部门。

这里还有件趣事。在大家刚开始鼓吹“JavaScript 框架”的时候,我其实并不看好它,可是公司里有些骨干却非常热衷于它。后来,好几个人开始主动地进行尝试,有一个还成了使用 AngularJS 和 Angular 的 JavaScript 前端专家,这些都是发生在 JavaScript 流行推广开之前的事了。

经验更丰富之后,我们就开始在内部举行培训、讲座等活动。等我们成了专家,我们就开始写博客,分享知识。我讲这个故事的关键在于,你要依赖你的技术人员——你是 CEO 并不意味着你就可以搞错技术潮流甚至错失商业机会,要知道别人可能很轻松地就可以看出来。

关注底线

公司的技术实力强,这与成功并没有直接关系。项目做得好却赚不到钱,这样最后也会是死路一条。同时,也很符合常理的是,你提出来的方案必须是对你最划算的。我们在公司里搞了个商业智能白板,用于监控我们的收入、支出和利润。这可以帮助我们:

  • 鉴别出那些赚钱的项目;
  • 关注支出;
  • 了解利润率以保持竞争力;

我们会跟进公司里的所有指标,从而计算出上述内容:工资、社保、租金、销售支出、试错代价、培训、病休、假期等等。另外,我们也可以通过这种办法了解每个部门的预算,比如当我们决心加大销售支出时,我们也可以知道我们到底想要投入多少,从哪里可以压缩些费用出来补贴这边。

上述七点内容来源于我们十一年的实践经验,也是打造一家非常棒的软件开发公司所必须关注的主要方面。当然,我相信你肯定也会有你的独门秘籍,可以让你从众多竞争者中脱颖而出——如果你能写在下面的评论区里,我感激不尽。

关于作者

Todor Gigilev是外包软件开发公司 Dreamix 的 CEO。他有软件工程和架构的背景,曾服务于 BNP Paribas、苏格兰皇家银行和 Vistajet 等公司。现在,他的公司的使命是帮助跨国公司实施他们的关键软件平台,以及成功地完成数字化等。

阅读英文原文 The Seven Steps to Building a Successful Software Development Company

2017-09-12 17:353496
用户头像

发布了 152 篇内容, 共 78.0 次阅读, 收获喜欢 64 次。

关注

评论

发布
暂无评论
发现更多内容

兄弟要盘吗?

为自己带盐

爬虫 dotnet 28天写作 12月日更

前端React 开发中必须知道的5个技巧

@零度

前端开发 React

使用亚马逊云科技DevOps 工具构建 InnerSource 生态系统

亚马逊云科技 (Amazon Web Services)

开源 InnerSource

【2021废钢铁大会】拾起卖旗下天津城矿再生资源回收有限公司三获“全国优质废钢加工配送企业”称号

InfoQ 天津

固定资产管理平台系统解决方案

低代码小观

企业管理 资产管理 CRM 企业管理系统 CRM系统

带你认识三种kafka消息发送模式

华为云开发者联盟

kafka 时间 异步 消息发送 producer

尚硅谷大数据之Canal视频教程发布!

@零度

大数据

【转】java开发之MyBatis 原理与核心组件

@零度

mybatis JAVA开发

HDFS源码解析:教你用HDFS客户端写数据

华为云开发者联盟

hdfs block appendChunk

基于磁盘量身定制,十亿规模高效向量检索方案

Zilliz

向量检索 anns 向量计算

架构训练营模块三作业

zhongwy

架构实战营 「架构实战营」

助车企升级,旺链科技与南方电网、联想等名企同斩获「创新案例奖」

旺链科技

区块链 产业区块链 供应链金融

梦想起航

向往

盘点2021

通过一个实际例子理解Kubernetes里pod的自动scale - 水平自动伸缩

汪子熙

Kubernetes k8s 28天写作 docker build 12月日更

技术“开源”对于金融业软件发展的影响

Speedoooo

安全 ios开发 APP开发 Andriod开发 小程序容器

QCon-oCPX多目标多场景联合建模在OPPO的实践

安第斯智能云

算法

【转】大数据开发之Spark面试八股文

@零度

大数据 spark

面试官:方法重写时需要注意哪些问题?

王磊

Kafka 消息存储与索引设计

编程江湖

kafka

Linux之atime,ctime,mtime的区别

入门小站

Linux

在线JSON转PHP Array工具

入门小站

工具

☕【权限设计系列】「认证授权专题」微服务架构的登陆认证问题

码界西柚

微服务架构 12月日更 权限认证机制 授权设计

平凯星辰获评 《金融电子化》2021 金融业新技术应用创新突出贡献奖

PingCAP

网络安全好学吗?手把手教你学主动信息收集,网络安全基础教程

学神来啦

网络安全 信息安全 渗透测试· kali kali Linux

2021 优秀开源项目公布,Apache APISIX 位列其中!

API7.ai 技术团队

api 网关 Apache APISIX 优秀开源项目

60 K8S之EFK日志管理系统

穿过生命散发芬芳

k8s 28天写作 12月日更

域名基本信息查询小技巧

喀拉峻

网络安全 安全 信息安全

28天写作感想

Tiger

28天写作

大型集团企业云管平台建设参考架构

华为云开发者联盟

架构 运维 IT治理 分布式部署 ManageOne

填问卷抽大奖,中奖绝缘体的跨年福利快来领取!

InfoQ写作社区官方

热门活动

Spring框架基础知识(03)

海拥(haiyong.site)

28天写作 12月日更

七步打造一家成功的软件开发公司_文化 & 方法_Todor Gigilev_InfoQ精选文章