zoukankan      html  css  js  c++  java
  • 对创新的几点认识——《创新者》读书笔记

    解决需求推动着人们开发新的技术

    Hollerith为了减少人口普查花费的时间,发明了制表机;Kelvin和Thomson设计了一台模拟器专门处理冗长乏味的微分方程;Konard Zuse为了解多变量的线性方程,完成了二进制计算器原型的设计……大量的案例说明了一个事实:解决需求推动着新技术的出现。所以,如何使自己的软件具有创新性的关键,就落在了如何发掘新的需求上。开发团队必须要找出其他同类软件未能满足的需求或者满足的不够好的需求,然后对需求进行深入的分析,找出一个合适的解决方案并将其实现。从我们软工课程小组的现状来看,我们对用户的需求了解的不够清晰与全面,比如:用户在使用日记app的时候最在意什么功能?是编辑界面是否方便?还是存储界面是否美观?亦或是安全性能否得到保障?这当中哪一些是其他app已经做的很好的?哪些是做的尚有吐槽之地的?没有清晰的需求分析,那我们做出来的很可能就是一个普通的日记app,早晚会死掉。

    好,现在假设我们对用户的需求非常清楚,那么如何找出合适的解决方案呢?肯定会想,这个方向已经做了这么久了,还会有好的想法吗?我觉得我们可以换一种方向去思考,我们可以看一看有相似功能的其他软件是如何做的,然后借鉴它们的想法(组合已有事物的能力也是一种创造力)。比如,之前我看到一款小游戏,Dancing Line,这款游戏本质上是跑酷类的游戏,但它却能在和神庙逃亡和地铁跑酷等其他同类软件的比拼中获胜。原因就在于,Dancing Line采用了类似纪念碑谷的界面风格,立体几何的风格加上动听的背景音乐,使这款小游戏很受欢迎。其实,这就是一种借鉴,我们完全可以按照这个思路去找找其他软件的相似的功能,说不定就会有很大收获。

    大多数创新是渐进的

    除了少数天才中的天才之外,大多数人的创新都是微小的,逐步的。艾达将仅限于数字的问题扩展成了数字和符号的问题,电磁继电器激发了香农利用电信号实现开关控制的想法……大多数创新都是基于前人的成果进行进一步的深入或者是技术上的改善或者是通过将方法抽象并从中获取灵感,牛顿说过:“如果说我看得比别人更远些,那是因为我站在巨人的肩膀上。” 软件开发也是如此,我们要善于利用现成的产品简化我们的开发工作量,毕竟真正有价值的是我们的新的想法。但是,但是,现在我们还处于学习阶段,很多东西我们并不懂,直接拿来用很可能出现很多问题而不知道如何解决,这个矛盾我尚未想明白(我是认为要用一个东西的前提是知道那个东西是如何来的)。

    创新想法的实现需要其他志同道合的人的协作

    贝尔实验室,哈佛大学……这些地方都是创新者聚集的地方,他们聚在一起,分享想法,互相帮助。不得不承认,一个好的团队的力量是强大的。理论学家可能对机械制作不太熟悉,这时候他只需要找一个精通机械制作的专家。团队的存在使得团队中每个人都能够专心于自己擅长的方面,从而最大限度的实现每个人的价值。在软件开发团队中,清晰的分工不但可以提高开发效率,而且便于管理,使管理者能够清楚的知道到底是哪一块出了问题,从而对症下药。

  • 相关阅读:
    leetcode第35题--Valid Sudoku
    leetcode 34 Search Insert Position
    leetcode第33题--Search for a Range
    leetcode第32题--Search in Rotated Sorted Array
    leetcode第31题--Longest Valid Parentheses
    leetcode第30题--Next Permutation
    leetcode第29题--Substring with Concatenation of All Words
    leetcode第28题--Divide Two Integers
    leetcode第27题--Implement strStr()
    17_7_7 JDBC存储过程 + 事务
  • 原文地址:https://www.cnblogs.com/ustckx16/p/8954980.html
Copyright © 2011-2022 走看看