zoukankan      html  css  js  c++  java
  • 扫描器需求——产品的核心目标

    今天晚上讨论下个季度扫描器的需求。

    0x01 要重构么?

    重构前提
    • 扫描器可读性较差,当初理解的时候看了一两天理解了大致的流程。之后在写功能的过程中,又在一些地方卡住了。
    • 另一方面,是代码耦合性太高了,程序运行依靠redis、celery、管理平台的任务功能、插件下载平台,和其他东西耦合性过高,无法单独抽出来,在第三方服务器或者外部服务器部署。
    • 想要向业界开源,拆分模块化和降低耦合性又是必须的。
    • 同时扫描器的主要流量来源——镜像流量即将流量翻倍,提高效率压缩性能又是必须的。
    不确定的需求

    但是在定KPI之前,准备开始写重构相关,整理需求和设计,开始第一步,必要性,又否定了一些东西。

    • 可读性较差,但是目前开发人员较少,掌握了就行,没必要面对很多人,让大多数人都读懂。要开发与接触的人员钻研一下就OK了。
    • 这点是好的
    • 关于提高性能,看了一下上一版扫描器的详细设计文档,其实需求都一样,提高性能与扩展性。其框架,我没有经验和把握做到设计重构确保性能更优越、框架更完善、代码更简洁。

    渐渐有了这种想法,是上个季度,想要重构镜像流量的去重程序。经过一番设计,发现上一版的设计其实挺完备的。而重构再与其他部门的合作,开发过程拖沓,寄希望于其他部门的优化,但是看情况等不到了,等于重复造轮子,还不敢肯定新的轮子更有解决问题的能力,做出来的是单车变摩托还是摩托变单车。

    讨论

    最终寻求讨论。讨论当下扫描器重构的需求与设计。需求是拆分模块化。但是又发现拆分模块化的作用是开源面向业界,同时提高可读性,并没有实质性地提高产出。
    而提高性能,又不敢肯定能否提高、提高多少。

    吃一堑长一智

    还是上个季度,经过某些坑,发现重构也并不一定就是好的,所以开始前先做了必要性的探索。
    经过一些坑,总会学会点东西。D拿的也还有价值。

    0X02 产品的核心目标

    漫漫讨论

    经过几人坐下来漫漫讨论,从扫描器的重构必要性(此时的重构理解为推倒重来,而不是调整),到管理平台的重构必要性。
    如果只是几个问题,能够花费一些精力解决的问题,同时代码中存在冗杂、代码由不同开发人员编写风格不一,着重解决当下的问题,也不失为一种更好的方法。
    重构完的代码,并不一定比现在的好。

    回归到产品的核心目标

    扫描器的核心目标是什么?或者说什么是最牛逼的扫描器?
    扫更多的漏洞,准确率更高,漏报率误报率更低,性能更强。对于插件开发者,支持更多。
    而当下提出的需求,比如测试人员编写插件的赋能,只能算锦上添花,并不是雪中送炭,并不能实打实地实现扫描器的核心目标。这种事情,最好等到扫描器的已经很完备了再做。说实话,就是有点花里胡哨。

    什么是你心目中最牛逼的扫描器

    什么是你心目中最牛逼的扫描器?在头脑昏昏的最后,leader问出了这样的问题。是的,什么是最牛逼的扫描器,现在做的是走向那条路的需求么?
    现在做的更像是收集别人提出来的需求,模糊地排出优先级,优先级中更多的掺杂了个人的兴趣,以及需求的难以程度。
    一个产品角色,应该像一个将军,有明确的目标,攻这座城,就专心攻城,不是在他人的言语中,再选择扎营种田,畜牧养禽。

    0X03 产品分析——思路拆分

    说起来一点就通,但身在此山看不到。

    一个产品,要做的是什么?

    划分出几个想要实现的点。

    对于每个点,怎么衡量?

    对的,怎么衡量一个点,就针对衡量的标准,怎么去提升这些标准,再往下细分。

    过程——暂时留白

    最后根据人力以及优先级,从中挑选重要的点、痛点来做。

    0x04 额外感悟

    心血

    额外说一点,这应该当做自己的产品,投入其中,自己想要的是个什么样的东西,而不是别人想要的是什么样的东西,帮助别人完成他们的需求。

    猪、鸡和鹦鹉的故事

    在一片神奇的丛林里,生活着许多动物,其中有猪、鸡和鹦鹉。丛林里最近掀起一股创业的风潮,这些动物也受到感染,每天搞头脑风暴,琢磨如何创业。最后它们决定合伙开一家欧式早餐店,供应面包、牛奶、煎蛋、培根等。

    具体分工如下。
    猪:提供猪肉,做熏肉。
    鸡:提供鸡蛋,做煎蛋。
    鹦鹉:提供咨询,每天阅读大量博客,给其他团队成员提供建议,例如业界最新趋势、最新术语、Saas, N-层架构、创业明星当年的轶事,等等。

    这次对三个动物的负担是一样的么?它们又该各占多少股份?一旦创业失败,猪、鸡和鹦鹉各自会失去什么?
    在一个团队中,不同的成员来自五湖四海,为了一个共同的目标,走到一起来了(至少表面上是这样)。在一起吃饭时,大家意气风发,群情激奋,但是不同的人对于团队的承诺是不一样的。
    有些人是猪-他们或者辞掉了工作,投入到创业中;或者这门软件工程课是他们的必修课,他们一定要拿到高分,才能提高自己的绩点(GPA) ,申请到好学校。对他们来说,要想项目成功,就要拿出自己身上的肉,背水一战;一旦失败,自己的老本也赔进去了。他们的投入级别是-全身心投入(Committed) 。
    有些人是鸡-他们能做重要的贡献,但是项目一旦失败,他们的损失并不大,他们的生活还可以继续下去。比如,有些人平时自己上班,周末来给项目帮忙;或者是选修软件工程课;或者他们已经保研,只要这门课混及格就行。他们的投人级别是一参与( Involved )
    有些人是鹦鹉-他们有漂亮的羽毛,能说会道,人脉广,能提出很多建议,很多点子。但是他们不执行,除了一些人云亦云的观点和关于架构的空谈之外,并没有其他投入。一旦项目失败,他们就会飞到另一个项目中去。他们的投入级别是—围观(Bystander)。

    这是今天看重构时发现的一本书 《构建之法》中的说法

    负责项目的,更像是猪,负责抗雷。参与的,是下蛋的,从中学习、投入,有别的项目的保障。提需求的,是鹦鹉吧。做与不做,都不会影响,有时候还会导错方向。

  • 相关阅读:
    [BJOI2006]狼抓兔子
    hdu 1878 欧拉回路,图的连通性判断
    poj 3844 Divisible Subsequences 剩余类,组合计数
    LA 4609 ,poj 3842 An Industrial Spy
    hdu 4639 2013多校第四场 hehe Fibonacci 数列,组合计数,字符串处理
    hdu 4642 Fliping game 翻硬币游戏 抓住特征变量
    13多校#4 ,组队赛#18 总结
    ACM 大牛的博客
    LA 4329 Ping Pong 2008 北京区域赛 H , BIT 二叉索引树(树状数组)的应用
    poj 2689 Prime Distance 二次筛法,找出给定区间所有约数
  • 原文地址:https://www.cnblogs.com/huim/p/10652626.html
Copyright © 2011-2022 走看看