【心得】如何解决技术问题

工作了有一段时间了,也解决了些技术问题,有些已经写在了blog上。

今天我不想谈具体解决了什么问题,想探讨下解决问题的过程,这是个软素质,不比技术弱多少。

首先我个人觉得,解决技术问题需要有三个过程。

1. 发现问题

2. 定义问题

3. 解决问题

# 发现问题

发现问题的人,可以是产品、可以是技术、可以是运营。

发现问题后,技术人员需要根据问题去跟进,发现出现问题的原因。

导致问题的原因可能有多个,我们逐个找出来,为后面定义问题奠定基础。

# 定义问题

发现问题并定位出问题后,我们需要的是定义要解决的问题。

上面说了,导致问题的原因可能有多个,我们需要根据问题的重要程度去分清轻重缓急,定义出所需要解决的问题的边界。

毕竟 人的精力是有限的,我们需要将有限的精力投入到更大的产出比上去。

比如运营发现server启动时间过长了,这只是个现象,我们需要根据现象去找启动时到底什么原因引起了服务恢复时间过长。

1)机器不行

2)io    密集

3)cpu 密集

4)server 有 bug,比如死锁了?

在这个问题上,我们需要根据问题,找出解决的方案来,并评估各个方案的实现代价。

一般来说,和你技术Leader讨论,准备解决方案以3个为宜,描述好优缺点,让他们给予一定的参考(包括公司资源、实现难度、可扩展性等方面)、

# 解决问题

着手实现的过程中,需要考虑有如下几点

1)时间节点

问题的解决是有时间节点的,时间节点的考量影响着方案的解决,比如C++可能重,脚本语言可能更快捷些。

2)可扩展性

实现的方案具有一定的扩展性,在时间节点满足的情况下,适度给予一定的抽象性,以满足未来的需求

3)健壮性

主要是程序的容错性,程序不可能没有bug,如果出现了bug该怎么办。

有两个思路,一个是通过代码层面尽可能的容错,考虑各个潜在的边界,代价较高

另一个是最多服务节点备份、服务快速重启恢复等策略将损失减少到最小。

4)可评估性

问题怎么才算解决?解决到什么程度,需要有具体的方法。

我这边遇到的有两种,一种是运营观察现象(问题被解决),一种是程序自己打日志

a)如果是一个新的需求,则可以通过日志的方式(有的产品会给出具体日志的统计需求,有的不会)

b)如果是旧问题的修复或改进,则可以通过一些有用的日志来评估。

通过上面的分析,大家可能发现了,解决问题只占一个项目的一部分。

有些技术人员往往看中了实现,去解决问题,说自己功劳大。但在解决问题上,有大量的工作需要与他人协助完成。

在一个公司,往往定义问题的人不需要太多,真正解决的问题的人,其实也不需要太多,但需要精进强干,因为他们负责这系统的实现,

一个坏的实现,临时解决了一个问题,但却会引入更多的新问题。我想有些公司,控制面试的门槛,原因也在于此。

希望今后以定义问题人的心态去解决问题,用解决问题的四个原则去解决解决问题。

时间: 2024-10-31 20:24:11

【心得】如何解决技术问题的相关文章

项目心得--合格的技术负责人

在公司,一个需求过来时,通常会指派一个人负责这个项目进度,总体实现,说白了这人是技术负责人! 作为一个技术负责人,你要对项目充分了解,按照需求指定解决方案,指导同伴进行开发. 通常情况下,由于需求不明确,所以更要求我们对对需求变化做出最快的反映,同时根据可以十分快的根据boss的意思进行调整. 满足boss要求,另外要求有控制项目进度的能力,保质保量的完成编码工作. 当有很多问题出现的时候,可以使用开会的形式,将小组成员统一起来,然后了解项目进度,制定目标,让大家都参与进来,实现速度最大化,找到

奶爸程序员的“育儿”心得

自我介绍一下,本人以前是.net程序员,去年下半年负责把项目从.net转到java,并且有跨机房迁移,亿级访问量,app服务端项目. 自我吐槽一下,工作了8年了,没有成为架构师,也没有进入管理层,没有成为技术大师,也没能成为分享大师.一直在做业务,并在这条路上越走越远.有的时候觉得很尴尬,但又有的时候觉得还蛮适合自己.过年之前,老婆生了一个小公举.宝宝饿了,"老婆快来喂奶!",宝宝又饿了,"老婆快来喂奶!",宝宝睡醒了又饿了,"老婆快来喂奶!"-

从技术到管理-IT人职业跨越

