Rainyboy 发表于 2010-10-25 14:06

这几天帮朋友干了一个非常非常非常急的活儿,有感。

本帖最后由 Rainyboy 于 2010-10-25 14:12 编辑

    说说这几天发生的事儿吧。
    10.23,10.24,以及今天10.25,一共睡了8个小时的觉。帮一个老友的忙,做他们单位的一个评价系统,其实需求很简单,功能主要是糊弄领导,没什么大的功用的要求,具体说来可以这样归纳(假设,以食堂伙食考察为例):


====================需求细节分割线==================   
用户:饮食管理中心某位闲的*疼的老板;
    主要功能:考察各食堂(数量不超过10个)的伙食标准执行情况;
    考察内容:6个大类共300个小题,总分900分;
    记录数据:每个食堂在某次评分中,各大类的得分情况及总分情况;

    界面功能:
                     添加新食堂;
                     删除食堂;
                     根据用户选择的大类,给出下面的小题,再根据用户对每个小题的选择,计算出大类分,存到数据库中;
                     所有大类分给完后,总分,并记录到数据库;
                     并不要求一次性给完所有大类的分,可以分次评分;
                     评分时记录评分人的信息(评分人信息无需验证);

   技术平台要求:
                     数据库:SQL Sever 2005;
                     平台:.NET Framework 2.0;
                     语言:c#;
   开发时间:
                     2天,或更少

====================需求分析分割线==================


    大家一看这样的需求,首先想到的是什么?

    我首先想到的是,(问题1)这个功能用得着做软件么,这不就是个EXCEL表格的事儿么?

    我再次想到的是,(问题2)这个起码得是个 WEB应用程序 这样的通过网页访问的东西吧?

    对于(问题1),答案就是本文第二段的红字;

    对于(问题2),最开始给我的答案是,(非常肯定的)“我们要一个单机版的桌面应用程序,连接数据库进行工作”。后来(一天之后)说,答案变了,(仍然更加肯定地)“我们要的是一个网站,连接数据库进行工作”。这 “后来(一天之后)” 意味着什么,这段时间里又发生着什么呢?

    意味着,我损失了一半的时间,我通宵辛辛苦苦搭建起来的Windows Application Form 界面白费了,更重要的是,由于我不曾涉猎ASP等领域,正是因为【(非常肯定的)“我们要一个单机版的桌面应用程序,连接数据库进行工作”】才接下这个即使在熟悉的技术领域仍然很紧急的任务。

    而现在,需求变了。我甚至来不及可惜已经做好的工作,就又投入到新一轮的熬夜中了。

====================需求变更,寻求解决分割线==================


    需求一变,给我带来的压力很大,因为:(1)我答应了朋友,他因为相信我的承诺而没有继续在别处寻求帮助,我不能让他交不了差;(2)我没有涉猎过ASP.NET,甚至连接数据库的编程也是半生不熟,我需要时间来学习;(3)似乎没有时间学习,时间只剩下24个小时,而没有做的工作有:网页应用界面的重新设计、连接交互界面和数据库操作的中间层接口编码、调试和测试。
    情况如此不利,我当然手忙脚乱,依次采取了如下方式寻求帮助:
    1)上BAIDU,搜各种关键词,以期有现成的代码。结果:失败;
    2)上CSDN,搜各种帖子,以期有人提过类似的问题。结果:“求代码”的帖倒是不少,没有可用的东西,失败。
    3)上图书馆借书,各种快速上手的大厚书。结果:对项目问题在ASP.NET技术中的位置有了认识。
    4)问同学,问旧时同事。结果:对一些具体的技术细节有了认识。

    这么一圈折腾下来,心里有一个声音越来越清晰:“这一切都不是想象的那么难,你现在要做的,就是停下来,翻一翻借的书,暂时忘掉时间的压力”。

    于是我试着让自己从热锅上的蚂蚁的状态冷静下来,试着忘掉压力,按照书上的例子做一个简单的例子,将1)2)3)4)所看到的那些不理解的东西串联串联。

    然后就是一步一步的摸索,慢慢搭界面,写中间层。当然,又一个不知不觉过去的昼夜。

    今天中午的时候,所有预设的测试都已经通过了,已经交给朋友了。

====================事情告一段落,感想分割线==================

    1,干活儿之前,仔细挖掘用户的需求,甚至要帮助用户发现他们由于不了解现有技术导致的不恰当需求。

    2,当你对你面临的问题一无所知,那个问题对你来说就是一个模模糊糊朦朦胧胧的【整体】,因为你没有办法对其中的细节提出有效的问题,你只能说,“我大概要用什么技术做一个什么样子的东西”,至于这个技术怎样做,能不能像你预期的那样做,做出来是个什么样子,你是不知道的。

    3,当你对你面临的问题一无所知,要做的不是上网,不是找现成的代码,那只会让你更焦躁。你要做的,是冷静下来,细细想想这个项目到底要干什么,需要相应的技术平台提供什么,带着这些问题,去看一些归纳性的书。然后,你才可以结合案例分析书籍,找到针对性比较强的案例,一边照做,一边脑子里挂念着自己的自己的项目:“这个操作我用得上么?”或者”哦,原来我想错了,这个技术是这样实现这个功能的“。

    4,打电话给身边有技术经验的朋友,哪怕泛泛聊聊这个问题也能受益不少。

    5,相信自己。精神上和身体上。

