(转)如何有效地管理好技术团队?

2023-11-05

转自(https://cn.100offer.com/blog/posts/307

技术管理是一个综合性岗位,要求你具有技术能力、管理能力,也要懂一些心理学,情商也要高一些,说实话,你想做好这个岗位,真的不容易,尤其是在中国。我相信今天的分享过程中,您可能会对我分享的经验有些疑问甚至质疑,这都是正常的,我们可以去书店看看,管理类的书每隔一段时间就会换一批,80年代世界学亚洲四小龙,90年代学日本,近20年学美国硅谷,现在中国起来了,大家开始学华为、学阿里、学腾讯。这就是管理,它确实是在变化着的。它不像技术书籍,比如C++,一本C++ Primary出了11个版本,流行了几十年。我在InfoQ和IBM开发者论坛担任专栏作家,今年下半年开始重点针对技术管理工作写了一些文章,坦白说,一般来说写完一段时间后我就在考虑有些内容可以做些修改,因为每天都在出现不同的状况,每天都会学到新的管理方法论,无论是偏向纯技术的管理,还是偏向项目流程或是针对人的管理。

 

本次 Live 主要包括以下内容

1. 优秀的技术管理者需要具备哪些能力?

2. 从四个维度谈谈如何做好团队管理

3. 产品开发过程的管理

4. 技术调研 VS 技术预研?为何需要参与调研和预研?

5. 软件架构责任以及业务、技术、架构三者关系

 

一、优秀的技术管理者需要具备哪些能力?

今天的分享主要针对技术团队管理者品质、团队管理的四个维度、产品开发过程管理、系统架构理念等几点内容,时间有限,不能针对各个方面深入介绍,请大家见谅。其实我们作为技术团队管理者,每天都需要关注技术、产品的发展趋势,也需要具备产品意识,所以我们的工作范围也会包括新技术理解(英文文章阅读和翻译、技术框架原型搭建)、产品布局(专利)等等,

对于一名技术团队管理者来说,他需要具备一些品质,例如成熟、勇敢、热爱技术、勤奋、脚踏实地、逻辑能力、公平、一线作战精神、决策能力、开放姿态、为人处世、真诚、宽容、仔细、终身学习、时间管理、以人为本、身体健康等。这里时间有限,我举几个例子。

1.成熟

技术团队内部有一些员工,也许他们不善言辞、不会说好听的话,但是只要你交给的任务,一定尽全力完成,遇到有不懂的地方会主动请示、沟通,个人姿态摆得很低,这样的员工内心非常成熟,知道如何做事,体谅上级、努力工作,而不是把精力放在正经工作以外的地方,这样的员工是团队的中坚力量,是不可或缺的成员。我认为衡量一个团队的凝聚力是否强大,看看这类员工占比多少就知道了,缺少这类员工的团队,一定不会有什么了不起的成绩。

每天回到家,我开始我的另一份职责[1],洗澡、洗衣服、陪孩子学习、陪家人聊天、写作,这就是生活,一个男人结婚、生子后的生活一定是与单身时不一样的,也不要觉得这不是男人干的活,要能理解生活,主动且乐于承担生活的重担。

坦率地说,我作为一名技术面试官,一直对较为成熟的、能吃苦的、能理解别人的人,情有独钟。身在职场,我们都需要可靠的团队成员一起帮扶前进,团队很重要。任何不成熟的人,最终都会在职场上流露出他的自私、明哲保身、浮躁、乱说话、懦弱等品质,所以一些自认为能力很强,认为自己不受重用、永远在底层的员工,在埋怨领导之前,你应该多多自我反省,是不是工作职责没有承担起来,是不是自己的为人处世让别人很难堪而不自知,是不是开口闭口都是以自我为中心。

2.勇敢

我们作为团队负责人,也应该有硬汉本色,不能惧怕外在的威胁,团队成员都在看着你,你决不能懦弱,要勇敢。举个例子,很多时候并不是你想团队怎么发展它就怎么发展的,很有可能你的团队刚刚明确产品目标、技术目标,人员也根据这些目标招聘到位,正准备大干一场的时候,忽然听说也有另外一个团队在做一模一样的事情,别以为这是笑话,很多大公司都存在这类问题,即缺少顶层设计(也许是顶层故意设计的,让两个团队竞争)。面对这类情况,你可以选择退缩,转向另外的方向,也可以选择混混日子,等着被解散,我觉得无论哪种选择,你的团队都有可能瓦解,谁都有自己的职业定位,想做的产品、技术没了,有能力的人就不跟你玩了。我个人更倾向的是,在领导层不明确谁做的前提下,对内组织团队尽全力做下去、做好,对外力挑责任。

我想到了电视剧《长沙保卫战》的对话,参谋长对薛岳将军说:"你若下地狱,我绝不上天堂"。这也是我在团队遇到严重挑战的时候,我对所有成员说的第一句话,想做成事情,你或者你的核心下属,必须站出来。

3.热爱技术

虽然我个人不太认同阿里的一些价值观,但是他们确实在技术上做了蛮多工作,推动了一些技术发展。2016年"天猫双11全球狂欢节",单日交易额定格在1207亿元,被阿里定义为整个社会走向"新零售、新制造、新金融、新技术、新资源"的起点。经过8年的双11锻炼,2016年阿里技术创造了惊人的记录—每秒同时创建17.5万笔订单以及1秒钟同时完成12万笔支付,支撑起了全球范围内最为庞大且复杂的交易体系和交易规模。正如阿里CTO所说,如果没有对梦想的坚持,以及对实现梦想的不懈努力,阿里不会是现在的阿里。实现梦想需要有强大的技术实力作为基础。以计算为例,双11有大量的计算,一切关于搜索、推荐、人工智能的"梦想"都需要计算平台的强力支撑,阿里如果不打破传统Hadoop框架的藩篱,自研非常高效的离线和实时计算平台,用户在交易的过程中就不可能有现在的体验。

我在IBM开发者论坛发表了20多篇文章,有一次同事通过一篇文章搜索到了所有文章,他很吃惊,跑来和我说,只有非常喜欢技术的人才会这样做。是的,我很喜欢技术,所以我才会和喜欢技术的人相处得很好,才可以一直带领着软件开发团队。

说点自己的想法。我对团队的技术要求一直都是"我们输出或者呈现给别人的技术能力,需要且必须是在公司内部占据技术权威之一,说是之一,是因为不能否定公司内部类似技术领域部门的技术能力。我们必须让别人知道我们是专家,我们团队很牛。如果被别人列举我们团队技术怎么这么差,我会认为这是对我人格的侮辱,我会非常的愤怒,只要我是这个团队的领导,我决不允许这种情况发生"。有一点需要注意,只有做好当前的事情,你才有资格谈技术理想。

4.一线作战精神

2年前的一个夏天,我带领的团队购买了10多台服务器,用于分布式计算实验。收到到货的消息后(到货时间很难估算,所以没有提前联系货车),相信一般领导都会让下属或自己联系货车,但是我评估了一下时间,需要等2周时间。我们等不起,所以我带着1个下属,骑着自行车到了仓库,然后和大客车师傅(多厂区之间运送工作人员)商量是否可以把机器放在行李层进行运输,得到肯定的答复后我俩把服务器运上车,然后我让他骑车回去,我跟着车一起回,回来的路上给其他的组员打电话,全部到楼下集合,自己抬上去。一个下午完成服务器运送、搭建、调试网络等等所有工作(路由器、插线板、网线等等我已经提前准备好了)。这是我所理解的一线作战精神、作战方式。

 

二、从四个维度谈谈如何做好团队管理

关于团队管理的四个维度,主要包括向下管理、向上管理、对外管理、自我管理。

1.向下管理

 

(1)技术尊重

要了解程序员,你首先需要深入理解他们使用的工具、流程,以及程序设计的艺术。你理解得越深入,在和下属程序员进行技术对话时,参与能力就越强,越容易获得他们的尊重。微软的一位程序架构师这样评价比尔.盖茨:"盖茨最喜欢和他的程序员一起将程序分析到比特、字节层面。在技术战斗中他可以非常轻易地守住自己的阵地,他之所以可以获得程序员的尊重,因为他可以轻易地战胜他们"。

成功地管理程序员最重要、最关键的因素,是得到你管理的下属的技术尊重。如果没有技术尊重,那么你的每一个具体想法,都可能会遇到主动或者被动的阻碍。正是由于这个原因,那些在职业生涯的某个时期没有做过程序员的团队管理者,才会觉得有效地管理程序员是极其困难的事情。

(2)进度管理

我有一块小白板(不是那种很大的),我把它放在自己的面前。每天早上我都要写上今天需要参加的会议、自己要做的事情,此外,每天上午半天时间我会和每一个项目(产品开发、预研、调研,都可以)的团队成员过一遍当前进展。大家坐下来,好好谈谈已经实现的设计或代码,对疑惑、问题进行讨论。因为这种方式可以确保自己不仅仅依赖于状态报告、项目时间表,这种方式也可以让你能够接触到说真话的员工,他们会告诉你哪些地方做的不够好,并且会主动请求团队管理者帮助,而不需要团队管理者来催促他们。最高效的团队管理者往往都是坦率的,也往往对下属有足够的时间,能让员工找到他们说出自己的想法,他们会认真倾听。

如果往长远看,一些虽然不紧急但是很重要的事情,如果迫于压力被放下后,到后面往往需要花费好几倍的代价才能弥补回来,技术管理者需要时刻保持警惕,警惕地做出决策,做正确的事情,要能够为公司的长远利益负责。

(3)保护成员

我们做过项目的团队管理者一般都有这样的经历,团队成员正在专心处理现场问题,莫名其妙被人投诉,投诉可能来自市场部门,也可能来自技术支持,或者兄弟研发部门,所有情况都有可能。也容易出现团队成员每天被大量无用的会议烦扰,不去的话就要被投诉,这类情况在大公司司空见惯。

我们要学会保护团队成员,让他们免受组织中每日泛滥不绝的各种问题、争议和"机会"的干扰。在大一些的公司内部,官僚主义政治会通过各种文书工作来忽略或者缓冲每天的各种请求和问题。在小一些的公司里,面对挑战的是各种销售驱动的机会、客户驱动的争议问题,以及管理驱动的想法,你作为团队领导者,可能是他们最后或者唯一的防线。

(4)任务责任制

每项任务都必须有且仅有一位负责人(Designated Responsible Individual,DRI),如果有两个指定负责人,那就没有人负责了。开发经理的职责是确保为每项任务指定负责人,而不是亲自去完成每一项任务(开发经理可以指定其中的某一项工作由自己直接负责)。应当明确每项任务,确保为每项任务指定一个负责人,推进任务。还要定期检查以下三个问题:"是否清楚整体的目标?是否清楚你的任务对实现整体目标有怎样的贡献?对于你所负责的那部分,有哪些东西妨碍你达成目标?"。我自己的做法是,只有担任任务责任人的同志,才能在考核中得到良好或优秀的评价(前提是把事情做好,做不好就要承担责任),没有担任任务责任人的同志,最多只能给予合格评价。

我们实行了任务责任制,这种长期责任,不是我们的管理保守了,而是在内、外合规的条件下,鼓励在集体主义下的个人主义更好地发挥。我们呼唤英雄,也要宽容英雄的一些过错。英雄要更加自律,天降大任于斯人也。

2.向上管理

 

向上管理其实是四个管理方向里最难的一点。什么是向上管理呢?向上管理指的是如何有效管理你的老板以及你要汇报的那些人。另外你还需要弄清楚如何汇报、如何沟通,以及要采取什么样的其他行动,才能让你的老板认为你是一个高效而成功的程序设计经理。

管理你的老板看起来似乎是一件比较奇怪的事情,但实际上成功地管理好你的老板可能比管理好你的团队还重要,至少对你个人而言是这样的。这背后的原因在于,成功并不只在于你做了什么,更需考虑别人如何看待你所做的成果,现实中外在认知往往比实际行动更重要。

3.对外管理

当你被聘请或提拔为程序设计经理时,你需要仔细研究组织架构图,找到各个职能部门的主管,想办法让自己逐渐了解他们,或者是各部门中与你同级的经理。请他们吃午饭,或者偶尔停下来跟他们聊聊天。提前建立起彼此之间的跨部门纽带关系是很有必要的。以后你真需要向他们发出请求或寻求帮助的时候会更加容易。

跨部门的纽带关系不仅能帮助你自己,也是促进不同部门团队之间双向协作的重要途径。在跨部门活动中,尽可能成为一个领导者,而不是追随者。你的主动参与将提高你在整个组织中的形象,帮助你在很多看不见的方面取得成功。你在这些活动中花的时间,将会获得大量回报,因为它们可以提高你的工作执行能力。

4.自我管理

"平级很难管理怎么办",这是网友的一个问题。看到这个问题时,我想起了米歇尔[2]在去年美国大选之前的民主党全国代表大会上,这样描述自己的想法,"When they go low,we go high"。当你遇到你觉得很难相处的人时,你需要告诉自己,保持自己的职业素养,不要轻易被别人激怒、烦恼,依然保持一颗平常心,努力把自己的工作做好。

对于平级的人,你确实拿他没办法,我的建议是找你们共同的领导反映你的困惑,或是通过你的领导找到他们的领导,由领导层沟通。对于所有的管理类问题,我觉得首先要自我检查,确保不是自身的问题,然后是沟通,保持高效、简单的沟通,这样可以帮助你至少说出自己的困惑,最后是放松自我,不要被不值得的事情或人所烦恼,过好自己的每一天,全力做好自己的工作,不断提升自我价值,抽出时间陪伴家人,这才是你应该做的。

 

三、产品开发过程管理

1.开发进度管理

"向进度落后的项目中增加人手,只会使进度更加落后",这句话摘自《人月神话[3]》。

根据伊格尔森定律[4]:"自己写的代码如果有半年时间没有看过,就跟别人写的代码没什么区别了。"这句话的意思是,代码看起来会很混乱,难以理解,并且同样无法通过进度估计来预测项目成功完成的时间。

《华尔街日报》的一次采访中,微软CEO纳德拉透露自己每月有一个周五会和公司最高领导层开一次8小时的会,在另外的3周里开4小时的会,讨论的内容从财务表现到产品使用率的实时数据,覆盖面相当广。他这样做的目的是为了可以让公司的高级管理层保持统一战线。

为了有效控制进度,开发经理需要请各个小组每天召开"晨会"检查昨天进展,布置当天工作;另外,每周五下午召开周例会,项目组全体成员参加。

(1)晨会

晨会的检查基准是各个小组的底层计划,以检查和确认为目的,不展开讨论。晨会规定在15分钟以内,每个小组的成员站在白板前面完成。步骤如下:

第一步,检查状态。成员逐个说明昨天任务的完成情况,今天计划的工作任务,以及遇到的问题。确认任务的完成情况不涉及执行细节,仅需要回答:"完成"或者"未完成"。开发经理进行标准,一般任务按时按成可用打钩表示,未按时完成需要特别标记出来。检查完成后,将任务的完成情况分成三类:"按期完成"、"延迟完成"和"延迟中",并进行汇总统计。

第二步,调整计划。根据昨天任务的完成情况和个人任务的调整,小组一起对"底层计划"进行适当调整,确定当天每个人的工作任务。

第三步,解决问题。首先审核昨天列出的问题的状态。然后,将今天每个提出的问题记录到白板上。除非可以当场解决的简单问题,否则不对问题展开讨论,只记录到白板的问题栏。会后由相关成员讨论问题的解决方案,或另行安排时间专题讨论。

(2)周例会

周例会检查和调整项目计划,需要一定的讨论。关注的问题是:任务完成了吗?没完成的原因是什么?怎么调整?先确认了状态,再讨论该如何调整工作或计划,并一定要落实到具体的行动方案上。

姓名

 

部门名称

 

项目名称

 

时间

 

上周主要工作

     

编号

工作内容

周一

周二

周三

周四

周五

周六

周日

合计

结果

未完成原因

1

                     

2

                     

3

                     

只有提前建立工作结果的验收标准,才能确定如何才算是完成任务了。

项目计划要想落地,需要细化分解到每个人的工作任务中去。个人工作计划可以通过白板的方式管理,实时反映进行情况。

计划进行调整和更新是常态,因为"计划本身没有用,不断地进行计划才有用"。底层计划的管理使用简单的白板就可以发挥巨大的作用,可见,软件开发中"人"才是最重要的,没有"人"的主观能动性,再高级的管理工具也难以发挥作用。

2.项目管理重要性

项目管理是核心能力之一。而其他方面能力的积累也往往依靠项目管理能力的转化。譬如,核心技术的积累,首先是基于最佳实践,而最佳实践只能依靠强有力的项目管理能力才能脱颖而出。而把最佳实践转化成解决方案,也是靠项目管理能力的支撑。最后再通过项目管理,把解决方案转化成核心技术产品或平台。

很多开发经理会看轻项目管理能力,其实这是错误的。项目管理是一种软实力,只有逻辑能力强、对于业务和技术都非常了解的人才能既做好开发经理,也做好项目经理,其实也只有两者都能管理得当,我们的开发项目才能够真正发布成功。

项目管理的重要性,大致包含以下几条:

(1)支撑公司收入:无论是产品型公司,还是外包型公司,最终都在通过一个个项目的形式落地,你可以把一个产品从咨询开始到客户付款的整个过程当成一个项目。这时候,大家明白了吧,没有项目的支撑,公司哪来的收入?哪来钱养活技术人员?公司的注册资金不是用来发工资的,大家的工资是通过客户付款产生的。

(2)项目进度把控:技术人员很容易犯的错误是技术优先,对项目的进展不太关注,而项目管理的目标就是要让这一点不出现问题,也只有做好项目管理才能真正解决进度把控问题,你不能单纯地认为只需要给开发人员添加KPI就行了,如果真的可以,为什么会有OKR的出现?为什么日本的软件企业越来越不行了,要知道,他们可是KPI的发明人和强有力的执行者。

(3)人员工作安排:缺少强有力项目管理能力的技术领导,很容易让团队的部分成员陷入迷茫,提出的命题很大,但是落实到每位技术人员身上,一部分人会迷茫,他不知道每天应该干点什么,所以最好的方式是对工作进行拆分,每天的工作要能说清楚它的具体目标、要求标准等,这样才能让大家觉得自己的存在感。

 

四、技术调研 VS 技术预研?为何需要参与调研和预研?

1.调研和预研差别

 

 

技术调研和技术预研是存在一定差别的,主要是立项时所处的环境、目的等存在差异,总结起来可以简单用一段文字描述:

技术调研是针对粗粒度需求的实现方案研究,很有可能对所需技术根本不清楚,需要通过调研项目完成技术了解、技术选型、技术可行性分析、技术方案设计等。技术预研是针对细粒度需求的实现方案预先尝试,主要是针对通过技术调研所选择的技术,结合我们产品化时的实际需求,对实现时存在的不确定性因素、细节等进行预先研究、尝试,为产品化过程减少技术实现风险。

正是由于所处环境、项目目的的不一致,所以技术调研报告和技术预研报告的内容也会差别较大。技术调研报告侧重于阐述从需求整理到明确方向,再到搜索技术调研方案以及初步筛选,接着是具体的测试方案确定、测试环境搭建、测试用例编写及运行,最后是针对调研项目所提出的一些实际业务场景的运行数据对比、分析,通过解释数据产生的原因,明确下一步计划。技术预研首先根据细化的需求(有可能是产品化需求的一部分难点需求)对系统整体进行定义,接着通过列举方案明确本次预研论证过程,再通过论证过程反复执行列举、论证、推翻、再列举这一过程,最后是对本次预研获得的最终结论进行总结,为产品化提出技术验证通过结论。

从最终的输出报告来看,技术调研一般针对每一项技术都会有一份单独的报告,然后汇总一份调研报告(对各项进行汇总、对比、总结),而技术预研一般只有一份预研报告,通过这份预研报告说明是否预研项成功,是否可以采用该种方案、技术进行下一步的产品化立项。

2.参与的重要性

对于一个技术负责人来说,你的职责范围内有许多工作需要执行,比如组建团队、了解产品,但更重要的是设计靠谱的技术方案。

首先要了解系统存在的问题,要了解产品未来的走向,要了解技术团队的现状,针对这三点,你需要亲自操刀,设计一个针对目前最优的技术方案。

为什么要亲自呢,因为你是技术负责人,如果你不了解技术,就无法进行技术管理,如果亲自主导或参与了设计,你就能有针对性地去解决问题,即便将来系统遇到瓶颈,你也能更好的优化或者重新设计。不要用各种理由不去做这个事情,在任何阶段这都很重要。再者,如果别人问你,你的设计和其他公司的设计方案有什么区别,或者是否可以用开源那些框架搭建起来替换你们自主研发的框架,你怎么回答?你如果没有对类似的技术、框架进行过调研,你怎么能够准确地回答这些问题,如果没有对技术难点进行预研,你怎么敢把设计对应的需求写入产品化需求,你不怕最后实现不了吗?

为了更好地设计系统、理解技术,你一定需要组织调研项目和预研项目,这是因为你或者团队不可能什么技术、框架都懂,技术的发展非常快,只有不断地针对新出现的技术进行调研、总结、预研、总结,不断地往返这样的过程,你才能够真正跟上技术发展的潮流,否则终有一天你会被技术岗位淘汰。

 

五、软件架构责任以及业务、技术、架构三者关系

1.软件架构责任

 

一个软件,因为某个业务虚拟化的需要而产生,后续不断地更新、修改,推动软件逐渐变异、长大,当该软件不再被需要(因为业务的消失),或有更好的软件来替代时,该软件就会被废弃,完成使命而消亡。软件的整个生命周期也会发生切分,从而形成两个子生命周期,即软件开发生命周期和软件运行生命周期。

作为软件架构师,必须时刻把针对软件的生命周期和业务的生命周期的识别放在第一位。软件生命周期的核心在于软件运行生命周期,以及围绕软件运行生命周期的拆分和组织,业务生命周期的核心在于围绕业务核心生命周期的拆分和组织。

对于软件生命周期,必须要深入思考软件开发的生命周期和软件运行的生命周期。在这个基础上,要根据业务的情况合理地进行软件开发生命周期的架构分拆,以及软件运行生命周期的架构拆分。软件开发的拆分和软件运行的拆分的目标最终都是为了支持业务流量的增长。

在代码层面,要对业务代码和访问代码做好架构拆分。业务代码是软件访问生命周期的核心,软件运行的拆分受限于软件代码的拆分。因此要确保业务代码符合业务的生命周期,使得业务生命周期活动的结果积累在生命周期的主体上,也就是内聚性,避免散落到访问代码中。这样软件的拆分就不会有太大的问题。

架构在软件发明前就已经存在很久了,我们应该多向大自然、艺术界、建筑界学习架构,因为软件并不是虚无缥缈的事物,它和我们的现实生活是紧密相关的,它的实质是来源于生活,最终又通过软件服务回到生活的一个全过程实践。企业软件架构的设计不仅仅要注重于某一个系统功能,更需要给企业一个可进化的、可持续发展的、不断创新的平台,这和国家的整体发展也是类似的,只顾经济发展指标,不管不顾任何的环境污染,甚至于某水务局副局长说"经济越发达的地区,水越黑!",一派胡言、其心可诛,急于求成,急于靠GDP让自己升职,才是这些人内心的写照。

团队达到一定规模之后,技术管理者的架构职责(也可能是有独立架构师存在)的主要时间就需要花费在思考上面了,当然你也可以继续编程,但是编程的目的是验证架构是否合理,所以不要受是否需要编程这一思维的束缚。如果设计得不好,那么团队就会走很多弯路,如果想要设计得很好,你必须自己或者带领团队做很多的测试、预研工作。作为架构职责,你需要多多思考,很多时候看起来很忙、事情很多,但其实真正思考时间太少了。

2.业务、技术、架构三者关系

业务、架构和技术之间是共生的关系,而不是互斥的关系。

技术人员很多时候所关心的技术,和业务的主要目标往往不是直接对应的。业务是负责某一部分的业务,只是业务架构树的分支节点。只有直接解决业务问题的那个技术或业务,也就是树的根节点,才会和业务直接相关。由于业务和技术属于两个不同的树,也就是说有两个不同的根节点,因此只有沟通才能解决问题。

技术总是在人类对业务目标要求不断提高的情况下产生,其目的是为了获取更大的利益。所以:技术是为了解决业务问题而产生的,没有了业务,技术也就没有了存在的前提;有了更好的技术后,效率较差的技术,就会慢慢地被淘汰,从而消失,一切都遵从人类的利益诉求。

不同技术之间有两种关系:

在解决同一个业务的前提下,更高效、更低成本的技术,会淘汰低效、高成本的技术。这是人类利益诉求所决定的;通常刚开始解决核心业务问题的核心技术的效率是比较低的,只是把不可能变成了可能。慢慢就会有提高的需求出现,改进技术的要求就会变得很迫切。技术所解决的业务生命周期慢慢就会开始发生拆分。非核心生命周期分离出去后,要么使用现在的技术来实现,要么形成新的技术,服务于更广泛的业务。

在业务生命周期拆分之前,技术是由一个主体串行地执行并工作的,这就是导致效率低下的原因。从业务生命周期中把非核心生命周期分离出去之后,非核心生命周期会形成新的技术,由不同的主体来执行。新的技术可以独立地与核心技术并行工作,提高了原有技术的效率。因为要解决的核心业务问题并没有发生改变,所以拆分所形成的是一个树状的架构。

也就是说,先有业务问题,才会有技术来解决业务问题。而业务的长达要求,提高了对技术的要求,导致了对业务生命周期的拆分,以并行的方式提升效率,形成了架构,也形成了新的技术。所以在这三者的关系里:

业务是核心,技术是解决业务问题的工作,而架构是让业务长大的组织方法。架构需要用技术来实现拆分,技术需要架构来合理组织,以提升效率。

这就是三者之间的关系。软件和业务最终是要合体的。

 

 

Q&A

Q1.我做技术十几年了,做管理也好几年了,技术还行吧。管理觉得很不成功。主要比较性格"面",对同事太软。是不是性格比较懦弱的人不适合做管理?

A1.首先,管理的本质是,对于表现比较好的团队成员要给予帮助,对于工作不负责任,能力差的就该怎么办怎么办.某种程度上来说,性格太懦弱的,确实不适合做管理者。我今年去校招的时候,遇到一个研究生女生,已经拿到了京东的offer,她技术问题回答的不错,后来询问她的性格,她告诉我说,她在毕业前和几个驴友环岛骑行一周,别人对他的意见不一,她说她会根据不同的意见进行汇总,好的积极听取,不赞同的会积极沟通,我认为她有较好的管理才能。

Q2.一个工程师A擅长做某事,但这件事跟工作无关,B希望A帮忙做这件事时,A拒绝了。然后,B向A的领导反映了这个情况。A的领导,应该如何处理呢?

A2.我们假设A做的事情是技术相关的,和工作无关的,首先,我要确定A做这件事情是在做完本职工作之外做的,如果是和公司发展有利的话,我可以帮助A一起做这件事情。同时,B没有必要一定要A帮忙做这件事情,可以自己一个人来做。这时候,要看领导是什么出身和看法,如果是技术出身,并且技术对公司发展有利的话,我会乐意一起做做这件事情。

Q3.一个紧急项目需要处理,负责这个项目的人休假了,又没其他人能接手。这种情况如何处理呢?

A3.首先,我是不允许这种情况发生的,我的每个任务都会确保两个备份成员,两个成员都要知道互相在做什么事情。可以A对B进行备份,C对B进行备份,A对C进行备份。互相备份的方式,如果出现一个人休假,就不会影响工作了。作为团队的管理者也要自己有动手能力,如果是在不行就要自己上了。如果出现一个人离职导致整个项目或者业务都要取消,这就是管理者的失职了。

Q4.A和B是工作中的搭档,项目出了问题,未查清原因前,A会当面说B做得不好,B为此生气。领导虽然进行了调节,但A和B关系一直很僵。领导该如何处理呢?

A4.一般来说,如果做技术管理的话,不太会出现这种问题的。因为,如果项目出现问题,作为管理者,我首先是要去问的,要去查明原因,而不是还没查明真相之前不要去说别人说的不好。做程序员要实事求是的,不要挑是非,这是一个人的职业素养。如果说真的出现这种情况的话,私下去找两个人说明清楚,同时要进行职业素养教育,不允许出现这种在人前去侮辱别人的情况。

Q5.如何打造公司产品的技术竞争力和质量?

A5.我始终认为技术和产品是不能分开的,如果抛开产品,只说技术的竞争力是没有意义的,任何技术和框架都是为产品服务的。你需要根据你们公司的产品进行调研,找出整个行业里做相同产品的人的技术框架,进行研究对比,优缺点,你就能知道用你的技术的竞争力和产品的质量行不行,而且你可以对产品进行完成的系统测试,并拿到数据。

Q6.请问作为团队的中层管理者,总感觉时间不够用,做好自己的工作的同时还要去兼顾管理,老师是怎么权衡的?

A6.我有几个方式,第一,我有一个小黑板,每天我会把自己要做的事情紧急程度进行划分,首先要去做的是最重要的和最紧急的事情。第二,我需要培养自己的左右手,把任务分好,让左右手帮忙我做这个事情。比如说我要做一个测试,我会把测试的思路讲清楚,让具体的人来做,把控整个流程,最终形成的报告进行检查。如果完全由我自己做这个事情,可能我一天都做不完,如果我把自己的左右手能力都培养好的话,我就可以空出时间做其他的事情。

Q7.团队中如何减少明显粗心大意导致的bug?如何提高团队效率减少加班甚至不加班?技术或者技术方案上的攻坚,管理者应该承担又或者做到什么?

A7.首先,第一个问题,如何减少bug,你们团队应该有代码审核环节吧?所有代码,每半个月或者一个月都有一次代码审核,可以把一个人的代码指定给3个人,可以公开式的或私下的代码审核。如果代码质量太差,可以公开式的去提问题提意见,让对方去改。过一段事件后,就会发现粗心大意这种情况就会减少了。另外,需要单元测试和集成测试、系统测试去把控测试过程。所有产品都要经过这3个测试才能发布,有些互联网项目如果时间比较紧急,可以做多轮测试去测试核心的功能。另外,在中国做IT不可能不加班,因为目前对于希望多输出的要求和期望太高了,我们只能说减少加班。如果管理者做的不错的话,可以提高整个的效率,一个是个人的效率,一个是团队协作的能力,都需要去培养。

Q8.比较偏技术向的,不写代码就手痒的,在小团队里面如何做好管理呢?

A8.我觉得写代码和技术管理没有冲突,可以每天给自己安排一些代码的工作,或者可以接触一些新的框架和调研的工作就可以了。只要每天把自己的管理工作做好,自己去写代码就可以了。最重要的是,你怎么去把管理工作进行细分,让别人觉得你管理做的很不错。

Q9.技术管理的技术要求?

A9.对于技术管理者最好是有团队用到的某项技术是比较深入的了解,其他还不错,是平均水平,这样你就在某个方面是拿的出手的,有说服力的。同时,你还要培养一些核心成员,这些核心成员不仅技术不错,而且还是尊重你的,这样这些核心成员就可以帮你把团队管理好。所以,你不需要全都很深入的了解,但是需要有拿的出手的技能,你的综合能力要比较强。

Q10.另外其实我个人性格是比较内敛的,会不会不太适合做管理层啊?

A10.我不认为内向的人不适合做管理者,生物学上来讲,内向的人感情更加丰富,大脑的脑电波的回路更长,内向的人对于别人心理的敏感度对外向的人更高。所以,你在家里和生活是可以内向的,但是工作该做的就去做,该说的就去说,否则就会影响你的职业生涯。如果你完全不喜欢说话的话,可以走一些技术专家的路线。现在技术专家也是很有前途的,现在所有成功的创业公司,都会有一个技术大咖做CTO,越是细分的行业越需要技术,你不说话没有关系的,你只要把你的东西做出来,技术深度展现出来就可以了。

Q11.如何提高团队的整体技能和效率?

A11.这是人员培养的话题,想要提升整体效率的话,首先要进行培训,我刚进公司的时候,都是工作几年配给我的,我觉得不太行,最好是我自己来招聘的。当时刚好赶上校招的两个学生,当时我们一起去深圳做项目的部署,做数据库的迁移,从关系数据库像分布数据库做迁移,中间我们做小程序来做这个事情,当时,我们在机场,我教他们来做这个事情,我们把需要做的工作项目都列出来,分工写好,一个在机房,一个在办公室,如何进行交互的分工,在机场全部分工完毕,之后我们到深圳一起进入工作状态,半个小时之后所有的机器到位,再过一个小时,所有数据迁移完毕,当时在场的工作人员,也就是甲方,第一次看到这个工作方式,工作效率和时间效率很高,就给了我们很高的评价。也问了一下团队的背景。所以总的来说,团队的效率提升是团队管理者的工作,要给他们洗脑,要告诉他们什么样的工作方式才是最职业的,也要有能力去总结归纳。

Q12.技术团队管理中对人和事的管理有何不同

A12.我比较喜欢的方式是就事论事,因为我比较年长,所以他们私下有什么问题都可以跟我讲,我也会帮助他们。如果回到工作方面,就事论事,如果事情做得好,我会奖励,如果工作做的不好,就算私下跟我关系多好都不行,该怎样就怎样。比如说加薪,我的态度是一定要按照绩效来,不能因为你家里条件差,就给你多加薪。也不能因为你家里条件好少加薪。我觉得需要对工作的绩效和产出进行负责。另外,人是一个有感情的动物,跟人交流无论是私下还是公开都要留面子,如果有问题建议私下进行简单有效的沟通,把你认为的问题的严重程度讲清楚,找到好的解决方案。

Q13.怎么才能增强自己在团队中的影响力?就是怎么找存在感?

A13.作为团队管理者,你要有很多的品质,你向下管理团队成员的时候,要有技术的影响力,让别人信服你的技术,你的影响力和存在感就有了。如果你是新到一个团队的,我建议你每天和大家一起吃早饭午饭,这样你的存在感就在了。或者每天找一位团队成员去交流项目的进展和遇到的问题,给予他一些帮助,或者一起改代码,一起做实验,也就是增强你的影响力,也就有存在感了。影响力和存在感其实是绑在一起的。你如果感到自己的影响力不够的话,你可以自己去找一些工作去做,比如说,我最近在研究阿里的代码编写规范,对其进行研究,我在总结这些东西的时候,感觉自己在写一本书,这样可以增强自己的影响力和存在感,前提是要把本职工作做好。

Q14.两种发展路径,技术和管理,哪个对技术要求更高呢?

A14.纯技术,纯管理和技术管理,这3条路径。阿里的一个合伙人,是一个技术大牛,阿里很多开源的框架一手都是他做的。但是他不适合做管理,他适合作一个老师傅,把一个资质不错的新人丢给他的话,这个新人过一段时间也就成了技术大牛。纯管理的话,对技术要求不是很高,更重要的是技术的宽度,这样容易进行沟通。技术管理的话,不仅要懂技术,还要不断学习新的技术,既要深度又要广度,还要很高的情商,还要懂一些心理学,为人一定要坦荡豁达。

Q15.请问跟团队里比较资深的技术,沟通,有什么技巧?

A15.我们举个例子,如果团队中有技术比你好,还比你大五岁的人,你该怎么办,这些人,可能是不喜欢做管理喜欢做技术,或者不适合做管理。首先,如果这个人人品比较好,你要去尊重他,像大哥一样去跟他沟通,在沟通过程中,要尽量展现自己的技术优势,让他觉得你还不错,凡事多听听他的意见,多沟通,逐渐他就会成为你的抓手和拥护者,关键是看他对于你的配合程度,如果技术比较好,你要更加尊重他。

Q16.小团队和大的团队管理有何不同?

A16.我觉得就和我们的分布式的系统一样,系统变大了,就要分为一层两层,如果团队大到一定程度之后,一定要对于团队职责进行细分,你要有小组长或者经理去帮你承担一些事情,他们能够管理好自己的小团队,所有的团队又可以通过3-4个人汇报给你,有些项目你可以亲自抓,有些项目你可以分给你的小组长,每个小组长都可以分到一些工作,这样他们每天占用一部分时间和你交互,其他时间你可以做自己的事情。

至于大团队和小团队的区别的话,如果是大的团队的话,你要把控的是整个产品和技术的方向,密度可能粗一些。如果是一个小的团队,团队工作的每一个环节,你都要负责到。

Q17.我目前团队中有人不服管教,不听指挥怎么办? 想听一下老师解决方法?

A17.我把你这个问题稍微扩大一下,我上周有一个读者遇到了一个问题,他空降到公司之后,很多人都不服。我建议是首先每天要找一些人去沟通,先找一些对他比较友善的人,评估下他们的能力,如果感觉还不错的话,把一些工作优先交给他们。当然首先要自己对于工作和业务熟悉下,尽快上手,在跟不服管教的进行沟通瓦解。肯定有一些人是不服管教的,如果你把情况稳定下来了,实在还是有不服的话,万不得已,只能开除掉一两个人。但是前提你要有产出,把本职工作做好,因为老板让你过来,是让你解决问题,有较高的产出的,所以 你要把产出的过程中的牺牲讲清楚,这样你才能得到你老板和其他核心骨干的支持。

Q18.那有没有什么团队管理的书籍推荐啊?

A18.我之所以要去写团队管理的书,是因为国内没有相关的一线城市实践类的书籍。如果是CTO的话,你可以去看看一号店或者京东CTO写的书,你可以搜一下,可能对你有帮助。如果你是高级经理的话,目前还没有有效的相关的书,很多是细分的,研发过程管理和系统架构的书可以参考下,技术调研也没有相关的书籍,纯管理的书可以看一些细分的书,比如说,如何和下属进行沟通,这类书籍,可以上京东搜索一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(转)如何有效地管理好技术团队? 的相关文章

  • 团队管理的四大挑战——招人篇

    团队管理的四大挑战 招人篇 招人篇 1 告诉 HR 你的团队需要什么样的人 2 尊重应聘者 3 你不需要套路 4 互补而不是趋同 5 如果犹豫 那么放弃 6 如何面试比你高阶的人 7 面试最重要的目的是识别风险 8 缺点易现 亮点难得 结语
  • [创业之路-73] :如何判断一个公司或团队是熵减:凝聚力强、上下一心,还是,熵增:一盘散沙、乌合之众?

    目录 前言 一盘散沙 乌合之众 凝聚力强 上下一心 一 股权结构与利益分配 一盘散沙 乌合之众 凝聚力强 上下一心 二 组织架构与岗位职责 一盘散沙 乌合之众 凝聚力强 上下一心 三 战略目标 一盘散沙 乌合之众 凝聚力强 上下一心 四 规
  • [管理与领导-63]:IT基层管理者 - 潜技能 - 1 - 职场中的陷阱 - 看清楚职场中的霸凌现象

    目录 前言 1 打击自尊心 2 孤立他人 3 恶意针对 4 当众羞辱 5 持续性否定 前言 职场中 什么样的人都有 害人之心不可有 防人之心不可无 前者教人从善 后者教善人如何保护自己受到 坏人 的伤害 有一种情形 每天上班都陷入抑郁 总是
  • [管理与领导-78]:IT基层管理者 - 核心技能 - 高效执行力 - 3 - 执行力的核心是拿到结果(ougput),而不是任务(input),也不是执行(过程、加工)

    前言 执行力的核心是结果 但并非所有人都理解 结果 对执行力的意义和作用 本文就是探讨对 结果 的理解 一 执行中常见的困惑 1 1 员工的困惑 接收任务 员工在执行工作过程中可能会遇到各种困惑 以下是一些可能的困惑情况 任务不清晰 员工可
  • 管理_立项任务书怎么写——毛宇菲

    内容转自公众号 硬件十万个为什么 作者 毛宇菲 当一个项目的很多细节点存在疑问的时候 那就说明这是一个 没有想清楚的项目 了 类似的有 项目目标不能量化 结果不可测量 投入资源不能衡量 等等问题 如何从源头上规避 没想清楚的项目 呢 第一
  • 如何做好项目的需求与业务调研?

    1 调研工作如何组织 很多人认为调研工作极难 水平最高的人才能做好一次调研 软件工程中也强调需求获取是最难的事情 有的人要么认为不过如此 甚至是一个普通技术支持都可以做的工作 现在有很多企业上管理软件之前都希望软件公司派人来了解情况 提出针
  • [管理与领导-60]:IT基层管理者 - 扩展技能 - 3 - 通过面试招到合适的人选

    目录 前言 一 招聘 1 1 什么是招聘 1 2 招聘 VS 招募 1 3 甄选 1 4 招聘中的重要原则 1 5 招聘的本质 1 6 人才匹配的维度 1 7 人员招聘中的误区 二 面试 2 1 何为面试 2 2 为什么面试 2 3 面试的
  • (转)如何有效地管理好技术团队?

    转自 https cn 100offer com blog posts 307 技术管理是一个综合性岗位 要求你具有技术能力 管理能力 也要懂一些心理学 情商也要高一些 说实话 你想做好这个岗位 真的不容易 尤其是在中国 我相信今天的分享过
  • [管理与领导-61]:IT基层管理者 - 潜技能 - 1 - 职场中的陷阱- 职场中常见的陷阱与应对措施

    目录 一 常见陷阱 二 应对措施 一 常见陷阱 在职场中 有许多常见的陷阱 下面是一些例子 过度承诺和无法有效管理时间 在职场中 很容易迫于压力而承诺过多的事情 导致时间管理困难和任务完成的延误 这可能导致质量下降 工作生活平衡失衡 甚至疲
  • [机缘参悟-101] :IT人 - 遵从世界本源的样子,不带个人情感、道德、认知倾向,接纳一切,你就拥有无限的力量

    目录 道的本义 如来的本义 观音的本义 无为而治本质是顺势而为 儒家的本质 感悟 道的本义本质 天地的力量和运行规律 天地以万物为刍狗 是出自 道德经 第五十章的一句话 在这句话中 天地 指的是宇宙 万物 代表着宇宙中的一切生物和事物 而
  • JAVA开发管理(敏捷诞生的历史背景)

    诞生背景 随着软件规模的发展和商业化 软件开发模式的管理显得尤为重要 在软件规模较小时 一个人就可以单独完成软件的编写 测试和发布 当软件规模和复杂度越来越高时 我们不得不进行协调工作 多人完成一个软件的开发 在没有管理的背景下 软件的编写
  • 技术部岗位职责——技术部经理

    一 制定工作计划 根据企业新产品开发 工艺技术改进计划制定技术部的年度 季度工作目标和工作计划 经批准后组织实施 根据产品研发与工艺技术发展需要 制定工艺试验研究计划 并组织实施 二 技术研发管理 编制本部门各项管理程序 新产品工艺技术标准
  • [创业之路-71] :创业思维与打工思维的区别

    其实打工思维和创业思维最核心的本质区别是你是否愿意去尝试 很多时候我打工的时候老板没发现我的潜质 所以我去创业了 这个没有 你打工的时候一定有一项极其长的长项 只不过当时你可能也没意识到 老板没意识到 所谓创业者和职场人没有本质的差异 但创
  • 二十九、springBoot的监控和管理

    Spring Boot包含很多其他的特性 它们可以帮你监控和管理发布到生产环境的应用 你可以选择使用HTTP端点 JMX或远程shell SSH或Telnet 来管理和监控应用 审计 Auditing 健康 health 和数据采集 met
  • 项目管理在公司的主要作用是什么?

    项目管理不光是需要公司的支持和承接项目就可以的 还需要项目管理者多方面的把控 以及执行才会达到更好 那么项目管理的主要作用是什么了 1 提升项目本身的经济效益 项目管理通过对时间 成本的掌控 达到项目的经济效益最大化 保证了公司的良性发展
  • 理事的三板斧-以项目部为例

    作为管理者来说 无非是理事 管人 这中间理事尤为重要 因为事理的不清楚 人肯定难管好 即使有个人魅力 队伍凝聚力强 事理的不对 也会事倍功半 长期的去看 团队也会出问题的 事理的清楚 我认为主要有三点 目标 流程 模板 目标清楚了 方向就不
  • 【操作系统】虚拟存储器概述

    存储管理分类 实存管理 分区 Partitioning 连续分配方式 包括固定分区 可变分区 分页 Paging 分段 Segmentation 段页式 Segmentation with paging 虚存管理 请求分页 Demand p
  • 并不是所有的程序员都适合做技术管理

    CSDN记者 张勇 写在之前 在CSDN博客闲逛时无意间进入一个博客 博客地址 博客里的文章质量很高 文章话题主要涉及程序员素养和管理 文章有翻译也有原创 看了几篇文章之后 突然很想和这篇博名为 呦呦鹿鸣 签名则引用孟子 穷则独善其身 达则
  • 【投资界学堂】创业者如何远程管理异地团队

    转自 http pe pedaily cn 201106 20110627214254 all shtml p1 摘要投资界6月27日消息 美国商业网站Under30CEO近日刊载文章 如何成功的远程管理团队 文章选摘了青年创业理事会提供的
  • MES11大标准模块(ISA95)

    1 资源分配及状态管理 ResourceAllocationandStatus 该功能管理机床 工具 人员物料 其它设备以及其它生产实体 满足生产计划的要求对其所作的预定和调度 用以保证生产的正常进行 提供资源使用情况的历史记录和实时状态信

随机推荐

  • Python第二课

    枭 Python第二课 今天讲解了Python的 内置函数 模块导入 序列 列表 切片操作 内置函数 divmod x y 用法 x y divmod a b 其中x返回值a b y返回值a b map func iterablies 用法
  • 4g网络设置dns地址_4G网速越来越慢,通过这三个简单的操作,网速成倍提升

    随着互联网的进步 从零几年开始移动手机在全国开始普及起来 网速也像火箭一样快速飙升 从2G发展到了现在的5G 不过 有很多网友表示 刚从2G或者3G升级到4G时 网速体验非常好 但近两年来的4G网速越来越慢 还卡顿 甚至感觉还不如以前的3g
  • 忘记网站服务器密码怎么办,忘记远程服务器的密码怎么办

    忘记远程服务器的密码怎么办 内容精选 换一换 如果在创建弹性云服务器时未设置密码 或密码丢失 过期 可以参见本节操作重置密码 密码丢失或过期前 已安装密码重置插件 公共镜像创建的弹性云服务器默认已安装一键重置密码插件 私有镜像创建的云服务器
  • Matlab—M_Map的实战学习笔记(一)M_Map库的安装

    最近在做美赛集训 做到了2020年的美赛A题 有关苏格兰附近鲭鱼和鲱鱼分布预测问题 在写论文的过程中 为了画几张精美的地图 可谓是历经千难万险 花费了不少时间 走了不少弯路 现在对使用matlab的m map映射库进行地图绘制做一个总结 力
  • Python:UnicodedecodeError编码问题解决方法汇总-彻底解决

    今天真的被编码问题一直困扰着 午休都没进行 也真的见识到了各种编码 例如 gbk unicode utf 8 ansi gb2312等 如果脚本程序中编码与文件编码不一致 就会报出UnicodedecodeError的错误 1 情景一 读文
  • python语法-面向对象(构造方法、魔术方法)

    python语法 面向对象 构造方法 魔术方法 1 构造方法 构造方法 python类可以使用 init 方法 称之为构造方法 可以实现 在创建类对象时 会自动执行 在创建类对象时 将传入参数自动传递给 init 方法使用 演示使用构造方法
  • Android中的定时器Timer、AlarmManager、CountDownTimer的使用

    1 Timer和TimerTask的使用 java util Timer定时器 实际上是个线程 定时调度所拥有的TimerTasks 1 创建一个Timer code class hljs cs has numbering style di
  • 解析 Linux 内核可装载模块的版本检查机制

    解析 Linux 内核可装载模块的版本检查机制 王 华东 系统工程师 自由职业者 简介 为保持 Linux 内核的稳定与可持续发展 内核在发展过程中引进了可装载模块这一特性 内核可装载模块就是可在内核运行时加载到内核的一组代码 通常 我们会
  • js获取到的时间减1秒或加1秒

    如题 使用时间戳来计算 function setDate time isAdd var date getCurTime time 也可以直接透传如 2021 5 8 var d new Date date var t s d getTime
  • 闲鱼把各种玩法做成了一个平台:哆啦A梦

    玩法平台背景 在闲鱼内我们把供给用户的闲鱼红包 支付宝红包 包邮券 宝卡等统称为用户权益 是闲鱼用户运营的重要策略 在拉新 留存 促活 裂变等方面都展现了其重要价值 在阿里内部管理权益的平台是拉菲 拉菲对外提供概率抽奖和领奖两种能力 各个业
  • 为什么gbk编码常用抽取正则表达式无法抽取“嘚瑟“的“嘚”字

    根据 GBK汉字内码扩展规范编码表 http ff 163 com newflyff gbk list 可以查到 嘚 字的编码为874e 而我们常用的gbk汉字抽取正则表达式为 x80 xff x80 xff 以python正则为例 抽取汉
  • Python基础--入门基础和数据类型测试题(二)

    Made By Zly All Right Reversed 上一篇 篇四 Python 入门基础和数据类型测试题 二 1 以下不属于Python语言保留字的是 A do B pass C while D def 2 表达式3 4 2 8
  • 第一讲 检索系统与数据库编程

    第一讲 检索系统与数据库编程 准备工作 1 检索系统 1 1 检索系统初识 1 1 1 什么是检索系统 1 1 2 从认知心理学看待检索系统 1 2 检索系统的四大法宝 1 2 1 检索的工具 结构化查询语言 SQL 1 2 2 检索的环境
  • Electron-builder打包和自动更新

    前言 文本主要讲述如何为 electron 打包出来软件配置安装引导和结合 github 的 release 配置自动更新 electron builder 是将 Electron 工程打包成相应平台的软件的工具 我的工程是使用 elect
  • C语言小知识点

    1 LPCSTR被定义成是一个指向以 0 结尾的常量字符指针 LPWSTR是wchar t字符串 例子 LPWSTR lpwstr NULL LPWSTR lp T asdfasgaf 2 之所以能够实现条件编译是因为预编译指令是在编译之前
  • HTTP请求头和响应头详解【转】

    最近老猿在开始学习爬虫相关的知识 由于老猿以前只做非web的后台应用 发现相关知识太过匮乏 导致学习很困难 为此不得不从一些基础知识恶补开始 对于这些知识 老猿会将网上找到的比较认可的内容直接转发 下面文章关于http头部信息讲解的非常详细
  • springboot笔记总结

    springboot 1 Javaconfig Configuration 放在类的上面 这个类相当于 xml 配置文件 可以在其中声明 bean Bean 放在方法的上面 方法的返回值是对象类型 这个对象注入到 spring ioc 容器
  • 字典排序算法(通俗易懂)

    我们先看一个例子 示例 1 2 3的全排列如下 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 我们这里是通过字典序法找出来的 那么什么是字典序法呢 从上面的全排列也可以看出来了 从左往右依次增大 对这就是字典序法
  • Java中 ? extends T 和 ? super T 的理解

    通配符类型
  • (转)如何有效地管理好技术团队?

    转自 https cn 100offer com blog posts 307 技术管理是一个综合性岗位 要求你具有技术能力 管理能力 也要懂一些心理学 情商也要高一些 说实话 你想做好这个岗位 真的不容易 尤其是在中国 我相信今天的分享过