雷观(二十五):定义和分析问题,往往比解决具体问题更重要

最近一直忙于一个服装电商系统的开发,下午准备回忆下14年和15年开发P2P网贷系统时的资金账务系统,以便用到电商系统中来的。
    这套简洁实用的资金账务系统,在我看来,非常能说明,使我想阐述一个观点,“定义和分析问题,往往比解决具体问题更重要”。

说道“观点” ,自然应该归纳到我的“雷观”系列中,回头看一看时间,上一篇却是在半年前,写作,更准确的说,做事大多贵在坚持。
    

   先拿学习来说。
  
   小学6年,学的都是基础。语文,三千个汉字。数学,加减乘除。
   到了初中,3年时间,就学了10门左右的学科。
   高中,内容更是多。
   大学,如果努力点,4年的知识增长抵得上过去13年的总和。

在早期学习的时候,我们学习的都是具体的知识。没有自己的思想体系,知识体系,学习方法,而且是在老师等人的引导之下进行的,可以说是“漫无目的”。
    而参加工作之后,大多数人的学习能力其实是“很高的”。工作中遇到的问题,你分分钟、几天就搞定了。因为,工作本身的目的性,问题的范围,问题的定义是比较清楚的。
    老板和上司定义了问题,你只管去解决,不会立即针对问题本身,从互联网等其它渠道得到答案。
    当然,如果你有自己的思想体系和解决问题的方法论,那更是牛逼的不行。

继续说到学习,到了期末考试阶段,学习效率通常也是大大增加的,因为目标明确了,每个人自身的问题明确了,我需要(想)考多少分。
   因此,我们可以说,定义需要解决的问题很关键。
  优秀的老师和老板,都会给自己的学生和员工,提出明确的目标,努力的方向。

  再来看看软件开发领域。

优秀公司的做法:
         老板定高层目标,市场定位/盈利目标,提供资金等支持。
         产品经理等产品中层等,界定项目的范围,要解决哪些问题,为哪些人解决问题。
         架构师等技术中层,定义项目或者产品的技术边界,选择哪些技术。
         项目经理等,定义每个人的分工,怎么协调,项目工期,分阶段验收的时间点。
         Coder/程序员:Just do it...

一般公司的做法:
        来了个项目,最高层有了idea,有了一笔资金。大家一起讨论要解决什么问题,怎么解决。产品定义和项目开发,也都是大家一起讨论。

我们不去讨论组织划分,只想专注“解决问题”这个抽象的事。

解决问题的过程:提出问题(比较抽象),分析问题(思考的过程),定义问题(问题拆分的更小,来龙去脉更清晰),解决问题。

具体到软件/互联网等领域的公司来说,高层提出和初步定义问题、中层细化问题、底层解决具体问题。上一层利用自己的信息优势,专注解决问题过程中最有价值的一个小而关键的环节,下一层同理,最底层的往往是解决最具体的问题,但往往已经没有什么难度了。
在大多数的IT类公司,架构师和技术经理等,如果把主要的有难度的问题,定义清楚了,分工合理,留给程序员的,不就是编码了吗。
所谓编码,主要就是调用各种API,解决一些业务逻辑等问题。

当然,高难度算法等较高和很高的智力、智商问题,除外。。。

 最后再来看看,我偏爱的创业项目投资和股权众筹。
 普通散户,要么凭感觉,要么总体上瞅瞅这个项目是干啥的,创始人靠谱吗。
 而专业机构,则专注自己擅长的几个领域,有丰富的行业知识和理论调研。
 散户和专业机构,其实都不是我想要的重点。

2015年,出来了一个“专注众筹项目分析的第三方平台-变革家”,他们每一篇分析报告,我基本都看了。
 因为:
 这个平台,不只是简单地分析一个个的项目,而是有自己独特的“方法论”。
 需要解决的问题:分析众筹平台的项目(他们创业的立足点)
 分析和定义问题:散户缺乏方法论,信息缺乏,决策盲目,可参考的依据少,可以为散户提出供决策参考的中立报告。
 解决问题
       第一步:“基于用户需求理论,判断创业项目价值的方法”、“变革家拆解学院第三课:项目拆解利器——变革家投资画布”、“拆解学院第一课:如何判断股权众筹项目是否值得投资?”
       第二步: 招募/邀请专业的分析师,根据/围绕自己平台的分析理论,拆解项目。
       第三步:为用户提出更多角度的分析方法, 邀请平台散户,提出自己的见解。(方法告诉你了,有头脑的散户,很快就可以有一套自己的分析判断方法)
       第四步:邀请专业机构投资人/业内高管和创始人,提出自己的看法。

