搞個(gè)這樣的APP要多久?

2015-8-3    用心設(shè)計(jì)

藍(lán)藍(lán)設(shè)計(jì)yvirxh.cn )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(nèi)外企業(yè)提供有效的UI界面設(shè)計(jì)BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)

每一個(gè)扁平化界面設(shè)計(jì),都是我們的心靈碰撞致力于最棒的 metro ui 設(shè)計(jì)

來源:莫貝網(wǎng)

 如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中,請點(diǎn)這里

p6974739

這是一個(gè)“如有雷同,純屬巧合”的故事,外加一些廢話,大家請勿對號入座。開始了……

我有些尷尬地拿著水杯,正對面坐著來訪的王總,他是在別處打拼的人,這幾年據(jù)說收獲頗豐,見移動(dòng)互聯(lián)網(wǎng)如火如荼,自然也想著要進(jìn)來干一場,盡管王總從事的行當(dāng)也算跟IT沾邊,但畢竟太長時(shí)間不接觸技術(shù),有些東西不太熟,總要咨詢下我這個(gè)在一線開發(fā)混了十幾年的老程序員,十幾年的開發(fā),有好幾種可能性,不過這不是重點(diǎn),所以暫時(shí)忽略掉這個(gè)細(xì)節(jié)吧。

我之所以尷尬,是對王總的需求有些不知如何回答,仿佛陷入了某種習(xí)慣性的沉思中。

王總站了起來,把手機(jī)遞到我面前,說:“你看看,就這樣一個(gè)APP?!彼惶炀毜卦谄聊簧蟿澚藥紫?,我并沒有很認(rèn)真地看,因?yàn)槲抑肋@個(gè)問題很 難,那就是所有的開發(fā)者都會(huì)被問,并且可能是被問得最頻的一個(gè)問題:“開發(fā)這么一個(gè)APP需要多長時(shí)間?”我很想說不知道,這可能是最直截了當(dāng)和準(zhǔn)確的回 答,但面對王總這位老朋友,我要是這么回答估計(jì)有些失禮,所以這個(gè)時(shí)候,我除了大致思量了一下他所指的那個(gè)APP大致涉及到哪些方面之外,還要組織下自己 的語言,如何用非常得體的話告訴他,這個(gè)事情我估算不出?!澳憧?,就這么簡單的一個(gè)APP”,王總繼續(xù)在屏幕上撥弄了幾下,然后帶著幾分期待的眼神看著 我。

我謹(jǐn)慎地說:“坦白說,我說不準(zhǔn),我這方面經(jīng)驗(yàn)也不是很足,盡管做過APP開發(fā),但又跟這個(gè)很不一樣,得具體分析好所有的邏輯,才能估算出時(shí)間?!?

王總對我的說法似乎不以為然,他晃了晃手機(jī),說:“我要求不多,其實(shí)比這個(gè)還簡單”,他指著屏幕上某些地方,繼續(xù)說:“這個(gè),這個(gè),這個(gè)都可以不要,只需要這么一個(gè)列表,里面有詳情,可以查看修改……”

我心里很自然地想到這是很典型的“想當(dāng)然簡單”的態(tài)度,我想我得讓他認(rèn)識(shí)到這個(gè)問題的復(fù)雜程度,我反問道:“需要登錄嗎?”

王總稍作停頓后,說:“那當(dāng)然?!?

“什么登錄?用戶名密碼方式,還是手機(jī)登錄,抑或像QQ,微博,微信這種可以借用的第三方登錄?”

王總這回似乎想了一下:“作為移動(dòng)互聯(lián)網(wǎng),我想手機(jī)登錄肯定是要的,QQ,微博,對了,微信,微信最好也要……哦,你前面說用戶名密碼,這個(gè)應(yīng)該也是要的吧?!?

我很流利地接著問:“那總得有注冊,如果你打算用手機(jī)登錄,那得找個(gè)短信平臺(tái),還有微信登錄,你得先做好企業(yè)身份認(rèn)證,對了,有登錄,有密碼,那密碼找回功能也得有吧?!?

“這是肯定的?!?