上周去参加了嘉为的一个公开课,市面上这类型的课程很难见,听课后记录心得如下. 1. 关于目标. 27%的人没有目标-> 抱怨他人,抱怨社会 60%的人目标模糊->生活在社会中下层 10%的人目标清晰->生活在社会中上层 3%的人有长远规划->各界成功人士 个人意见:我有相对清晰的目标,30所考master,40岁获doctor学位,50岁分享经验及入学院讲授课程. 2. IT是条不归路,只有不断向前,因为行业新知识及新技能不断更新.30-35是个坎.有舍才有得,放弃相关的技术,不能

so文件汉化心得【整理】

这篇是我对 @布加迪20 在安智写的一篇<汉化so文件的心得>中的技术附件做的简洁性整理,原来的看起来不是很方便.一起分享学习.. 正文 SO文件汉化心得 --By布加迪20   2014/08 我自己也是新手,研究了好久,网上也找不到相关教程,所以决定写一个比较详细的教程,教程是关于汉化so文件时出现的字符串长度不够的问题,后面还有做字库的简单教程,相关文件都在文章结尾处,如果出现排版问题,建议在手机上用WPS看,选适应手机就好了. 汉化so修改偏移 IDA在电脑上用,HE是安卓上的十六进制

程序员如何用技术变现?

导读:从事编程这个事可以做到,完全靠自己的手艺.不依赖任何人或公司去生活的.但道理我都懂,怎么做才是关键.本文摘自左耳朵耗子. 正文 1 写在前面 程序员用自己的技术变现,其实是一件天经地义的事儿.写程序是一门“手艺活儿”,那么作为手艺人,程序员当然可以做到靠自己的手艺和技能养活自己. 然而,现在很多手艺人程序员却说自己是“码农”,编码的农民工,在工作上被各种使唤,各种加班,累得像个牲口.在职业发展上各种迷茫和彷徨,完全看不到未来的希望,更别说可以成为一个手艺人用自己的技能变现了. 从大学时代帮

左耳朵耗子 | 程序员如何用技术变现?

导读:从事编程这个事可以做到,完全靠自己的手艺.不依赖任何人或公司去生活的.但道理我都懂,怎么做才是关键.本文摘自陈皓(左耳朵耗子)在极客时间 App 开设的付费专栏"左耳听风". 正文 1 写在前面 程序员用自己的技术变现,其实是一件天经地义的事儿.写程序是一门"手艺活儿",那么作为手艺人,程序员当然可以做到靠自己的手艺和技能养活自己. 然而,现在很多手艺人程序员却说自己是"码农",编码的农民工,在工作上被各种使唤,各种加班,累得像个牲口.在职

android apk 自我保护技术-加密apk

经过了忙碌的一周终于有时间静下来写点东西了,我们继续介绍android apk防止反编译技术的另一种方法.前两篇我们讲了加壳技术(http://my.oschina.net/u/2323218/blog/396203)和运行时修改字节码(http://my.oschina.net/u/2323218/blog/396203),如果有不明白的可以查看我的博客的前两篇中关于这两种技术的介绍.接下来我们将介绍另一种简单适用的防止apk反编译的技术-伪加密. 一.伪加密技术原理 我们知道android

双线路服务器技术相关特点

对于服务器托管双线路技术的实施就是可以在不增加硬件成本,不需要添加更多地维护更新人员,不需要花费更多精力的基础上,仅仅是一点点不同ISP带宽的接入,就可尽最大能力去发挥和使用服务器的网络和硬件资源,提高访问量.的最大特点就是简单而有效的提高网站访问速度.所以在未来的中国互联网发展道路上,该技术一定会成为网站内容信息服务商最为青睐的信息服务解决技术方案.双线路技术实现起来麻烦吗?   双线路技术的实现需要我们的专业工程师技术人员,从用户服务器网络配置方面和正龙数据IDC中心机房核心路由设备上加以相

达达技术

http://tech.imdada.cn/ 达达-高性能服务端优化之路 发表于 2015-11-04   |   分类于 架构 提纲 业务场景 最初的技术选型 读写分离 垂直分库 水平分库(sharding) 总结 业务场景 达达是全国领先的最后三公里物流配送平台. 达达的业务模式与滴滴以及Uber很相似,以众包的方式利用社会闲散人力资源,解决O2O最后三公里即时性配送难题. 达达业务主要包含两部分:商家发单,配送员接单配送,如下图所示. 达达的业务规模增长极大,在1年左右的时间从零增长到每天