以上,从学习、软件开发、创业项目分析等3个方面,阐述了我们对“解决问题”这个非常抽象问题的一些认识。
下面,我们总体概括下我们的观点:
1.解决问题的过程和方法论。
简化版:分析问题,解决问题。
详细版:提出问题(我家太穷,吃不饱,买不起车)、分析问题(人有生存的本能,基础的物质追求,人有尊严等精神追求,需要实现更高的目标)、定义问题(10年内,还清负债,年入20万,15年后有车有房有妻有娃,成为四有新人)、
进一步定义问题(考上211大学,毕业后一步步成为顶尖的程序员、优秀的投资经理、创业创新公司/上市公司高管)
解决问题(Just do it,如果觉得问题不够详细,回到前几步,提出-分析-定义问题,最后再逐个解决)。

2.对于一个正常的人,总是可以遇到和发现一些问题。
解决这些问题的关键是,定义和拆解问题。
然后,每一步都要“跟上节奏”、“点要踩准”。
初中努力点-考上好高中-考上大学-进入牛逼公司-成为领军人。
事情都是一步步做的,人都是一步步成长的。
考虑未来的问题,解决好当下的问题,未来就不是问题。
现实是,很多人初中不努力,进入差学校,找不到优质的工作。(总是慢一拍)

3.就学习、软件开发、创业项目分析等来说,高层/上一层把问题定义清楚一点(要让下一级可执行)、下一层同理把问题定义清楚,交给下一级解决,或者自己解决。
   定义好解决问题的流程,把重点专注在“分工协调”和“目标验收”上。
   每一个里程碑都能按时达到,整个目标就差不了多少。
  
结论:定义和分析问题,往往比解决具体问题更重要。
大部分的具体问题,都不是太难,可以搞定它的后备人选往往较为充足,而定义和分析的人群,则比例少了很多。

(注:定义和分析的先后顺序,看情况。)

本文中的观点和方法论,可以给我们带来的一些启示和价值:
1.学习、生活和工作中遇到了问题,莫着急,冷静下来,分析分析。先屡屡思路,再行动。
2.找工作,判断一个公司的价值,先看看这个公司的定位是否清晰的可理解的,是否真的解决了一些问题,以免进入骗子公司,很快就要倒闭的公司。
   和面试官聊天的时候,看看他的面试思路和表达能力。如果一团糟,不靠谱,进去后还很可能是你的上司,抓紧闪人。
3.上司给你分配任务的时候,你能比较清楚地知道自己要做哪些事情,恭喜你,上司比较靠谱,多跟他学习点本领。
   上司给你指点迷津的时候,条理清晰,头头是道,再次恭喜你。
4.下属向你请教问题的时候,他能很清晰地描述自己遇到的问题,对这个问题有初步的认识。
   这个下属不会太差劲。
5.激情满怀,要去创业。
   多花2天时间,耐心地去分析自己创业要解决的问题以及它的价值,自身团队是否提供了较为可行的方法。
6.钱多了,想投资。
   用解决问题的方法论,来看看这个项目是否靠谱吧。
     
小雷FansUnion-一个有创业和投资经验的资深程序员
2016年5月8日
湖北-武汉-阴

定义和分析问题,往往比解决具体问题更重要~
嗯,就这样! 

最后的问题


 如果把本文的写作课题当作一个“问题”,作者小雷FansUnion,是怎么解决这个问题的。
请用数百字说一下小雷FansUnion的写作思路。 

时间: 2024-08-08 01:22:22

雷观(二十五):定义和分析问题,往往比解决具体问题更重要的相关文章

雷观(二十):个人竞争策略,战国策与个人略

观点: 国家与国家之家.公司与公司之间.个人与个人之间,都充满了竞争.这三个主体之间存在着包含和交叉关系,更为重要的是,竞争策略是相似的,值得探究.从国家和企业之间的竞争,我们可以找到个人竞争的策略. 在过去的几千年里,大部分的非相邻国家之间,大多是相安无事的和平发展状态,战争和竞争主要集中在邻国之间.比如中国古代的春秋战国.欧洲无数小国.现俄罗斯联邦的诸多小邦.随着科技和工业的发展,尤其是最近100年,国家与国家之间的交流和市场贸易越来越频繁.竞争非常残酷,竞争和无序发展,也会导致国家之间战争

