คำถามหลังสอบ Business Software Requirement

Bookworm_by_Svetlana_Sergeevna

ข้อสอบมี 2 กรณีศึกษาให้เลือกทำ
โดยให้หา Business Problem, Business Requirement, Steak-holder Requirements, Business Rules, Functional Requirements และ เขียน Software Model (DFD)

  1. ร้านขายอะไหล่รถยนต์ ขายและติดตั้งอะไหล่ภายในร้าน แต่ร้านมีที่จอดรถได้แค่ 2 คัน คำนวณเวลาไม่ได้ บางครั้งนานเป็นวัน ลูกค้าเลยเข้ามาเปลี่ยนอะไหล่ไม่ได้เพราะรถเต็ม เสียลูกค้าไปง่ายๆ และลูกค้าก็เลยไม่ค่อยกลับมาอีก อะไหล่ก็ซื้อมาค้าง stock เสียค่าจ้างช่างไปฟรีๆ
    1. Business Problem – ร้านค้ามีที่จอดรถแค่ 2 คัน, สินค้าค้าง stock, ช่างไม่มีงานทำ ทำให้เสียค่าแรงไปฟรีๆ
    2. Business Rules – จ้างช่างมาเปลี่ยนอะไหล่ มีสินค้าให้ลูกค้าเลือก
    3. Functional Reqiorements – ระบบ Shopping cart, ระบบจองวันเปลี่ยนอะไหล่, ระบบจัดคิวงาน, ระบบ online payment, ระบบ stock management, ระบบ hr
  2. ร้านรับจัดสวน มีลูกค้า 3 ประเภท เจ้าของบ้าน(ไม่ค่อยมี) เจ้าของโครงการบ้านจัดสรร(สั่งทีก็สั่งเยอะๆ) เจ้าของธุรกิจ (ให้ไปจัดใน office) แผนกหาและดูแลลูกค้าจะเป็นคนไปหาลูกค้าก่อน โดยจะเอาแฟ้มรูปที่เคยจัดสวนไปให้ดู ซึ่งบางครั้งรูปอาจจะหาย หรือลูกค้าขอ ทำให้แฟ้มมีข้อมูลไม่ครบอยู่เรื่อย เมื่อได้ลูกค้าแล้ว ก็จะส่งข้อมูลติดต่อ และแผนที่ของสถานที่จัดสวนไปให้ฝ่ายออกแบบ ผ่ายออกแบบจะนัดกับลูกค้าเพื่อมาดูสถานที่จริง ปัญหามักจะเกิดจากได้สถานที่มาไม่ชัดเจนไปไม่ถูกที่ ทำให้เสียเวลา และเมื่อได้ดูสถานที่จริงแล้ว ก็มาออกแบบแล้วส่งให้ลูกค้าจนกว่าจะพอใจ ซึ่งมีตั้งแต่ 2 – 5 รอบ จนลูกค้าบางรายไม่ทำต่อ และเมื่อลูกค้าพอใจกับแบบก็จะไปทำจริง ซึ่งคำนวณวัตถุดิบไม่ได้ เพราะว่าใช้รวมกันหมดทุกงาน และก็ไม่ทราบกำไรที่แท้จริง
    1. Business problem – ร้านค้ามีการติดต่อสื่อสารกับลูกค้าไม่ชัดเจน, ไม่มีระบบจัดการวัตถุดิบ ไม่จำกัดสิทธิ์การเบิกวัตถุดิบ ไม่มีการประเมินวัตถุดิบก่อนเริ่มงาน ไม่มีการจดบันทึกการใช้งานวัตถุดิบ
    2. Business Rules – ฝ่ายดูแลลูกค้าไปหาลูกค้า ฝ่ายออกแบบออกแบบสวนไปส่งลูกค้า ลูกค้าพอใจแล้วถึงจะเริ่มจัดสวนจริง
    3. Functional Requirements – ระบบแฟ้มข้อมูลดิจิทัล, ระบบจัดการข้อมูลลูกค้า, ระบบจัดคิวงาน, ระบบจองวันนัดดูสถานที่จัดสวน, ระบบจองวันนัดทำสวน, ระบบ task management, ระบบอัพเดทงาน, ระบบจัดการ stock, ระบบจัดซื้อ, ระบบบัญชีลูกหนี้

