当前位置: 首页 > news >正文

2023年:我成了半个外包

边线业务与主线角色被困外包;


01


2022年,最后一个工作日,裁员的小刀再次挥下;

商务区楼下又多了几个落寞的身影,办公室内又多了几头暴躁的灵魂;

随着裁员的结束,部门的人员结构简化到了极致,至少剩下的人是这么认为的;

说实话,对于当下的互联网行业来说,个人感觉两极分化的有点严重;

卷的,卷到鼻青脸肿,不知道BUG和需求哪个会先来;

不卷,感觉随时失业,不知道明天和裁员哪个会先来;

最近这几年,裁员的故事已经不新奇了;

比较热的话题反而是留下的那些人,如何应对各种此起彼伏的事情;

裁员,对于走的人和留的人来说,都是正面暴击;

走的人,虽然拿着赔偿礼包,但是要面对未来工作的不确定性,尤其是在当下的环境中;

留的人,要兜底很多闪现过来的事项,未来一段时间会陷入混乱的节奏中;

对于公司来说;

裁员之后如何应对业务,没有一丝丝迟疑,会做出了完全出于本能的决定;

内部团队能应对的就自己解决,解决不了就交给外包方处理;

整体的策略就是:核心业务领域之外的需求,选择更低成本的解决手段;


02


公司裁员之后,本意还是想专注自己的核心业务;

至于为何要接其他公司的需求,这里就涉及很多社会上的人情世故了;

比如一些重要关系或者流水大的客户;

缺乏互联网方面的专业团队,合作时会偶尔抛出研发或其他方面的需求;

对于公司来说,接手吃力不讨好,不接手又怕影响客户关系维护;

最好的选择就是寻求外包解决;

基于公司的研发团队,替客户进行相关需求的落地把控;

虽然接收外包需求流水抽成不高,但是可以更加紧密的维持客户合作关系;

允许质疑外包的质量和效率,但是不能否认长期的整体成本;

在裁员之后,团队介入的外包项目越来越多,形成主线和外包业务五五开的魔幻局面;

外包项目的合作形式大致分为两种;

  • 甲乙双方:甲方的业务与公司主线业务相关联,通常由团队自己开发;
  • 甲乙丙三方:甲方的业务比较独立,乙方接手之后再转交给丙方开发;

在这种合作中,如果只涉及甲乙两方,流程还是顺畅的;

但是对于甲乙丙三方的合作模式,如果再关联其他对接方,简直就是离谱踹门而入,离谱想拆家;

在经历几次甲乙丙三方的合作过程中,对于夹板气的体会已经是铭刻在心了;

甲乙双方对于丙方来说,是提供需求单的甲方;乙丙双方对于甲方来说,是落地需求单的外包方;

合作过程中拉扯出个精分现象,都习以为常了;

下面基于甲乙丙三方合作的模式,来聊一聊外包所踩到的坑坑洼洼;


03


【如何选择外包公司】

在甲乙丙三方合作中,甲方交给乙方的业务,可能是基于信任关系,或者成本原因;

但是乙方想再找一个靠谱的外包团队,难度就会大很多;

乙方既然承接需求,最终都是想交付高质量的结果,从而加强双方的合作关系;

如果没有一个靠谱的外包团队介入,所谓高质量的结果根本无从谈起;

通常会先从过往的合作过且靠谱的外包团队中寻找,但是能找到的概率其实并不大,这里的影响因素有很多;

需求本身的复杂度,外包团队能不能承接,是一方面;

甲方对于需求落地的预期时间,与外包团队的介入时间是否符合,也是一方面;

乙方对于外包团队的报价能否接受,又是一方面;

如果合作过的团队中没有,则会优先从公司内部寻求推荐,比盲寻一个不知底的团队要靠谱很多;

这里存在一个关键的卡点因素;

虽然研发团队接触的外包人员多,但是碍于怕麻烦的心理,乐意介入的人很少;

所以需求最终交给一个新的外包团队的概率很大,也为后续的诸多问题埋下隐患;


04


【三方合作的流程机制】

首先还是先说一个基本原则,在复杂的协作中,明确流程是最基础的事项;

