易于使用的人工智能_需求分析:如何使用這種易于啟動的方法+一個案例研究...

易于使用的人工智能

by Turgay ?elik

由Turgay?elik

需求分析:如何使用這種易于啟動的方法+一個案例研究 (Requirement Analysis: how to use this startup-friendly approach + a case study)

In our previous blog posts, we explained why we decided to develop the Badges App and how we evaluated the feasibility of our idea at OpsGenie:

在之前的博客文章中,我們解釋了為什么決定開發Badges App以及我們如何在OpsGenie中 評估我們的想法的可行性 :

Since we found that our idea is worth developing, the next step is analyzing the requirements.

由于我們發現我們的想法值得發展,因此下一步是分析需求。

Requirement analysis — a very well studied area of software engineering — is the process of determining user expectations for a product, or briefly defining the product scope. There are tons of available resources on requirements analysis methodologies, characteristics of good requirements and tracing requirements. Instead of repeating the literature, we are going to summarize the critical points in a startup thinking way.

需求分析是一個非常深入的軟件工程領域,是確定用戶對產品的期望或簡要定義產品范圍的過程。 關于需求分析方法,良好需求的特征和跟蹤需求,有大量可用資源。 與其重復文獻,不如以一種新的思維方式來總結關鍵點。

We know, startup guys generally don’t like terms like “process”, “proof of concept”, “requirements”, “scope”, “schedule”, “design”, “documentation” or “maintainability”. Generally they are impatient and they just want to code and release. We accept that agility is vital in our world and we have to try, fail and recover fast. But benefiting from the heritage of the software world will help us on the way to success. The key point is keeping it agile.

我們知道,剛開始的家伙通常不喜歡“過程”,“概念證明”,“需求”,“范圍”,“計劃”,“設計”,“文檔”或“可維護性”之類的術語。 通常,他們不耐煩,只想編碼和發布。 我們接受敏捷性對我們的世界至關重要,我們必須嘗試,失敗和快速恢復。 但是受益于軟件世界的遺產將幫助我們邁向成功之路。 關鍵是保持敏捷。

Following a process is not an objective, it is a tool that helps us achieve our goals. So, let’s see how we can adopt classical approaches to our world in the context of requirements management.

遵循流程不是目標,而是幫助我們實現目標的工具。 因此,讓我們看看如何在需求管理的背景下對我們的世界采用經典方法。

The Project Management Triangle is a model of the constraints of software management. Despite the fact that it is an old concept from the 1950's, I think it is still relevant.

項目管理三角形是軟件管理約束的模型。 盡管它是1950年代的舊概念,但我認為它仍然有意義。

In summary, project management triangle says that the quality of work is constrained by the project’s budget, deadlines and features. There is a trade-off among these three constraints to achieve the necessary project quality. So we can say that software development is a multi-objective optimization problem.

總而言之,項目管理三角表示工作質量受到項目預算期限功能的限制 。 為了獲得必要的項目質量,需要在這三個約束之間進行權衡。 因此可以說軟件開發是一個多目標優化問題 。

We don’t like to constrain ourselves by classical approaches, so let’s adapt the old Project Management Triangle to the new startup world. Recall the Startup Success Factors that we mentioned at Feasibility Analysis post.

我們不喜歡用經典的方法來約束自己,所以讓我們將舊的項目管理三角形適應新的創業世界。 回想一下我們在可行性分析后提到的啟動成功因素。

Here is how we map these success factors to the classical project management triangle:

這是我們將這些成功因素映射到經典項目管理三角的方法:

As shown in the table above, all startup success factors relate to various project management triangle constraints. Since these three constraints are in a trade-off, we can say that keeping the scope neat is vital for the success of a startup.

如上表所示,所有啟動成功因素都與各種項目管理三角約束有關。 由于這三個約束是折衷的,所以可以說保持范圍整潔對于啟動成功至關重要。

To define a neat scope, we have to perform a good requirement analysis before starting the development. Please note that this does not mean we are going to perform a fully detailed requirement analysis just like defined in waterfall process. We are going to do it in agile way.

為了定義一個整潔的范圍,我們必須在開始開發之前進行良好的需求分析。 請注意,這并不意味著我們將像瀑布過程中定義的那樣執行全面詳細的需求分析。 我們將以敏捷的方式做到這一點。

需求分析技巧 (Tips for Requirement Analysis)

In this section, we will provide important tips that you should keep in mind:

在本節中,我們將提供您應該記住的重要提示:

深入檢查替代/同類產品 (Inspect Alternative/Similar Products In Depth)