คำถามหลังจากได้ทำข้อสอบ

  1. ใน DFD ถ้าหากว่าเป็น web application
    จะต้องมี http request วิ่งเข้าสู่ระบบหมดทุกขั้นตอนเลยใช่ไหม ?
  2. ใน functional requirements มันจะต้องเขียน 1 ข้อ คือ 1 ขั้นตอนการทำงานหรือปล่าว
    เขียนรวมกันได้ไหม ?
  3. ใน functional requirements ถ้ามันมีหลายกรณี ต้องเขียนแยกข้อหรือปล่าว ?
  4. เราควรจะมอง flow การทำงานคร่าวๆ แล้วคิดระบบคร่าวๆ(แบบที่นั่งคิด ณ ตอนนี้) ร่าง DFD ง่ายๆ แล้วค่อยเขียน Requirements ต่างๆ อย่างนี้น่าจะชัดเจนและเข้าใจง่ายกว่าทำตามขั้นตอน มั๊ง ?
  5. ใน DFD ถ้ามีระบบ authen มันจะต้องเขียนอย่างไรหว่า
    input user/password เข้า process:authen แล้ว process:authen ก็ไปตรวจสอบที่ db:user และ db:permission ซึ่ง process:authen จะถูกยิงมาจาก process อื่นๆและส่ง response กลับไป process อื่นๆทุกครั้ง ตัว user ก็ต้องส่ง authen cookie หรือ session ไปที่ process อื่นๆทุกครั้ง อย่างนี้ป่ะ ?

เราดันเลือกทำข้อ 2 ทั้งๆที่ข้อแรกมีรายละเอียดน้อยกว่ามาก
หลังสอบวันพฤหัสหน้าค่อยมาลองทำอีกสักรอบ

Advertisements

สร้าง Web application ด้วย Yeoman

Image

Yeoman (yeoman.io)

เป็นเครื่องมือที่ใช้สำหรับ build environment สำหรับการทำ web application
โดยเฉพาะการทำด้วย backbone เราไม่จำเป็นต้องไปโหลด library ต่างๆนาๆมาไว้ที่เครื่อง เราแค่พิมพิ์คำสั่งผ่าน cmd แล้ว yeoman ก็ไปโหลดมาให้เรา

นอกจากนั้นมันยังมีเครื่องมือที่ใช้รัน server (ผมชอบมาก) ของตัวมันเอง
เวลาจะทำงานประเภท PSD to HTML จะเหมาะมาก เพราะ server ของ yeoman มันจะดักว่าไฟล์อะไรบ้างที่มีการอัพเดท
แล้วมันก็จะอัพเดทหน้าตาของ web โดยที่เราไม่ต้องมาเสียเวลา reload หน้าเอง เห็นความเปลี่ยนแปลงทันที เหมือนใน dreamwaver แต่ไวกว่า และเป็น browser จริง!

Installation

ใน MAX OSX และ Linux เป็นเรื่องที่ง่ายมาก แค่พิมพิ์คำสั่ง

$ curl -L get.yeoman.io | bash

เสร็จ

ใน windows เป็นอะไรที่เยอะกว่านั้น และสามารถทำได้หลายวิธี