三方合作,实现需求,获取利益回报;

流程上看可能并不复杂,然而在实际协作过程中,又十分的曲折;

在明确协作的流程时,需要把握需求的三个关键阶段:排期、研发、交付;

这里阶段划分是站在研发的角度拆解,从项目经理或者决策层看又是另一个说法了;

在研发视角下,虽然依旧是围绕排期、研发、交付三个阶段;

但由于涉及三方协同,各个阶段的事项都会变的繁杂;

流程的推进和问题解决,都要进行三方的统筹协调,麻烦事也从不缺席;

排期阶段

  • 乙方接受甲方的需求单和报价,并寻求丙方做需求实现;
  • 丙方围绕需求单进行拆解,输出项目计划书以及报价,乙方认同后达成初步合作意向;
  • 乙丙双方就排期与甲方达成共识后,三方就各自的合作签订外包合同;

研发阶段

  • 丙方就需求完成设计,在甲乙双方评审通过后,正式进入开发阶段;
  • 丙方需要定期将开发进度同步给乙方,乙方确认后也需要定期汇报给甲方;

交付阶段

  • 理论上丙方在自测完成后,再交付给乙方进行验收;
  • 乙方在验收阶段承担的压力比较大,本着对客户关系负责的态度,需要实现高质量的交付;
  • 甲方验收通过后,进行线上部署并交付项目材料,最终完成合同的结算流程;

流程终究只是对协作的预期设定;

在实际的执行中,会有各种问题层出不穷;

很容易把各方都推到情绪的边缘,进而导致系列关联的效应问题;


05


【三方合作的沟通问题】

如果从三方合作的问题中,选一个最大的出来,不用证明都确定是沟通问题;

沟通不到位,问题容易说不清楚,解决问题的很多动作可能都是抓瞎;

由于三方的合作是远程在线模式,不是当面表达;

沟通频率本来就低,等到发现问题解决思路不对时,耽误的时间已经久了;

如果返工;

那排期又需要重新协商,又会引起一系列必要的麻烦问题;

这种情况,对于乙方的项目经理来说;

身处甲丙两方的极限拉扯之中,会经常在离职和跳槽的情绪中不断徘徊;

然而也不乏一些花哨的操作,将甲乙丙三方拉扯到一个协作群中;

如果甲方不介意乙方寻找外包实现需求,那么三方在群里及时沟通和解决问题的效率也会高很多;

但是大部分的甲方还是介意的,很多沟通都是由丙方到乙方,乙方再转述给甲方;

传话游戏玩到最后,驴头不对驴嘴的现象十有八九;

所以,很多的外包合作群中;

可能都是存在着甲乙丙三方人员,只是乙丙对甲方语调统一,以此避免信息传递的问题;


06


【需求落地的质量问题】

对于三方合作实现的需求,质量高不高?

比较肯定的回答;

可能有一定的质量,但是高质量的期望建议打消,说不定还有一丝惊喜;

质量依赖靠谱的外包合作方,这本身就是一件有难度的事,看脸和运气都没用;

专业负责的外包团队少有,所以其团队的业务有持续性;

在实际协作过程中出现的问题少,才可能更加专注于需求本身的落地实现上;

然而真实的现状是;

外包团队会在需求排期内尽快完成,投入越少,收益越大;

比如:实现一个需求,估时30天,费用10W;

如果在15天内完成需求,相当于成本投入缩减一半,这样在30天内可能实现多个需求;

鉴于这种策略之下,很多需求的实现可能都是仓促的,质量上自然很难保证;

所以对于质量问题的把关,压力会给到乙方,在交付验收时做好时间差管理;

乙方预留一部分时间段,对丙方交付进行验收,如果出现问题及时修改,避免传递到甲方;

当然了,混乱验收和测试也是常见的骚操作;

不乏一些丙方拿乙方的验收当测试,乙方拿甲方的验收当测试,以此来降低自己的时间成本;

由此导致三方合作裂开,尾款结算的问题,甚至对簿公堂也不少见;

虽然不是三方负责人乐意见到的,但又是三方都很难把控的事;