As always, don’t reinvent the wheel. Check what others do to meet your objectives. Even you may end up realizing that your product does not seem to have business impact that you were thinking before.

與往常一樣,不要重新發明輪子。 檢查其他人為實現您的目標所做的事情。 甚至您可能最終也意識到,您的產品似乎并沒有像您以前想的那樣對業務產生影響。

This is a good sign to pivot your idea. It may seem like a failure, but remember, we have to fail as fast as possible.

這是改變您的想法的好兆頭。 這似乎是一個失敗,但請記住, 我們必須盡快失敗

記錄您的要求 (Document your requirements)

You don’t have to use a requirements management tool such as IBM Rational DOORS. But a short, bulleted requirements document will help negotiate with the stakeholders.

您不必使用諸如IBM Rational DOORS之類的需求管理工具。 但是,簡短的項目符號需求文檔將有助于與利益相關者進行談判。

讓您的(潛在)客戶保持聯系 (Keep Your (Potential) Customers In the Loop)

I think this is one of the most important things about requirements development. A capability that you think that is killer may not make sense to the customers.

我認為這是需求開發中最重要的事情之一。 您認為致命的功能對客戶而言可能沒有意義。

To keep your potential customers in the loop, you have to follow an iterative approach. You can do this by shipping an initial version of your product — Minimum Viable Product (MVP) — and evolving it according to customer feedback.

為了使您的潛在客戶保持聯系,您必須采用迭代方法。 為此,您可以交付產品的初始版本-最低可行產品(MVP)-并根據客戶反饋對其進行改進。

For example, Amazon Web Services team utilizes this approach frequently. They ship a service with minimum capabilities and evolve it based on customer feedback.

例如,Amazon Web Services團隊經常使用此方法。 他們以最低的功能交付服務,并根據客戶的反饋進行發展。

Another approach is to develop mock applications that just provide a dummy user interface (UI) to help potential customer to understand the product features and give feedback. You can use products like InvisionApp to produce these mocks.

另一種方法是開發僅提供虛擬用戶界面(UI)的模擬應用程序,以幫助潛在客戶了解產品功能并提供反饋。 您可以使用InvisionApp之類的產品來生成這些模擬。

需求管理是一個連續的過程 (Requirements Management is a Continuous Process)

You don’t have to spend months for requirements analysis at the beginning of a project, and please don’t — it is not the agile way.

在項目開始時,您不必花費數月的時間進行需求分析,請不要這樣做-這不是敏捷方法。

At the beginning, your objective is to define boundaries of the system, negotiate with the team and other stakeholders, and prepare the definition of the Minimum Viable Product. The requirements should be detailed or can even evolve during iterations of development.

首先,您的目標是定義系統的邊界,與團隊和其他利益相關者進行談判并準備最小可行產品的定義。 需求應該是詳盡的,甚至可以在開發的迭代過程中不斷發展。

分組您的要求 (Group your requirements)

After you create a list all of your requirements, group them (divide and conquer) to form sets of related features. Grouping requirements to feature groups will ease your life during development phase and even it can help you to define bounded contexts, microservice architectures, and so on.

創建所有需求列表之后,將它們分組(分而治之)以形成一組相關功能。 將需求分組到功能組將簡化您在開發階段的工作,甚至可以幫助您定義有限的上下文 ,微服務體系結構等。

考慮UX (Think About UX)

It is not necessary to say that User Experience (UX) is a very important factor in the success of a product anymore; today it is so obvious. But we have to still remind that User Experience is not just about fancy User Interfaces.

不必說用戶體驗(UX)成為產品成功的一個非常重要的因素; 今天是如此明顯。 但是,我們仍然必須提醒用戶體驗不僅僅是花哨的用戶界面。

As the name implies, it is all about the “experience” and it is hard to improve a system’s UX after it is developed.

顧名思義,這一切都與“體驗”有關,開發系統后很難改進其用戶體驗。

Think about UX starting from requirements analysis, it could even be a motivation during the feasibility analysis phase to develop a new product if available alternatives in the market lack good UX.

從需求分析開始考慮用戶體驗,如果市場上的可用替代品缺乏好的用戶體驗,那么甚至可能是在可行性分析階段開發新產品的動機。

User Experience affects the business requirements. For example, if you are developing an e-commerce application, designing a fast responding customer support system is about improving the User Experience.

用戶體驗會影響業務需求。 例如,如果您正在開發電子商務應用程序,那么設計一個快速響應的客戶支持系統就是要改善用戶體驗。

盡可能不了解實施技術 (Be Agnostic of Implementation Technologies As Much As Possible)

Of course this is not applicable if you are developing an infrastructure or a library for a specific technology :)

