做一個這樣的APP要多久?

2022-05-10    分類: 網(wǎng)站建設(shè)

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

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

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

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

我謹慎地說:“坦白說,我說不準,我這方面經(jīng)驗也不是很足,盡管做過APP開發(fā),但又跟這個很不一樣,得具體分析好所有的邏輯,才能估算出時間?!?br/>
王總對我的說法似乎不以為然,他晃了晃手機,說:“我要求不多,其實比這個還簡單”,他指著屏幕上某些地方,繼續(xù)說:“這個,這個,這個都可以不要,只需要這么一個列表,里面有詳情,可以查看修改……”

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

王總稍作停頓后,說:“那當然?!?br/>
“什么登錄?用戶名密碼方式,還是手機登錄,抑或像QQ,微博,微信這種可以借用的第三方登錄?”

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

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

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

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

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

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

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

我覺得我沒必要再隱瞞什么了:“我真的不知道,也許一支優(yōu)秀的團隊兩個星期就能做好(不過我自己可不相信有這么牛逼的團隊),但我很明顯不是那個能創(chuàng)造這種奇跡的人?!蔽倚南肫鋵嵕退阏f出了“兩個星期到兩年”這么一個開玩笑式的范圍,也可能是錯的。

王總似乎對我這樣的回答很失望。但他是個執(zhí)行力很強的人,想做一件事,就一定會行動,行動一定快,一定要有結(jié)果,這種雷厲風行的行事風格,確實,我挺欣賞,不過他的這個項目,我可真幫不上忙,但我還是出于禮貌,說道:“技術(shù)方面有什么問題,還是可以來問我的?!?br/>
====================== 不怎么華麗的分隔線 ======================

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

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

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

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

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

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

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

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

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

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

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

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

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

當前標題:做一個這樣的APP要多久?
標題URL:http://www.muchs.cn/news20/151770.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、自適應(yīng)網(wǎng)站、營銷型網(wǎng)站建設(shè)服務(wù)器托管、App開發(fā)標簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)