最终结果就是,不但成本没少,事情还更多了;


07


业务需求外包,是比较常见的一种手段,只是过程与结果的把控难度较大;

对于甲乙两方来说;

可能是利益驱动,可能是社会的人情世故,从而建立了合作关系;

对于乙丙两方来说;

则是单纯的利益考量,从而形成了短期的合作;

然而对于那些身处甲乙丙三方合作的网友们,只能在内心轻轻的嘀咕一句:人在社会,身不由己

相关文章:

2023年:我成了半个外包

边线业务与主线角色被困外包; 012022年,最后一个工作日,裁员的小刀再次挥下; 商务区楼下又多了几个落寞的身影,办公室内又多了几头暴躁的灵魂; 随着裁员的结束,部门的人员结构简化到了极致&am…...

HTTP中GET与POST方法的区别

1. HTTP HTTP即超文本传输协议(Hyper Text Transfer Protocol),是因特网上应用最广的一种协议。 设计目的:保证客户端与服务器之间的通信(发布和接受HTML页面);工作方式:客户端-服务器端的请求-应答协议 …...

使用ChatGPT需要避免的8个错误

如果ChatGPT是未来世界为每个登上新大陆人发放的一把AK47, 那么现在大多数人做的事,就是突突突一阵扫射, 不管也不知道有没有扫射到自己想要的目标。每个人都在使用 ChatGPT。但几乎每个人都停留在新手模式。 避免下面常见的8个ChatGPT的错…...

ELK日志分析--Kibana

Kibana 概述 部署安装浏览页面并使用 1.Kibana 概述 Kibana-是进入Elastic的窗口使用Kibana,可以 1 搜索,观察和保护。 从发现文档到分析日志再到发现安全漏洞,Kibana是您访问这些功能及其他功能的门户。 2 可视化和分析您的数据。 搜索隐藏的…...

PPP点到点协议认证之PAP认证

PPP点到点协议认证之PAP认证 需求 如图配置接口的IP地址将R1配置为认证端,用户名和密码是 huawei/hcie ,使用的认证方式是pap确保R1和R2之间可以互相ping通 拓扑图 配置思路 确保接口使用协议是PPP确保接口的IP地址配置正确在R1 的端口上&#xff0c…...

设计模式之建造者模式(C++)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 一、建造者模式是什么? 建造者模式是一种创建型的软件设计模式,用于构造相对复杂的对象。 建造者模式可以…...

linux常见的系统日志

我们了解一下常见的系统日志,知道哪些需要收集 1. /var/log/boot.log linux中/var/log/boot.log是系统启动时的日志,其包括自启动服务。 2. /var/log/btmp linux中/var/log/btmp是记录登录失败信息的日志,是一种非文本文件,可以使…...

支付系统中的设计模式09:组合模式

现在就剩下怎么能够实现运营部提出的「打印出平台顾客购买的商品小票」这个需求了。 我们去超市买完东西之后,都会收到收银员打印出来的小票,就是商品清单、价格、数量和汇总的信息。下面这个我想应该99%的人都见过吧。 图三十七:超市购物小票 线上也是一样,也会有这种购物…...

Linux 文件权限之umask

目录一、文件默认创建权限二、文件默认创建权限掩码三、文件权限的修改本文主要讲解Linux中的文件默认创建权限相关的内容,涉及到的内容有:文件默认创建权限、文件默认创建权限掩码、文件访问权限的修改。 文件访问者共三类:文件所有者、文件…...

SAP ABAP 理解RAWSTRING(XSTRING) 类型

用F1查看的时候,这里是这样说的: The types RAWSTRING and STRING have a variable length. A maximum length for these types can be specified, but has no upper limit. The type SSTRING is available as of release 6.10 and it has a variable …...

Linux核心技能:2023主流监控Prometheus详解,附官方可复制中文文档教程