1. ติดตั้งด้วย Chocolatey (http://chocolatey.org/) ตัวนี้เด็ดมาก มันเป็น cmd tool เหมือน apt-get ใน ubuntu คงต้องไปศึกษาแล้วเอามาเขียนลง blog อีกสักรอบ

พิมพิ์คำสั่งดังนี้

C:> @powershell -NoProfile -ExecutionPolicy unrestricted -Command “iex ((new-object net.webclient).DownloadString(‘http://bit.ly/psChocInstall’))” && SET PATH=%PATH%;%systemdrive%\chocolatey\bin
C:> cinst yeoman

เสร็จ

2. ลงด้วย git ซึ่งจะต้องลง
    – ruby (http://rubyinstaller.org/downloads/)
    – compass (http://compass-style.org/install/)
    – nodejs (http://nodejs.org/download/)
    – git (http://git-scm.com/)
    – PhantomJS (http://phantomjs.org/download.html อย่าลืมสร้าง path http://lh6.googleusercontent.com/-iX-vxgYN8TA/UFHn-t4iB1I/AAAAAAAAEhA/DyqsFfxREP0/s483/phantomjs-path.png)
    – Python (http://www.python.org/download/)

เมื่อติดตั้งเสร็จแล้ว ก็สามารถพิมพิ์คำสั่งได้เลย

C:> npm install yeoman

เสร็จ

First app with Yeoman

จาก cmd เราก็จะสร้างโฟลเดอร์ใหม่สำหรับ app ที่เราจะทำ

C:> cd /wamp/www/
C:> mkdir myapp
C:> cd myapp

สั่ง Yeoman ให้สร้าง web application ให้เรา

C:> yeoman init

จากนั้น Yeoman จะแสดง text wizard ให้เรากรอก input เข้าไป
ซึ่งมันจะถามประมาณว่าจะใช้ twitter bootstrap, requirejs, … ไหม

จากนั้นจะได้ folder ที่มีโครงสร้างประมาณนี้

myapp/
    app/
        images/
        scripts/
             vendor/
        styles/

จากนั้นก็สั่งให้ Yeoman สร้าง server

C:> yeoman server

เมื่อเราแก้ไขไฟล์ใน app นี้ server จะ reload ให้อัตโนมัติ

เมื่อสัปดาห์ที่แล้ว (ประมาณกลางเดือนกุมภา) เว็บไซด์ของ Yeoman ยังเป็น version เก่าอยู่
แต่ในระหว่างที่เขียนนี้ Yeoman ได้มีการปรับปรุงและขึ้น version ใหม่ของ code
ซึ่งตอนนี้จะใช้งานร่วมกับ bower (package managment) และ grunt (javascrip task เป็นตัวจัดการ server นั่นแหละ) ซึ่งจะมีคำสั่งใหม่ ที่ให้เข้าใจง่ายและทำงานได้ดีกว่าเดิม
ต้องลองไปศึกษาต่อเพิ่มเติมครับ

Ref:
– https://github.com/yeoman/yeoman/wiki/Manual-Install

weekly log 01

Street fighter !

  1. สัปดาห์นี้เป็นสัปดาห์ที่มีการบ้านเยอะมาก
  2. วันอังคารแอบไปสัมภาษณ์งานมาด้วย
    – แต่ไม่ได้คาดหวังว่าจะได้งานใหม่
    – คาดหวังว่าจะได้คำแนะนำ และแลกเปลี่ยนความคิดเห็นกับคนระดับ CEO มากกว่า
    – ซึ่งก็ได้จริงๆ
    – เค้าบอกว่าโปรแกรมเมอร์ในไทยสูงสุดก็คือ specialist
    – เงินเดือนระดับเรา ถือว่าเยอะเกินไปแล้วสำหรับ specialist
    – ถ้าอยากเยอะกว่านี้ต้องเปลี่ยนมาสาย project manager
    – specialist ก็เหมือนกับนักสู้ที่เก่งแต่ในเขตของตัวเอง แต่สู้คนอื่นไม่ได้เมื่ออยู่นอกเขต
    – project manager ต้องเป็นนักสู้ข้างนอก สู้กับ AE กับลูกค้า กูต้องชนะ กูต้องปิดโปรเจคให้ได้
    – แววตาของเราดูไม่ออกว่าจะสู้หรือปล่าว
    – และคำพูดก็ดูเหมือนจะโอนอ่อนผ่อนตามเค้าไปเสียหมด
    – เราควรจะฝึกบุคลิกภาพที่สู้คนอื่น
    – เราเป็นคนที่สู้นะ แต่ไม่ใช่การวิ่งเข้าไปตรงๆแบบนั้น
    – มองในมุมลูกค้า “ก็อยากให้เสร็จตามเวลาที่กำหนด เพราะถ้าไม่เสร็จก็จะต้องเสียเงินและเวลา”
    – มองในมุมคนที่ไปคุยกับลูกค้า “ก็อยากให้เสร็จตามเวลา เพราะถ้าไม่ตามเวลา ลูกค้าก็จะเสียเงิน และโดนลูกค้าด่า มีคนหลายต่อที่ถูกด่า”
    – มองในมุมคนทำงาน “เลื่อนได้ไหม ผมไม่อยากกลับดึก ยังงัยก็ได้เงินเดือน”
    – สุดท้ายผมว่าบริษัทนี้ไม่ผ่าน เพราะเค้าไม่ค่อยมีความ respect คนอื่นเท่าไหร่เลย
    – และผมก็ไม่อยากเสียเวลามากกว่านี้ เป้าหมายของผมคือการสร้างบริษัท ไม่ใช่การหาบริษัทใหม่
    – และผมก็อยากจะเป็น specialist ที่มีเงินเยอะ และบริษัทที่ผมสร้างก็ควรจะเป็นบริษัทที่ respect specialist ไม่งั้นประเทศเราก็ต้องใช้ opensource ของคนอื่นไปทั้งชาติ
  3. วันอังคารอีกเช่นกันที่กินเยอะมาก จนทำให้เป็นกรดไหลย้อน
  4. วันพุธตื่นมาเจ็บหน้าอกยาวไปจนถึงวันพฤหัส
  5. ไปหาหมอวันพุธตอนเช้า หมอให้มาแต่ยาเม็ด มองดูแล้วไม่มียาอะไรที่มันลดอาการเจ็บหน้าอก ณ ตอนนี้เลย
  6. ตอนบ่ายทนไม่ไหวกินยาพาราไปเม็ดนึง ก็ยังปวดอยู่และง่วงด้วย = =’
  7. วิชาอาจารย์ถาวรเรียน business cockpit
    – business cockpit ก็คือการประชุมที่ดูภาพรวมของ 1. ผลประกอบการ 2. ปัจจัยภายนอกที่มีผลกระทบกับบริษัท 3. ปัจจัยภายในที่เกิดขึ้น
    – ในการประชุมจะพูดถึงเรื่อง ปัญหาที่เกิดขึ้น แน้วโน้มต่างๆ การแก้ไขปัญหา
    – zodio ก็น่าจะเป็นปัญหาเช่นกัน ผมคิดว่ามันน่าจะมีมุมแดง
    – คนคิด business cockpit เป็นหมอผ่าตัดสมองและเป็นนักขับเครื่องบิน
    – ลักษณะของกราฟที่เอามาแสดงมันเลยลอกเลียนแบบมาจากหน้าปัดเครื่องบิน (หรือ cockpit) และลักษณะการแสดงกราฟนั้นดูน่าตื่นตาตื่นใจ เพราะเค้าเอาทฤศฏีการรับรู้ของสมงอต่อสิ่งเร้ามาใช้
    – ชอบไอเดียของคนคิดจริงๆ ที่ผสมผสานกันระหว่างสิ่งที่ชอบกับ thesis
    – ราคาแพงมากสำหรับไอเดีย รวม software แล้วคือเงิน 4 ล้านบาท (ในสิบปีที่แล้ว)
    – น่าจะเป็น oracle ที่ซื้อ business cockpit ไป (ตาหมอรวยไปมากมายหลังจากขายไอเดีย และยังขายสิทธิบัตรให้ oracle อีก)
    – นี่คือตัวอย่างของ thesis ที่เอามาขายทำเงินได้มหาศาล (ทั้งๆที่เป็นแค่แนวคิดเท่านั้น)
  8. วิชา Database ทำ present
    – ได้เต็ม แบบ งงๆ เช่นเดิม
    – แต่ก็น่าจะเป็นอย่างนั้น เพราะกลุ่มเราโฟกัสตามที่อาจารย์ระบุ แต่กลุ่มอื่นโฟกัสผิดจุดบ้าง ทำมาไม่ครบบ้าง
    – สอบบทที่ 10 11 12 13 15 และเรื่อง PLSQL เบื้องต้น
    – อาจารย์บอกข้อสอบหมดเลย รู้สึกไม่สนุกอย่างไรก็ไม่รู้
    – แต่ถ้าอาจารย์ไม่บอก เทอมหน้าเด็กก็จะน้อยไปกว่านี้อีก เงินเข้าคณะทั้งนั้น
    – จำได้ว่าอาจารย์เคยบอกว่า ป.ตรี เป็นการลงทุนที่ขาดทุน แต่ก็ต้องทำเพราะทำเพื่อสังคม ป.ตรีภาคพิเศษ อันนี้เก็บเงินๆ ป.เอก ขาดทุนเป็นสิบๆเท่าของป.ตรี แต่ต้องเปิดเพื่อเอาหน้าว่าเราก็สามารถมีป.เอกได้นะ ป.โท อันนี้ก็เก็บเงิน
  9. ต้อง redesign/rebuild เว็บไซด์ของคณะใหม่
  10. เราจะไม่ทำตามที่อาจารย์สอน (ไปเก็บ requirement) เพราะว่านี่เป็น lab ของเรา เราจะทำตามเทคโนโลยีที่เราสนใจในตอนนี้ 😀
  11. เราต้องพยายามมากกว่านี้ ในการเข้ากับสังคม เพื่อที่ว่าเราจะเป็นนักสู้ไปลุยกับคนอื่นได้