=====================最后,祝贺分割线=======================

    赶活儿的这几天,分区多了两位技术全面、经验丰富的斑竹,真是天大的好消息!

    今天凌晨,连续的工作让我疲惫不堪,得到这个喜讯的兴奋,给我注入了新的力量,支撑我一直坚持到基本完工。

    最后,仅以此贴献给smtmobly 和wqsong ,祝贺你们担任本班斑竹,能与你们共事是我的荣幸!
   
    愿【算法及编程语言】分区越来越好!




smtmobly 发表于 2010-10-25 15:05

非常感谢,还是要多注意身体。
另外,现在很多的软件应用是很简单的,而且也许如果是程序员,你会发现你所做的事都是
傻瓜级别的,当然这不影响你有较高的收入。比如,我写一个你这样的程序,一般的都会给2万左右的报酬,当然职业程序员就不可能那么高了,呵呵,我身价高些哈!呵呵!玩笑。
说这些的意思是什么呢?还是希望在茫茫的低层次的开发工作中,不能忘了,软件业的发展是非常迅猛的。

你这样的所谓软件我也做了好几个了,主要是项目需要。相当简单的问题,主要是数据库的处理。也有基于web的。web上我用的是django。所以说我喜欢python呢,不管你是web还是桌面的,或者是跨平台,都可以搞定,呵呵,再加上js的一些简单的命令一切搞定。

描述有点混乱,说实在的,我个人觉得,linux平台下开发的高手,远比windows开发的人员要多的多。

smtmobly 发表于 2010-10-25 15:05

特别感谢您的祝贺哈

Rainyboy 发表于 2010-10-25 15:12

回复 smtmobly 的帖子

我想说的是,整个过程中感受到的那种处于由时间迫近引起的着急,和由于技术不了解引起的惶恐,还有朋友的托付,加起来给人的压力真的很大。甚至会影响到你判断这个问题应该如何解决。

Rainyboy 发表于 2010-10-25 15:16

回复 smtmobly 的帖子

你说得很对,我也能感受到一些。好像目前程序设计的范畴已经发展到依附于框架平台快速建立应用的层面了,这么做比方吧,我刚开始学程序语言的时候,觉得C和VB很不相同,后来循着C语言学习C++,又循着C++学习C#,了解了一些.NET平台的东西,忽然发现,绕了一圈,又跟VB站在同一个起跑线上了…………

smtmobly 发表于 2010-10-25 15:22

是啊!最后发现语言就是语言,中文也好英文也好,最终都是用来表达,如何去表达才是问题的关键,每种语言都有自己表达上的优势,但是你会发现,几乎所有的表达中文和英文都能表达清楚!

Rainyboy 发表于 2010-10-25 15:28

回复 smtmobly 的帖子

哈哈,图灵就说过嘛,“计算机及其运行在其上的计算机语言,构成了一种符号逻辑……”(大概是这样说的)。

smtmobly 发表于 2010-10-25 15:32

呵呵,是啊!我以前一直都转来转去的,c#也玩过一段时间,觉得c#很方便,但是windows下的东西,比c#,安装一下都5个G,visual studio 2008。太烦了,喜欢python的理由开始是因为他很小,功能又很强大。
其实最终还是要看你做什么,你熟悉的东西是最好的。

Rainyboy 发表于 2010-10-25 18:09

回复 smtmobly 的帖子

恩,有些时候就是要克服惰性,才能学习新的东西,过一阵子我也装一套LINUX玩玩

wqsong 发表于 2010-10-26 13:42

注意身体,别太拼了。。。哈哈
另外恭喜smtmobly,合作愉快

有梦的人 发表于 2010-11-7 19:10

Rainyboy 发表于 2010-10-25 14:06 static/image/common/back.gif
说说这几天发生的事儿吧。
    10.23,10.24,以及今天10.25,一共睡了8个小时的觉。帮一个老友的忙, ...

听了你的话,受益匪浅啊

firecat_2 发表于 2010-11-7 22:10

回复 7 # Rainyboy 的帖子

编程能让人的思路更具有逻辑性 编程较为复杂的是对于自己构建的代码社会中的每个角色的分工 以及社会层次问题 每个过程都富有挑战 尤其是与团队合作做项目 这个时候才能更深的理解软件工程的艺术和智慧
我也是从编程一步一步走来 最后走向了纯业务 现在搞成了故障诊断

Rainyboy 发表于 2010-11-8 09:36

回复 12 # firecat_2 的帖子

哦,我倒还没有意识到程序结果还可以理解为社会分工,哈哈,那么说兄台在编程序的时候很有当创世主的感觉了{:{46}:}

smtmobly 发表于 2010-11-9 17:14

确实哈!软件开发啊,那自然是一门艺术。

captain114 发表于 2010-11-11 00:12

呵呵,我也很喜欢Python……确实强大……
页: [1]
查看完整版本: 这几天帮朋友干了一个非常非常非常急的活儿,有感。