雷观(二十二):项目开发中,要少做无用功

最近,正在重构一个项目的后台管理系统. 注意到,所有的table列表页,都有个搜索功能.后端的搜索功能,还是需要一点代码去实现.然后,还得去测试一遍. 但是呢,忽然意识到,有的页面根本没有必要增加"搜索"功能. 比如,有个表,实际项目中是"借款人"这个user表.真实环境下,尤其是项目早期过程中,根本不可能有多少"数据"或者说"借款人用户".一页,显示20个,基本上就足够了. 这个时候,增加"搜索"功能这种

JAVA基础再回首(二十五)——Lock锁的使用、死锁问题、多线程生产者和消费者、线程池、匿名内部类使用多线程、定时器、面试题

JAVA基础再回首(二十五)--Lock锁的使用.死锁问题.多线程生产者和消费者.线程池.匿名内部类使用多线程.定时器.面试题 版权声明:转载必须注明本文转自程序员杜鹏程的博客:http://blog.csdn.net/m366917 我们来继续学习多线程 Lock锁的使用 虽然我们可以理解同步代码块和同步方法的锁对象问题,但是我们并没有直接看到在哪里加上了锁,在哪里释放了锁,为了更清晰的表达如何加锁和释放锁,JDK5以后提供了一个新的锁对象Lock Lock void lock():获取锁 v

每日算法之二十五:Divide Two Integers

Divide two integers without using multiplication, division and mod operator. 不使用乘法.除法和求模运算求两个数相除. class Solution { public: long long internalDivide(unsigned long long dividend,unsigned long long divisor) { if(dividend<divisor) return 0; int result =

企业搜索引擎开发之连接器connector(二十五)

下面开始具体分析连接器是怎么与连接器实例交互的,这里主要是分析连接器怎么从连接器实例获取数据的(前面文章有涉及基于http协议与连接器的xml格式的交互,连接器对连接器实例的设置都是通过配置文件操作的,具体文件操作尚未详细分析(com.google.enterprise.connector.persist.FileStore类)) 本文以数据库连接器实例为例来分析,数据库类型连接器是通过调用mybatis(sqlmap框架)组件与数据库进行操作的,我们通过前端提交的数据库连接器实例表单信息最终存

Bootstrap &lt;基础二十五&gt;警告(Alerts)

警告(Alerts)以及 Bootstrap 所提供的用于警告的 class.警告(Alerts)向用户提供了一种定义消息样式的方式.它们为典型的用户操作提供了上下文信息反馈. 您可以为警告框添加一个可选的关闭按钮.为了创建一个内联的可取消的警告框,请使用 警告(Alerts) jQuery 插件. 您可以通过创建一个 <div>,并向其添加一个 .alert class 和四个上下文 class(即 .alert-success..alert-info..alert-warning..ale

QT开发(二十五)——QT模板库

QT开发(二十五)--QT模板库 一.QTL模板库简介 QT模板库(QT Template Library 简称QTL)是一套提供对象容器的模板. QTL提供了对象的链表.对象的矢量(动态数组).从一个类型到另一个类型的映射(或称为字典)和相关的迭代器和算法.容器是包含和管理其它对象的一个对象,并且提供迭代器对被包含的对象进行访问. 1.QT容器类简介 容器是能够在内存中存储其他特定类型的对象的对象,一般是通用的模板类.QT提供了自己的一套容器类,即在QT的应用程序中,可以使用标准C++的STL

Java进阶(二十五)Java连接mysql数据库(底层实现)

Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜索.特将之前使用的方法做一简单的总结.也能够在底层理解一下连接数据库的具体步骤. 实现 首先需要导入相关的jar包,我使用的为:mysql-connector-java-5.1.7-bin.jar. 下面来看一下我所使用的数据库连接方法类: MysqlUtil.java package cn.edu

CCNA实验二十五 实战多种ACL访问控制 &nbsp;

CCNA实验二十五 实战多种ACL访问控制 环境:Windows XP .Pracket Tracert 5.3 . GNS3.0.7.2 目的:了解ACL作用并熟练在不同环境中配置ACL 说明: ACL是路由器和交换机接口的指令列表,用来控制端口进出的数据包并且可以保护网络,ACL适用于所有的被路由协议,如IP.IPX.AppleTalk等.ACL种类:标准ACL.扩展ACL.命名式ACL.基于时间ACL.自反ACL.动态ACL. 标准的ACL使用 1 ~ 99 以及1300~1999之间的数