當然,如果您正在為特定技術開發基礎結構或庫,則此方法不適用:)

Don’t fall into “If all you have is a hammer, everything looks like a nail” trap. Find new tools and utilities instead of limiting product capabilities to the technologies that you are familiar with or that you enjoy playing with.

不要陷入“如果只有錘子,一切看起來都像釘子”陷阱。 查找新的工具和實用程序,而不是將產品功能限制為您熟悉或喜歡使用的技術。

In enterprise companies, requirements analysis is generally performed by non-software engineers who are generally known as business analysts or systems engineers. This separation has some disadvantages, especially in terms of transferring requirements to development teams, but I think it also has some advantages.

在企業公司中,需求分析通常由通常稱為業務分析師或系統工程師的非軟件工程師執行。 這種分離有一些缺點,特別是在將需求轉移到開發團隊方面,但我認為它也有一些優點。

In my opinion, the biggest advantage of independent analysis teams is that they are agnostic of the technologies that will be used during development.

在我看來,獨立分析團隊的最大優勢是他們對將在開發過程中使用的技術不可知。

But in the startup world, most probably as a team member (or even as a founder), you have to wear multiple hats: analyst, developer, hiring manager, or even more interesting roles that you were not imagining when you get in this path. So, if you are wearing the analyst hat at the moment, try to be agnostic of the technologies that you are planning to use during implementation.

但是在創業世界中,很可能作為團隊成員(甚至是創始人),您必須戴上多個帽子:分析師,開發人員,招聘經理,或者甚至更有趣的角色,而當您走上這條路時。 因此,如果您現在戴著分析員的帽子,請不要理會計劃在實施過程中使用的技術。

We consistently hear expressions like “but Spring Framework does not support …” and “This causes a lot of work on the front-end” during requirement analysis.

在需求分析過程中,我們始終聽到諸如“但Spring Framework不支持…”和“這在前端導致大量工作”之類的表達。

Considering these kind of limitations at the start degrades the quality of the end product. Let’s define the ultimate capability and evolve it during development if necessary.

一開始考慮這些限制會降低最終產品的質量。 讓我們定義最終功能,并在必要時在開發過程中對其進行發展。

Ultimate capability is the final goal to reach, you can implement a more simple form of it when you start and evolve it in future versions. But knowing the point that we want to reach will help us to define our vision for the growth of the product.

最終功能是最終的目標,您可以在開始并在將來的版本中進行擴展時,以更簡單的形式實現它。 但是,知道我們要達到的目標將有助于我們確定產品增長的愿景。

For example, think about “pinch-to-zoom” capability of mobile phones. It seems like a trivial capability but it was a revolution when Steve Jobs first demonstrated it. If the designers of iPhone didn’t think out-of-the-box and stuck to the available technologies and methods, we would not have this great functionality today. We know that it is an exaggerated example, but the main point is, don’t let the technology you would like to use limit you, you can move to other technologies if this will help you to create a niche product.

例如,考慮一下手機的“縮小縮放”功能。 這看似微不足道的功能,但這是史蒂夫·喬布斯(Steve Jobs)首次展示它時的一次革命。 如果iPhone的設計師沒有開箱即用的想法,而是堅持使用可用的技術和方法,那么今天我們就不會擁有如此強大的功能。 我們知道這是一個夸張的示例,但要點是,不要讓您想使用的技術限制您,可以使用其他技術來幫助您創建利基產品。

徽章應用程序的需求分析 (Requirements Analysis for Badges App)

We performed requirements analysis according to the practices that we summarized above:

我們根據上面總結的實踐進行了需求分析:

  • We defined an initial set of requirements

    我們定義了一組初始要求
  • We shared the requirements with our initial customer — The OpsGenie team — and updated the requirements according to the team’s comments.

    我們與最初的客戶OpsGenie團隊共享了需求,并根據團隊的評論更新了需求。
  • At OpsGenie, we use Atlassian’s JIRA for issue tracking. To track the requirements, we created an issue with “New Feature” type for each requirement in JIRA.

    在OpsGenie,我們使用Atlassian的JIRA進行問題跟蹤。 為了跟蹤需求,我們為JIRA中的每個需求創建了一個“新功能”類型的問題。
  • We grouped related requirements with JIRA Epics. Some of our epics are User Operations, Group Operations, Badge Operations, Endorsement and 3rd Party Tool Integration.

    我們將相關需求與JIRA Epics進行了分組。 我們的一些史詩是用戶操作,組操作,徽章操作,背書和第三方工具集成。

  • In further steps of development, we created detailed issues for daily tasks, as Agile practices recommend. We linked each task with one or more requirements to keep traceability of development activities with requirements.

    在進一步的開發步驟中,我們按照敏捷實踐的建議為日常任務創建了詳細的問題。 我們將每個任務與一個或多個需求相關聯,以保持開發活動與需求的可追溯性。
  • Each epic contains a set of requirements (such as a New Feature), Development Tasks, and Bugs.

    每個史詩都包含一組要求(例如新功能),開發任務和錯誤。