Prometheus既是一个时序数据库,又是一个监控系统,更是一套完备的监控生态解决方案。作为时序数据库,目前Prometheus已超越了老牌的时序数据库OpenTSDB、Graphite、RRDtool、KairosDB等,如图所示。 (来源网络&#xff0…...

金山文档这样玩,效率「狂飙」

1985年,微软发布了第一代的Excel。现在,Excel成为了许多打工人的必备工具,却也在很多人的日常工作中,带来了海量跨表同步、大批数据对齐的日常繁琐工作,逐渐沦为“表哥”“表妹”。多维表,是新一代数据效率…...

【类与对象】封装对象的初始化及清理

C面向对象的三大特性:封装、继承、多态。具有相同性质的对象,抽象为类。 文章目录1 封装1.1 封装的意义(一)1.2 封装的意义(二)1.3 struct 和 class区别1.4 成员属性设置为私有练习案例:1 设计…...

【算法】——并查集

作者:指针不指南吗 专栏:算法篇 🐾或许会很慢,但是不可以停下🐾 文章目录1.思想2.模板3.应用3.1 合并集合3.2 连通块中点的数量1.思想 并查集是一种树型的数据结构,用于处理一些不相交集合的合并及查询问题…...

Python3,为了无损压缩gif动图,我不得不写了一个压缩神器,真香。

gif动图无损压缩1、引言2、代码实战2.1 模块介绍2.2 安装2.3 代码示例3、总结1、引言 小屌丝:鱼哥, 求助~ 求助~ 求助~ 小鱼:你这是告诉我,重要的事情 说三遍吗? 小屌丝:你可以这么理解。 小鱼&#xff1a…...

文献阅读 An implementation of the seismic resolution enhancing network based on GAN

题目 An implementation of the seismic resolution enhancing network based on GAN 基于GAN的地震分辨率增强网络的实现 摘要 对于地震数据,本文利用深度学习来学习不同层次的特征并将它们合并以恢复缺失的分辨率。 将GAN网络引入到地震数据处理;对…...

Google员工说出了我不敢说的心里话!

前言:本文来自Beyond的投稿,码农翻身做了修改。今天在Medium上看到一篇文章《The maze is in the mouse》,是一个刚从Google离职的员工写的,揭开了Google内部的各种问题,引发了很多人的共鸣,到目前为止&…...

“御黑行动”进行中,三月重保单位已开放接入!

三月重保在即,对于诸多政企单位来说,正面临着特殊时期的安全保障工作这一重要“大考”。 面对越来越专业且隐匿的攻击,各单位承受着巨大压力,尤其是政府、国企、央企等具有重要地位及广泛社会影响面的单位,其网站及业务…...

taobao.top.oaid.client.decrypt( 端侧OAID解密 )

¥开放平台免费API不需用户授权 解码OAID(Open Addressee ID),返回收件人信息。该接口用于客户端直接查看订单隐私数据,解密数据不经过ISV服务器,且包含风控等安全检测。 公共参数 请求地址: HTTP地址:http://gw.api.ta…...

QT+OpenGL鼠标操作和模型控制

文章目录QTOpenGL鼠标操作和模型控制鼠标拾取理论有点小复杂从鼠标计算射线第 0 步:2D 视口坐标第 1 步:3d归一化设备坐标第 2 步:4d齐次剪辑坐标第 3 步:4d眼(相机)坐标第 4 步:4d 世界坐标代码展示模型控制多模型加载…...

在软件开发中正确使用MySQL日期时间类型的深度解析

在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

vscode(仍待补充)

写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

【JVM面试篇】高频八股汇总——类加载和类加载器

目录 1. 讲一下类加载过程? 2. Java创建对象的过程? 3. 对象的生命周期? 4. 类加载器有哪些? 5. 双亲委派模型的作用(好处)? 6. 讲一下类的加载和双亲委派原则? 7. 双亲委派模…...

CSS | transition 和 transform的用处和区别

省流总结: transform用于变换/变形,transition是动画控制器 transform 用来对元素进行变形,常见的操作如下,它是立即生效的样式变形属性。 旋转 rotate(角度deg)、平移 translateX(像素px)、缩放 scale(倍数)、倾斜 skewX(角度…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一:使用Read()读取文件2.3、方式二:bufio读取文件2.4、方式三:os.ReadFile读取2.5、写…...