“同時(shí)有多種登錄途徑,你必須要想出一種合理的邏輯來將它們‘整合’,最常見的當(dāng)然是賬號綁定,例如給你的賬號綁定手機(jī)號碼,這樣就能用手機(jī)號來登 錄同樣一個(gè)賬號,對微信登錄也同理,但如今移動(dòng)互聯(lián)網(wǎng)的用戶們都挺厭惡注冊流程的,所以往往會(huì)要求直接手機(jī)登錄或者直接微信登錄,自動(dòng)完成注冊過程,那考 慮這種情況,如果用戶先用微信登錄,然后再用手機(jī)登錄,而不是綁定,那么就會(huì)產(chǎn)生兩個(gè)不同的賬號,而且無法將其再‘整合’起來,我們得想出一套比較完善的 方案……”

王總對我所說的似乎有些缺乏耐心:“沒必要這么復(fù)雜吧?你看看這個(gè)APP,這些不都有嗎?”

“有沒有我前面所描述的那個(gè)問題,你嘗試過了嗎?”

但王總似乎對問題并不關(guān)心,他只想知道做這么一個(gè)APP需要多長時(shí)間,當(dāng)然要多少錢,這也是他關(guān)心的問題,他拿出了信心滿滿的語氣:“有問題怕什么?困難算什么?這些我相信都能解決,但時(shí)間很要緊,得快,我們的競爭對手不會(huì)等我們,就這么一個(gè)東西,你想想看,要多久?”

看他的架勢,像十足那種混得風(fēng)生水起的成功人士,而我這種身份低微的程序員在他面前確實(shí)是有口難言,我本來還想繼續(xù)告訴他細(xì)節(jié)的重要性,卻被他打斷:“不,不需要有多,你只需要估算一個(gè)范圍,兩個(gè)星期?或是兩個(gè)月?”

我覺得我沒必要再隱瞞什么了:“我真的不知道,也許一支優(yōu)秀的團(tuán)隊(duì)兩個(gè)星期就能做好(不過我自己可不相信有這么牛逼的團(tuán)隊(duì)),但我很明顯不是那個(gè)能創(chuàng)造這種奇跡的人。”我心想其實(shí)就算說出了“兩個(gè)星期到兩年”這么一個(gè)開玩笑式的范圍,也可能是錯(cuò)的。

王總似乎對我這樣的回答很失望。但他是個(gè)執(zhí)行力很強(qiáng)的人,想做一件事,就一定會(huì)行動(dòng),行動(dòng)一定快,一定要有結(jié)果,這種雷厲風(fēng)行的行事風(fēng)格,確實(shí),我挺欣賞,不過他的這個(gè)項(xiàng)目,我可真幫不上忙,但我還是出于禮貌,說道:“技術(shù)方面有什么問題,還是可以來問我的。”

====================== 不怎么華麗的分隔線 ======================

“做一個(gè)APP需要多長時(shí)間?”這個(gè)問題估計(jì)比測一個(gè)人還能活幾天還難,一個(gè)條件如此不充分的問題,如何回答呢?

總體來說,需求越是明確,團(tuán)隊(duì)越是成熟,估算出來的時(shí)間就越是準(zhǔn)確。而軟件開發(fā)這個(gè)事情,不管發(fā)展多少年,不管提出了怎樣的方法論,都沒辦法像傳統(tǒng)制造業(yè)那樣把“工時(shí)”算得那么,其內(nèi)部錯(cuò)綜復(fù)雜的邏輯關(guān)系使然,軟件工程,絕無可能量產(chǎn)。

用戶看到的只是一個(gè)APP,如果他用的是iOS系統(tǒng),也許他根本就不會(huì)接觸Android,不知道開發(fā)者除了iOS版之外,還需要做一個(gè) Android版,(有沒可能還有Windows版?這樣工作量無疑更大)或者,網(wǎng)頁版搞定一切?也許你真正動(dòng)手做過后就不會(huì)這么認(rèn)為,再說微信小店那種 模式真能適用于所有場合么?而且,如果不是網(wǎng)絡(luò)出現(xiàn)異常的話,一般用戶也不會(huì)注意到服務(wù)器的存在,服務(wù)器總是那么默默無聞地為用戶全天候地工作,它的開發(fā) 難度恐怕也不亞于APP本身,而負(fù)責(zé)APP運(yùn)維的還需一些人力,大了之后甚至需要組建一個(gè)專業(yè)團(tuán)隊(duì),他們需要一個(gè)“后臺(tái)”,能隨時(shí)查看和處理數(shù)據(jù),如果需 要隨時(shí)隨地都能查看和處理數(shù)據(jù),恐怕還得給后臺(tái)專門弄個(gè)APP。