Want to follow our Badges app, or better, recommend new features and help us refine it? Join Badges App community!

想要關注我們的徽章應用,或者更好地推薦新功能并幫助我們完善它? 加入徽章應用社區!

Further reading:

進一步閱讀:

Badges App: OpsGenie’s Response to Skill Tracking and Management ChallengesAs we see skill tracking and management as a crucial task for the healthy growth of our company, we invested in a…engineering.opsgenie.comHow Did We Decide That Our New Product Idea Is Feasible?So, we have a new product idea, and we think that it’d be “useful,” “great” and further, “It will make the world a…engineering.opsgenie.com

徽章應用程序:OpsGenie對技能跟蹤和管理挑戰的React當 我們將技能跟蹤和管理視為公司健康成長的關鍵任務時,我們投資了…… engineering.opsgenie.com 我們如何決定我們的新產品理念是可行? 因此,我們有一個新的產品構想,我們認為這將是“有用的”,“偉大的”,并且進一步說,“它將使世界成為……工程。opsgenie.com

翻譯自: https://www.freecodecamp.org/news/how-to-analyze-the-requirements-of-a-new-product-a-startup-friendly-approach-and-a-case-study-833970e5c36c/

易于使用的人工智能

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/395154.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/395154.shtml
英文地址,請注明出處:http://en.pswp.cn/news/395154.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java writeboolean_Java DataOutputStream writeBoolean()方法(帶示例)

DataOutputStream類writeBoolean()方法writeBoolean()方法在java.io包中可用。writeBoolean()方法用于將給定的布爾字節寫入基本輸出流,因此成功執行后寫入的變量計數器為1。writeBoolean()方法是一種非靜態方法,只能通過類對象訪問,如果嘗試…

【BZOJ4300】—絕世好題(二進制dp)

傳送門 考慮到只需要bi&bi?1?0b_i\&b_{i-1} \not0bi?&bi?1???0 由于&\&&,我們考慮二進制下只需要一位不為0就可以了f[i]f[i]f[i]表示當前數下,第iii位不為0的最優長度 那就是需要枚舉當前這個數所有位就…

愛立信與中國聯通成功完成國內首個LTE三載波聚合大規模部署測試

近日,愛立信與中國聯通網絡技術研究院、聯通四川省公司、聯通成都市分公司、Qualcomm Incorporated子公司Qualcomm Technologies, Inc.合作成功實現了國內首個三載波聚合大規模部署和運行測試,下行單用戶峰值速率達到375Mbps。該項目充分驗證了載波聚合大…

七牛服務器入門教程_教程:使用無服務器,StepFunction和StackStorm構建社區的入門應用程序…...

七牛服務器入門教程by Dmitri Zimine由Dmitri Zimine 使用無服務器,StepFunction和StackStorm Exchange構建社區注冊應用 (Building a community sign-up app with Serverless, StepFunctions, and StackStorm Exchange) Build a real-world serverless applicatio…

devexpress java_DevExpress使用心得一:換膚

最近要用到界面控件DevExpress。一句話:很好很強大,比起VS自帶的winform界面,種類和花樣要多了不少。然而,強力的功能帶來了龐大的信息量,所以我打算通過一些小模塊來和大家一起對它進行探討和研究。今天先研究一下它的…

《低功耗藍牙開發權威指南》——第3章低功耗藍牙的體系結構

本節書摘來自華章社區《低功耗藍牙開發權威指南》一書中的第3章低功耗藍牙的體系結構,作者 (英)Robin Heydon,更多章節內容可以訪問云棲社區“華章社區”公眾號查看 第3章低功耗藍牙的體系結構專注簡單是我一直以來信奉的價值觀。…

[福建集訓2011][LOJ10111]相框

這題主要還是分類討論歐拉回路 首先對于導線一端沒有東西的新建一個節點 由于原圖不一定連通所以需要用到并查集判斷有多少個連通塊 將一條導線連接的兩個焊點連接 然后先對于只有一個連通塊考慮 1.如果一個焊點是孤立點 它對于導線無影響跳過 2.如果一個焊點度數大于2 它必須被…

TJpgDec—輕量級JPEG解碼器

