写点什么

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

  • 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:352948
用户头像

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

关注

评论

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

如何搭建一个知识库网页?

Baklib

Web3流量聚合平台Starfish OS,给玩家元宇宙新范式体验

鳄鱼视界

Spark Sql编译模块-词法、语法分析器Antlr4(一

飞哥

Okaleido tiger NFT即将登录Binance NFT平台,后市持续看好

小哈区块

【刷题记录】16. 最接近的三数之和

WangNing

7月月更

从去IOE到CIPU,中国云计算要走出自己的路径

B Impact

【愚公系列】2022年7月 Go教学课程 014-运算符之算术运算符

愚公搬代码

7月月更

架构训练营模块七作业

融冰

更智能!AIRIOT加速煤炭行业节能减排升级

AIRIOT

低代码 物联网 低代码,项目开发

数据散列算法

技术小生

7月月更 散列算法

8 月亚马逊云科技培训与认证课程,精彩不容错过!

亚马逊云科技 (Amazon Web Services)

架构师 培训 认证

王者荣耀商城异地多活架构设计(架构实战营 模块七作业)

Gor

王者荣耀商城异地多活架构

intelamd

架构实战营模块 7 作业

Naoki

架构实战营

Java多线程之常见锁策略与CAS中的ABA问题

未见花闻

7月月更

如何实现随叫随到的客户服务

Baklib

怎样才能让企业知识管理发挥出它的真正价值?

Baklib

Starfish OS:以现实为纽带,打造元宇宙新范式

BlockChain先知

Docker安装Mycat中间件 | 实现主从&读写分离

宁在春

Docker 读写分离 mycat 7月月更

JavaScript小数点计算时失精问题

空城机

JavaScript 7月月更

网络水军为何如此猖獗:揭秘背后灰色利益链

石头IT视角

let's go——2022年读书活动招募书(第1期)

codists

Okaleido tiger NFT即将登录Binance NFT平台,后市持续看好

西柚子

let关键字的特点

bo

前端 ES6 7月月更

第十届蓝桥杯大赛软件类省赛C/C++ 大学 A 组题解

KEY.L

7月月更

一文解析Ansible配置管理文件

穿过生命散发芬芳

ansible 7月月更

鸿蒙eTS版天气预报

坚果

开源 HarmonyOS OpenHarmony Open Harmony 7月月更

如何设计业务异地多活架构 - 作业

阿拉阿拉幽幽

vue.js 多种方式安装

恒山其若陋兮

7月月更

Envoy负载均衡与限流设计

阿泽🧸

7月月更 Envoy负载均衡

数据仓库和数据中台的关系

奔向架构师

数据仓库 7月月更

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