打破思维定势,跳出问题漩涡

2024-03-19 00:32

本文主要是介绍打破思维定势,跳出问题漩涡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    思维定势(Thinking Set) 是由先前的活动而造成的一种对活动的特殊的心理准备状态,或活动的倾向性。在环境不变的条件下,定势使人能够应用已掌握的方法迅速解决问题。而在情境发生变化时,它则会妨碍人采用新的方法。消极的思维定势是束缚创造性思维的枷锁。

    上面的描述太专业化,通俗地讲,思维定势其实是根据个人或团队先前的知识积累去解决现实问题的方法或者思路。通常而言,思维定势能解决我们遇到的绝大部分问题,只有少部分问题,在思维定势的框架下,只会将问题越变越复杂而不能最终解决问题。

    就拿软件设计来说,瀑布模型是一种条理清晰、层次明确的设计方法,在需求明确、人力资源、时间和成本允许的情况下,无疑会是大家首选的;但当环境变了,比方说需求不清晰、或者特别强调工期的项目,就不再适用瀑布模型,此时专家们突破思维定势,创造出来螺旋模型、快速原型模型、增量模型等设计方法。

    单位的一位领导曾跟我说过,不要把自己当成一位码农、一个只知道砌砖的民工,要把自己当成设计师、当成既画蓝图又砌砖的建造师。想必很多人听到了都觉得这是个理想。初听到这句话,我也是这么想的,自己就是一个苦逼码农,就是用十指创造生活的人,哪谈得上什么设计师?且慢,静下心来,我们不妨细看看开发过程。

    软件的设计工作总是从《用户需求说明书》开始的,根据这个我们去编写SRS。编写SRS的过程,是对用户需求理解的过程、是用软件语言翻译需求的过程。这个过程就用到了工程师的积累,老资历的工程师通常很快就能完成这个过程,并且能做到理解准确,贴近用户初衷。

    完成了SRS,我们开始执行总体设计、概要设计、详细设计这些过程。到了详细设计阶段,就比较接近最终的代码了。我们就说说这个详细设计阶段,如果说前几个阶段都是在描述问题,那么这个阶段就是要充分考虑如何去解决问题了。

    需求中棘手的问题,都要找到解决方法。这个过程中,思维定势能帮助我们解决99%以上的问题。个别问题,利用积累,我们想到多种解决方案,但这些解决方案虽能解决问题,但要么受制于其它条件,要么成本巨大,都不能成为我们的首选方案。在这里,开发过程陷入了僵持阶段。项目经理也不敢轻易从备选方案中选择最终解决方案,只要上报更高一级别的领导——技术总监。

    技术总监拿到这个问题和配套的多个解决方案,也深表赞同,正要痛下决心采取提高成本来解决问题的方案时,突然说了一句,“跟用户沟通下,让用户修改下需求不行吗?”对啊,这个需求其实也存在不合理的地方,如果用户同意修改一下,那么我们的解决办法就比较简单,并能保证工期,并且不用增加成本了。

    项目经理在总监的一句话提醒下,顿悟。

    其实,刚刚技术总监就是做到了突破思维定势,提出的一种解决办法。

    为什么大部分人都不能突破思维定势呢?按照我的理解,就是因为“当局者迷”。遇到这种事情的时候,不妨跳出来,以一种局外人的视角重新审视这个问题,或许就有意外收获呢。

    也许下一次你突破了思维定势,提出了新的解决方案,大家会拍着大腿说,“对啊,就应该这么办,我怎么没想到呢”,往往这就是成功的突破。

    以上为本人开发过程中的一点拙见。

这篇关于打破思维定势,跳出问题漩涡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/824212

相关文章

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

如何解决mysql出现Incorrect string value for column ‘表项‘ at row 1错误问题

《如何解决mysql出现Incorrectstringvalueforcolumn‘表项‘atrow1错误问题》:本文主要介绍如何解决mysql出现Incorrectstringv... 目录mysql出现Incorrect string value for column ‘表项‘ at row 1错误报错

如何解决Spring MVC中响应乱码问题

《如何解决SpringMVC中响应乱码问题》:本文主要介绍如何解决SpringMVC中响应乱码问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC最新响应中乱码解决方式以前的解决办法这是比较通用的一种方法总结Spring MVC最新响应中乱码解

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

Spring MVC使用视图解析的问题解读

《SpringMVC使用视图解析的问题解读》:本文主要介绍SpringMVC使用视图解析的问题解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring MVC使用视图解析1. 会使用视图解析的情况2. 不会使用视图解析的情况总结Spring MVC使用视图

Redis解决缓存击穿问题的两种方法

《Redis解决缓存击穿问题的两种方法》缓存击穿问题也叫热点Key问题,就是⼀个被高并发访问并且缓存重建业务较复杂的key突然失效了,无数的请求访问会在瞬间给数据库带来巨大的冲击,本文给大家介绍了Re... 目录引言解决办法互斥锁(强一致,性能差)逻辑过期(高可用,性能优)设计逻辑过期时间引言缓存击穿:给

Java程序运行时出现乱码问题的排查与解决方法

《Java程序运行时出现乱码问题的排查与解决方法》本文主要介绍了Java程序运行时出现乱码问题的排查与解决方法,包括检查Java源文件编码、检查编译时的编码设置、检查运行时的编码设置、检查命令提示符的... 目录一、检查 Java 源文件编码二、检查编译时的编码设置三、检查运行时的编码设置四、检查命令提示符