写点什么

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

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

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

关注

评论

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

kafka是怎么做到基于磁盘却比内存还快的?

做梦都在改BUG

kafka 内存 磁盘

什么是数字产品?

涛哥 数字产品和业务架构

数字化转型 数字产品

Nautilus Chain即将上线,一文盘点其六大优势

西柚子

再有人问你什么是分库分表,直接把这篇文章发给他

做梦都在改BUG

Java 分库分表

堪称神级!GitHub上标星157K的Java教程,全程干货,只讲重点

做梦都在改BUG

Java

写给 go 开发者的 gRPC 教程 - 错误处理

凉凉的知识库

Go 微服务 gRPC RPC RPC框架

从ChatGPT到AIGC,是一次技术革命也是一次创业浪潮 | 社区征文

打工人!

人工智能 AIGC AI绘画 ChatGPT New Bing

在文心一言出生地,百度悄悄燃烧AI小宇宙

脑极体

百度 文心一言

一座海上营业厅,一个女孩独自守望的十九年

脑极体

5G 智慧农业

新增 – 使用基于用户的许可证模式在 Amazon EC2 上运行 Visual Studio 软件

亚马逊云科技 (Amazon Web Services)

爱不释手!阿里十几位大牛联玦整理—23年最全面试八股文合集

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

架构误区系列15:生造的业务概念

agnostic

服务设计

mysql锁及数据一致性总结

阿呆

MySQL innodb 数据一致性 事务/行级锁 脏读

一文彻底弄清楚分布式锁

做梦都在改BUG

Java 分布式锁

大专毕业,0基础转行C++程序员一个月后,我后悔了

程序员晚枫

程序员 转行 C++ STL

FL Studio21.0.0水果中文版发布更新下载

茶色酒

FL Studio21.0.0

Nautilus Chain即将上线,一文盘点其六大优势

威廉META

赞不绝口!仅靠阿里P9分享的 Redis 工作手册,拿到60W年薪Offer

做梦都在改BUG

Java 数据库 redis 缓存 面试

What's new in dubbo-go-pixiu v0.6.0

apache/dubbo-go

dubbo dubbo-go dubbogo

为什么 MyBatis 源码中,没有我那种 if···else

程序知音

架构误区系列14:纯代码视角的复用

agnostic

复用

数据库“啃”不动?CnosDB带你轻松阅读十万行源码!

CnosDB

IoT 时序数据库 开源社区 CnosDB

Camtasia2023最新版下载使用教程

茶色酒

Camtasia2023

Adapter基础讲解

芯动大师

mvc Adapter arrayadapter

SpringBoot+ThreadPoolTaskExecutor 批量插入百万级数据实测

做梦都在改BUG

Java Spring Boot 多线程 ThreadPoolTaskExecutor

从理论到实践:MySQL性能优化和高可用架构,一次讲清

做梦都在改BUG

Java MySQL 数据库 面试 性能优化

手把手教你使用 Python 调用 ChatGPT-3.5-API

老表

Python GPT-3 ChatGPT

2.基于Label studio的训练数据标注指南:(智能文档)文档抽取任务、PDF、表格、图片抽取标注等

汀丶人工智能

自然语言处理 数据标注

DawnSql在数据治理中的优势

陈飞

微服务架构 分布式数据库 架构设计 数据治理 分布式缓存

字字珠玑!GitHub爆赞的网络协议手册,被华为大佬指定内部必学?

做梦都在改BUG

Java 计算机网络 网络协议

Spring Boot 整合流程引擎 Flowable,so easy

做梦都在改BUG

Java Spring Boot 流程引擎 flowable

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