這個(gè)道理就有點(diǎn)類似:我們看到了戰(zhàn)機(jī)在天上華麗地完成了殲敵任務(wù),以為只是戰(zhàn)機(jī)本身很牛,往往忽視了戰(zhàn)機(jī)相關(guān)的那些配套,如果沒有嫻熟的飛行員、作 戰(zhàn)指揮中心、地面雷達(dá)、預(yù)警機(jī)、補(bǔ)給、機(jī)場或航母、地勤人員等等,那么戰(zhàn)機(jī)將失去戰(zhàn)斗力。APP也一樣,它不是一個(gè)只要能跑起來就完事的東西,支持它的配 套設(shè)施和維護(hù)工作絲毫不比APP本身簡單。

除開這些大的方面,細(xì)節(jié)上也帶有許多的不確定性,所以一支成熟的團(tuán)隊(duì)尤為重要,一個(gè)經(jīng)驗(yàn)豐富的開發(fā)者會(huì)知道,至少大致知道這個(gè)開發(fā)過程會(huì)遇到哪些問題,哪些問題比較簡單,哪些問題則可能需要耗費(fèi)大量的時(shí)間,這得依賴經(jīng)驗(yàn)。我有一句話常常掛在嘴邊,那就是:“沒做過的東西別輕易說簡單。”“想當(dāng)然簡單”的態(tài)度對項(xiàng)目沒有任何好處,如果自己不確定,那么去咨詢一個(gè)有這方面經(jīng)驗(yàn)的人,就算得不到具體的答案也有大致的方向,沿著這些方向研究一下,就能知道會(huì)面臨的那些問題,當(dāng)然往往還不是全部。

關(guān)于“低估了難度”這事情,我過去的公司有個(gè)經(jīng)典故事,當(dāng)時(shí)有個(gè)小項(xiàng)目,就是準(zhǔn)備把一套已經(jīng)在儀器上使用的只支持英語的程序增加多語言支持,程序并 不大,涉及內(nèi)容也不算太多,工程師一開始認(rèn)為這只是個(gè)簡單的翻譯工作,頂多兩個(gè)星期就能完成,但一做下去就發(fā)現(xiàn)不簡單,首先翻譯得找專業(yè)人士來做,自己做 不好,我們沒人精通歐洲各國語言,接下來還有單位換算,有些國家用公制,有些用英制,這個(gè)得考慮,包括日期顯示格式也得考慮,一下子不知道多了多少工作, 這些都差不多了之后又發(fā)現(xiàn)了德語單詞過長,我們的儀器的屏幕顯示不下,超出范圍,于是再調(diào)字體,做精簡,前前后后開會(huì)討論了N次,最后想Release的 時(shí)候發(fā)現(xiàn)這么一改,程序的Size變大了很多,有些儀器的存儲(chǔ)器裝不下,這下大家可都傻了,優(yōu)化唄,精簡唄,程序開始有些凌亂不堪了,最后勉強(qiáng)通過質(zhì)控部 檢驗(yàn),總算發(fā)布了,發(fā)覺足足搞了半年。不過如今想想之所以耗費(fèi)了這么多時(shí)間,一個(gè)很重要的原因是經(jīng)驗(yàn)不足,對多語言,國際化這塊不熟,走了不少彎路,所以 我前面也提到,成熟的團(tuán)隊(duì)尤為重要。

我們在估算項(xiàng)目時(shí)間的時(shí)候,往往只算了“寫代碼的時(shí)間”,而把那些和老板或客戶扯皮,做需求分析,設(shè)計(jì),測試,和修復(fù)bug的時(shí)間不考慮進(jìn)去,而這 些時(shí)間加起來通常比寫代碼的時(shí)間多出不少,我個(gè)人是不輕易為了討好老板而把完成時(shí)間說得很短的,為啥?——根本做不到嘛,干嘛要撒謊?如果一個(gè)需要一星期 完成的新功能開發(fā),我通常得把這個(gè)時(shí)間double,這已經(jīng)算比較“不保守”的了。