TJpgDec—輕量級JPEG解碼器 本文由烏合之眾lym瞎編,歡迎轉載blog.cnblogs.net/oloroso 下文中解碼一詞皆由decompression/decompress翻譯而來。 TJpgDec是一個為小型嵌入式系統高度優化的創建JPEG圖像的解碼模塊。它工作時占用的內存非常低,以便它可以集…

幫助中心 開源_對開源的貢獻幫助我獲得了Microsoft的實習機會。 這就是它可以為您提供幫助的方式。

幫助中心 開源“Accomplished X by implementing Y which led to Z.” “通過實現導致Z的Y來完成X。” When I interviewed for software engineering internships this past fall, my open source contributions helped me stand out from the crowd.去年秋天,當我…

java 操作窗口_java selenium (十二) 操作彈出窗口

public static void testMultipleWindowsTitle(WebDriver driver) throws Exception{String url"E:\\StashFolder\\huoli_28hotmail.com\\Stash\\Tank-MoneyProject\\Selenium Webdriver\\AllUIElement.html";driver.get(url);// 獲取當前窗口的句柄String parentWin…

1970“變種”bug連WiFi熱點iOS設備會變磚?

據悉,該漏洞和此前“1970”的bug有關系,但不完全一樣。 威鋒網訊,你還記得將 iOS 設備系統時間調至 1970.1.1 會讓設備變磚的 bug 么?盡管蘋果在 iOS 9.3 中已經將這個 bug 修復,但據安全研究員指出,他們發…

Centos7 安裝python3.7.2

下載python3.7.2源碼 wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz 下載完后對壓縮包解壓縮 tar -xf Python-3.6.3.tgz 進入解壓縮完后的文件夾: cd Python-3.7.2 配置(需要加上--with-ssl,不然pip不能安裝相關函數庫,pyt…

華為 9

package NiukeBrush; import java.util.Iterator; //排序與查重 import java.util.LinkedHashSet; import java.util.Scanner; import java.util.Set;//改進做法 public class Huawei9next {public static void main(String[] args) {// TODO Auto-generated method stub//鍵盤…

印刷點陣字體_印刷術如何確定可讀性:襯線與無襯線,以及如何組合字體。

印刷點陣字體by Harshita Arora通過Harshita Arora For digital design, it’s important to know and understand how to use and how to combine different fonts. There’s a font for every mood!對于數字設計,重要的是了解和理解如何使用以及如何組合不同的字…

java中setattribute_淺談Java web 中request的setAttribute()用法

在兩個JSP代碼片中有這樣兩端程序:JSP1代碼String [] testnew String[2];test[0]"1";test[1]"2";request.setAttribute("test",test) ;response.sendRedirect("jsp2.jsp");JSP2代碼String test[](String[])request.getAttr…

基礎拾遺------webservice詳解

基礎拾遺 基礎拾遺------特性詳解 基礎拾遺------webservice詳解 基礎拾遺------redis詳解 基礎拾遺------反射詳解 基礎拾遺------委托詳解 基礎拾遺------接口詳解 基礎拾遺------泛型詳解 基礎拾遺-----依賴注入 基礎拾遺-----數據注解與驗證 基礎拾遺-----mongoDB操作 基礎…

南京打造大數據創新孵化平臺

9月9日上午,南京微軟云暨移動應用孵化平臺在南京開發區新港高新園揭牌運營,項目創業大賽同步啟動。 據悉,南京微軟云暨移動應用孵化平臺將打造以“云物大智”產業為核心的創新創業孵化平臺。平臺代理總經理童雪松介紹,平臺匯集了強…

react控制組件中元素_React Interview問題:瀏覽器,組件或元素中呈現了什么?

react控制組件中元素by Samer Buna通過Samer Buna React Interview問題:瀏覽器,組件或元素中呈現了什么? (React Interview Question: What gets rendered in the browser, a component or an element?) **技巧問題** (** Trick Question *…

java gc時自動收dump_Full?GC分析:設置Java?VM參數實現在Full?GC前后自動生成Dump

本文講解了如何設置JavaVM參數實現在FullGC前后自動生成Dump。共有三個VM參數需要設置:HeapDumpBeforeFullGC 實現在Full GC前dump。HeapDumpBeforeFullGC 實現在Full GC后dump。HeapDumpPath 設置Dump保存的路徑設置這些參數的方法,這里總結了四種&…

jquery插件dataTables自增序號。

dataTables官網提供了一種方式,使用后沒有達到預期效果(js報錯),沒有深究原因。如果需要,可以按照下面的方式來。 1 $(#dataList).dataTable({2 "language": {3 "sProcessing&…