即便只算寫代碼的時(shí)間,也往往會(huì)被低估,老板或客戶對你開發(fā)的東西很可能不滿意,或許你誤解了他的功能需求,或者界面有點(diǎn)卡頓,或者這個(gè)圖標(biāo)顏色不 好看,你是開發(fā)者,不是美工,雖然湊合可以當(dāng)一下美工,但畢竟不專業(yè),更重要的是做做UI設(shè)計(jì),做做圖這種事情,也得耗費(fèi)不少時(shí)間,當(dāng)你為“一個(gè)像素”焦 頭爛額的時(shí)候,是不是很渴望團(tuán)隊(duì)中有一名設(shè)計(jì)師?這時(shí)候得提醒下老板:你必須要在時(shí)間和功能之間,做點(diǎn)取舍。老板當(dāng)然很不高興,但也不得不在功能上做出了 一些妥協(xié)。雖然這樣做能讓難產(chǎn)的項(xiàng)目早點(diǎn)上線,但卻為來日項(xiàng)目的失敗,給老板添加了一個(gè)很好的借口:我們的工程師太差了,沒按我說的去做。

老板或客戶除了會(huì)抱怨你做出來的東西不夠好看之外,還會(huì)再提很多東西:這個(gè)界面能不能改成多選,能否增加通知功能,已讀未讀狀態(tài)要有,界面能不能再 流暢點(diǎn),昨晚程序咋“閃退”了一次……需求只管提功能,但沒說具體這個(gè)UI要多美觀,也沒說程序穩(wěn)定性要好,更沒涉及到要達(dá)到多大的吞吐量,當(dāng)然,可能更 重要的——安全性也沒提,你心一驚:是啊,如果有黑客,不,只要稍微懂一點(diǎn)技術(shù)的惡意用戶想刷爆我們的服務(wù)器,那簡直太簡單了,而這些防護(hù)措施我都沒做! 所幸的是項(xiàng)目名氣太小,暫時(shí)無需考慮這個(gè)。(貌似大多數(shù)APP都活不到需要考慮這個(gè)的時(shí)候)

所有這些,你說功能也好,細(xì)節(jié)也好,穩(wěn)健性也好,都不是能自動(dòng)從土里長出來的東西,都得需要花時(shí)間去想,去做,有些甚至還是個(gè)“系統(tǒng)工程”,如果頭 痛醫(yī)頭腳痛醫(yī)腳去做的話,系統(tǒng)里到處充滿“飛線”,無疑會(huì)給將來的維護(hù)留下了許多隱患。攻城獅的你,都考慮了嗎?更別說老板為了節(jié)省成本而給你購置的低性 能電腦讓你整天抓狂這些“無關(guān)緊要”的事。

====================== 不怎么華麗的分隔線 ======================

話說王總告別我之后就以迅雷不及掩耳之勢注冊了公司,注冊了域名,搞到了辦公室,還一下子叫來了一幫子人風(fēng)風(fēng)火火地搞了起來,這種發(fā)展勢頭,這種干 勁,我只有自嘆不如。心底里真有些后悔怎么沒跟他去干事業(yè),不過這只是感性的一瞬間,理性又在接下來的幾百毫秒里將我拉了回來:還是別去好,跟他溝通不來 的。

王總的項(xiàng)目后來以一飛沖天之勢迅猛發(fā)展,而他如今已經(jīng)是一家估值幾億的公司的CEO,我嘛,越來越覺得自己是個(gè)Loser,獨(dú)自坐在辦公室里,還是 拿著那個(gè)水杯,懊惱不已——打?。∵@樣是不是比較有戲劇性?可雖然一開始我就聲明此故事“如有雷同,純屬巧合”,但也不能胡亂瞎編,真正的結(jié)局是:確實(shí)風(fēng) 風(fēng)火火弄了幾個(gè)月,后來就突然杳無音訊了,本來想打電話問問王總究竟怎樣,無奈他變成了另一個(gè)超級忙人,再無心思跟我聊家常了。嗯,結(jié)局還是差不多,我還 是那個(gè)繼續(xù)苦逼地坐在辦公室里的程序員,唉,別想了,開工吧!

日歷

鏈接

個(gè)人資料

存檔