Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Product Management Tips for In-house tools

Product Management Tips for In-house tools

53850955f15249a1a9dc49df6113e400?s=128

LINE Developers
PRO

January 07, 2021
Tweet

Transcript

  1. ҏ౻ ޺޾ -*/&גࣜձࣾ ࣾ಺πʔϧʹ͓͚Δ ϓϩμΫτ Ϛωδϝϯτͷצॴ

  2. ౰ηογϣϯͰ͓࿩͍ͨ͜͠ͱ  ։ൃऀ͕։ൃऀ޲͚ʹ πʔϧɾαʔϏεɾ ϓϥοτϑΥʔϜΛ ఏڙ͢Δ͜ͱͰ ؕΓ͕ͪͳ՝୊ͱղܾࡦ

  3. ౰ηογϣϯͰ͓࿩͍ͨ͜͠ͱ  ։ൃऀ͕։ൃऀ޲͚ʹ πʔϧɾαʔϏεɾ ϓϥοτϑΥʔϜΛ ఏڙ͢Δ͜ͱͰ ؕΓ͕ͪͳ՝୊ͱղܾࡦ ϓϩμΫτϚωδϝϯτͷ ؍఺͔Β զʑͷݱ৔Ͱͷ

    ܦݧɾࣦഊஊΛ΋ͱʹ
  4. ࢲͨͪͷνʔϜͱϓϩμΫτ  -*/&ͷ4&5ͱͯ͠ ࣾ಺։ൃऀ޲͚ʹ πʔϧΛఏҊɾ։ൃɾӡ༻

  5.  4FCBT  ϚΠΫϩαʔϏεͷো֐ݪҼಛఆπʔϧ &&ςετΛ࣮ߦ͠ɺ ໰୊͕͋ΔՕॴΛ ;JQLJOͰݟ͑ΔԽ

  6. ύϑΥʔϚϯεςετ༻ϓϥοτϑΥʔϜ  "ZBQFSG  @Test public void xxx() { final

    long startTime = System.currentTimeMillis(); try { get("http://localhost:8080/index.html") .then() .statusCode(200); Report.recordSuccess( System.currentTimeMillis() - startTime, 1); } catch (Exception e) { Report.recordFailure( System.currentTimeMillis() - startTime,"error"); } } (SBGBOBͳͲͰ ݁ՌΛදࣔ
  7.  5FTUBCMF*OGSB  ΦϯσϚϯυͰ ςετ؀ڥΛෳ੡Ͱ͖ΔαʔϏε

  8. ࢲͷ໾ׂɾ੹຿  Ϧʔμʔͱͯ͠ҎԼΛܾఆ • ୭ͷԿΛղܾ͢Δ͔ • Ͳͷॱ൪Ͱ͍ͭ·Ͱʹ࣮ݱ͢Δ͔ • ͦͷ݁Ռͱͯ͠ શࣾతʹͲͷΑ͏ͳՁ஋Λఏڙ͢Δ͔

    ˠ1E.΋࣮࣭݉೚
  9. ͳͥࣾ಺πʔϧͷ1E.ʁ  ʰ5FDIOPMPHZ3BEBSʱ • ϓϩμΫτϚωδϝϯτͷ ஌ݟɾํ๏࿦Λࣾ಺πʔϧ܈ʹ ద༻͢ΔτϨϯυ͕ੈքతʹ֦େ • ҰํͰɺࣾ಺πʔϧ܈ͳΒͰ͸ͷ ஌ݟɾํ๏࿦͸·ͩ·ͩෆ଍

    5IPVHIU8PSLTࣾͷ ൒೥͓͖ͷ ۀքτϨϯυϨϙʔτ
  10. ஌ݟΛ੔ཧ͠ ൃ৴͢Δ άϩʔόϧͳ νϟϯεͰ͸ʂʁ

  11. ஫ه  ʮϢʔβʯͱʮεςʔΫϗϧμʔʯ͸ ԼهͷΑ͏ʹ۠ผͯ͠ѻ͍·͢ Ϣʔβ ։ൃऀͳͲ ϓϩμΫτΛ ࣮ࡍʹ࢖ͬͯ͘ΕΔਓ εςʔΫϗϧμʔ ໾һ΍্௕ͳͲ

    ϓϩμΫτ։ൃΛ ࢧԉͯ͘͠ΕΔਓ
  12. ΞδΣϯμ  ࣾ಺πʔϧΏ͑ʹؕΓ͕ͪͳ՝୊ ஌ݟɿࣾ಺πʔϧͰ΋Ϣʔβத৺ ஌ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ஌ݟɿϓϩϞʔγϣϯ ·ͱΊ

  13.  ࣾ಺πʔϧΏ͑ʹؕΓ͕ͪͳ՝୊ ஌ݟɿࣾ಺πʔϧͰ΋Ϣʔβத৺ ஌ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ஌ݟɿϓϩϞʔγϣϯ ·ͱΊ

  14. ͜ͷষͷϙΠϯτ  <՝୊ઃఆ> ࢲ͕ͨͪ ࣮ࡍʹؕͬͨ՝୊ͱ ؍ଌͨ͠ʮෆ٢ͳ೏͍ʯ

  15. ࣾ಺πʔϧͷલఏ  • ։ൃऀͷΈͰνʔϜฤ੒ • ϓϩμΫτϚωʔδϟʔ ͸ʮ·ͣʯ͍ͳ͍ • ϓϩμΫτϚωδϝϯτ Λ஌͍ͬͯΔਓ͸গͳ͍

  16.  ։ൃʂ։ൃʂ։ൃʂ  ؾ͕ͭ͘ͱ։ൃʹूத • Ϣʔβχʔζ͕໌֬Ͱͳ͍ͷʹ ։ൃλεΫͰຒ·ΔλεΫϘʔυ • ϦϦʔεΑΓ΋ϦϑΝΫλϦϯά •

    ंྠͷ࠶ൃ໌Λ΍Γ͕ͪ
  17.  ։ൃʂ։ൃʂ։ൃʂ  ։ൃʹڧ͍ؔ৺ͷ͋Δϝϯόʔ͚ͩͰ ϓϩμΫτ։ൃΛ͢Δͱʜ 7BMVBCMF 6TBCMF 'FBTJCMF ࣗ෼ͨͪͷٕज़తʹ ࣗ෼ͨͪʹͱͬͯ

    ࣗ෼ͨͪͷٕज़తʹ
  18.  ࣗ෼͕ͨͪϢʔβʂ  Ϣʔβχʔζ͸શͯط஌ ͱ͍͏ࢥ͍ࠐΈ • ʮࣗ෼ͨͪʹϢʔβʯͱ͍͏ʮޡೝʯ • ϢʔβχʔζͷݕূΛ͠ͳ͍ •

    ৽ػೳͳͲͷσϞ΋͠ͳ͍
  19.  ࣗ෼͕ͨͪϢʔβʂ  ຊ౰ɾຊདྷͷϢʔβ͕ ๬·ͳ͍ɾ࢖Θͳ͍΋ͷΛ࡞Γ͕ͪ 7BMVBCMF 6TBCMF 'FBTJCMF ࣗ෼ͨͪʹͱͬͯ ࣗ෼ͨͪʹͱͬͯ

    ࣗ෼ͨͪʹͱͬͯ
  20.  ʮ'JYʯͷޡṩ  ҙࢥܾఆɾ߹ҙ͸ ෴Βͳ͍ͱ͍͏ࢥ͍ࠐΈ • ࠷ॳʹ߹ҙͰ͖ͨ΋ͷͷ ʮ࡞ΓࠐΈʯʹूத͢Δ • σϞ΍ใࠂΛޙճ͠ʹ͕ͪ͠

    • εςʔΫϗϧμʔ͸มΘΒͣ ࢧԉ͠ଓ͚ͯ͘ΕΔͱࢥ͍ࠐΉ
  21. ͭΒ͍Ͱ͢ɻ

  22. ϙΠϯτ   ٕज़తʹ༏Ε͍ͯΔ㱠ϢʔβՁ஋  ϢʔβͱεςʔΫϗϧμʔʹ ΞϯςφΛுΔ͜ͱ͸ඞਢ  ϓϩμΫτϚωδϝϯτͷߟ͑ํ͸ ඞཁ͔ͭ༗ޮ

  23. 思い込みから 一歩離れてみよう

  24. ղܾํ਑  ։ൃʂ։ൃʂ։ൃʂ ࣗ෼͕ͨͪϢʔβʂ ʮ'JYʯͷޡṩ ࣾ಺πʔϧͰ΋ Ϣʔβத৺ εςʔΫϗϧμʔΛ ૄ͔ʹ͠ͳ͍ ϓϩϞʔγϣϯ

  25.  ࣾ಺πʔϧΏ͑ʹؕΓ͕ͪͳ՝୊ ஌ݟɿࣾ಺πʔϧͰ΋Ϣʔβத৺ ஌ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ஌ݟɿϓϩϞʔγϣϯ ·ͱΊ

  26. ͜ͷষͷϙΠϯτ  • ຊ౰ͷϢʔβΛ஌Δ • Ϣʔβχʔζͱ޲͖߹͏ • ͦΕͰ΋ࣗ෼͕ࢼ͍ͨ͠ ͜ͱ͕͋Δ৔߹ͷৼ෣͍

  27. ຊ౰ͷϢʔβΛ஌Δ  ࣗ෼ͨͪ͸ Ϣʔβ୅දͰ͸ͳ͍ • ࣗ෼͕ͨͪ΍Γ͍ͨ͜ͱΛΰϦԡ͢ ཧ༝ʹͯ͠͸͍͚ͳ͍ʢռΊʣ • ໘౗͕ΒͣɺϢʔβʹ࿩Λฉ͘ •

    ͜ΕΒΛҙࣝ͢Δ͚ͩͰ΋݁ߏมΘΔ
  28. Ϣʔβχʔζͱ޲͖߹͏  ௚઀࿩Λ͢Δͷ͕Ұ൪ • ΠϯλϏϡʔɾςετɾσϞΛ ఆظԽɾ࢓૊Խ͢Δ • ৽ػೳͷσϞͰϢʔβͷؔ৺ΛߴΊΔ • ݴΘΕͨ΋ͷ͚ͩΛ࡞Δଶ౓͸ආ͚Δ

  29. 8IZT  ͳͥ࡞Γ͍ͨͷ͔ʁ • Ϣʔβͷ՝୊Λղܾ͍ͨ͠ͷ͔ʁ • ࣗ෼͕ࢼͯ͠Έ͍ͨ͜ͱ͕͋Δͷ͔ʁ • ྆ऀΛͭͳ͛ΒΕͳ͍͔ʁ ˠ8JOXJOʹͰ͖ΔͳΒ͹ͭͳ͛Α͏

  30. ʢࣄྫʣϏϧυ݁Ռͷ௨஌ํ๏ 

  31. ʢࣄྫʣϏϧυ݁Ռͷ௨஌ํ๏  4&5νʔϜͰ͸ɺ 4MBDLͰͷ௨஌͕ Ұൠత

  32. ʢࣄྫʣϏϧυ݁Ռͷ௨஌ํ๏  Ϣʔβ͔Β͋Δ೔ɺ (JU)VCͷ13ը໘Ͱ ௨஌ͯ͠ͱཁ๬͕

  33. ʢࣄྫʣϏϧυ݁Ռͷ௨஌ํ๏  ҰՕॴͰશ෦ݟ͍ͨ τϨϯυ͕ શࣾతʹग़͖͍ͯͯͨ

  34. ·ͱΊ  • ਅ伨ʹϢʔβϑΝʔετ • ݴ͍ͳΓ͸ආ͚Δ • ࣗ෼͕΍Γ͍ͨ͜ͱͱ Ϣʔβͷ՝୊ղܾͱΛ ϦϯΫͤ͞Δ͜ͱ͸ΞϦ

  35.  ࣾ಺πʔϧΏ͑ʹؕΓ͕ͪͳ՝୊ ஌ݟɿࣾ಺πʔϧͰ΋Ϣʔβத৺ ஌ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ஌ݟɿϓϩϞʔγϣϯ ·ͱΊ

  36. ͜ͷষͷϙΠϯτ  εςʔΫϗϧμʔͷ ࢧ࣋ɾڠྗͷऔΓ෇͚ͷ ඞཁੑͱͦͷํ๏

  37. ڵຯɾؔ৺͸ࣦΘΕಘΔ  ཁ݅΍࢓༷͸ෆมͰ͔͢ʁ • Ұ౓ͷ߹ҙͰຬ଍ͯ͠͸ʢΞΧϯʣ • ڵຯɾؔ৺͸ৗʹมΘΔ • ۀ຿ͷ༏ઌ౓ͱಉ͡ ˠৗʹڵຯɾؔ৺ΛҾ͘࢓૊Έ͕ඞཁ

  38. ఆظతͳσϞ  ಈ͘΋ͷͷΠϯύΫτΛϑϧ׆༻͢Δ ։ൃऀ͔ͩΒͦ͜ͷ ڧΈΛ׆͔ͦ͏ʂ

  39. ʮ஍ਤʯͷఆظతͳڞ༗ɾߋ৽  ݱ࣌఺ͷΰʔϧͱͦͷಓےΛݟͤΔ

  40. શͯͷཁٻʹԠ͑ͯ΋μϝ  /PDPEFNPOLFZ • Ϧιʔε͸༗ݶ • ݱঢ়࣮ݱՄೳͳ͜ͱΛઆ໌͢Δ͜ͱ͸ ϓϩͷৼΔ෣͍ • ༏ઌॱҐ͸੹೚Λ͚࣋ͬͯͭΔ

    • ͋͘·Ͱύʔτφʔͱͯ͠ৼΔ෣͏
  41. ࣾ಺πʔϧͷσϞಈըΛ ϥϯνͷ৔Ͱ໾һʹ঺հ ˣ ͦͷ໾һ͕ଞͷ໾һʹσϞಈըΛڞ༗ ˣ ࢲͨͪͷ஌Βͳ͍͏ͪʹ ࣾ಺πʔϧͷར༻ऀ͕૿͍͑ͯͨʢʂʣ ʢࣄྫʣσϞಈըΛ࡞ͬͯΈͨ 

  42. ·ͱΊ  • ڵຯɾؔ৺ΛҾ͘͜ͱ ཱ೿ͳ࢓ࣄ • ܾఆΛෆมͱ͸ ࢥ͍ࠐ·ͳ͍ • ݴ͍ͳΓ͸ආ͚Δ

  43.  ࣾ಺πʔϧΏ͑ʹؕΓ͕ͪͳ՝୊ ஌ݟɿࣾ಺πʔϧͰ΋Ϣʔβத৺ ஌ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ஌ݟɿϓϩϞʔγϣϯ ·ͱΊ

  44. ͜ͷষͷϙΠϯτ  1SPEVDU.BSLFUJOH • ૝ఆϢʔβ͕ࣾ಺։ൃऀ Ͱ͋ͬͯ΋ඞཁ • ͨͩ͠޻෉΋ඞཁ

  45. ৘ใ͸Φʔϓϯ͔ͭͭ͘͜͠  • ڵຯɾؔ৺Λשى͠ଓ͚Δ • ఆظతͳσϞ • ʮ஍ਤʯͷఆظతͳڞ༗ɾߋ৽ • ৘ใ͸ৗʹΞΫηεͰ͖ΔΑ͏ʹ͢Δ

    • ςϨϏ$.͘Β͍ͭ͘͜͠ • ࣗવͱݴ༿Λ͍ͭͯग़Δ·Ͱ
  46. ςΩετͱσϞͷ྆࣠Ͱ  ͲͪΒ΋΍Δʂ

  47. νϟϯωϧΛ૿΍͢  • ͚ͭͩͰ͸໨ʹ͔ͭͳ͍ • ࢹքʹೖΓࠐΜͰ ೝ஌·Ͱ͍࣋ͬͯ͘ • λʔήοτ͕޷Ή νϟϯωϧΛૂ͓͏

  48. ࢲͷൃ৴ͷ৔͕ΞδϟΠϧܥʹภΓ͕ͪ ˣ ,VCFSOFUFTɾ2"ܥίϛϡχςΟʹ ൃ৴৔ॴΛ֦େ ˣ 5XJUUFSܦ༝Ͱ ࣾһ͔ΒίϯλΫτΛड͚ͨʢʂʣ ʢࣄྫʣൃ৴৔ॴͷݟ௚͠ 

  49. ·ͱΊ  • ࣾ಺πʔϧͰ΋ ϓϩϞʔγϣϯ͸ඞਢ • Ϛϧννϟϯωϧ • ೝ஌ͤ͞Δ·Ͱଓ͚Δ

  50.  ࣾ಺πʔϧΏ͑ʹؕΓ͕ͪͳ՝୊ ஌ݟɿࣾ಺πʔϧͰ΋Ϣʔβத৺ ஌ݟɿεςʔΫϗϧμʔΛૄ͔ʹ͠ͳ͍ ஌ݟɿϓϩϞʔγϣϯ ·ͱΊ

  51. ߦಈࢦ਑ͷTXJUDI  ։ൃऀ໨ઢ͔Β ϓϩμΫτϚωδϝϯτ΁ • ผͷࢹ఺Λ୯७ʹ஌Βͳ͍͚͔ͩ΋ • ڭ͑Ε͹ɺΩνϯͱ׆༻ͯ͘͠ΕΔ • ίʔν͸ɺ͍ͨํ͕ྑ͍

  52. ։ൃऀͷϝϦοτΛ׆͔͢  • ࣮ࡍʹ࡞ͬͯࢼͤΔ • ΑΓݱ࣮తͳϞϊͰ σϞͰ͖Δ • ϝϦοτʹ஫ྗͯ͠ ؾ࣋ͪΑ͘ͳΓ͗͢ͳ͍

  53. %FW0QTͰଉਧΛਧ͖ࠐΉ  ࢓૊ΈΛ࠷ॳʹ࡞Ζ͏ • ϢʔβςετΛ͠΍͘͢ͳΔ • ݕূΛܧଓతʹߦ͍΍͘͢ͳΔ • 1JWPUΛؾ݉Ͷͳ͘Ͱ͖Δ 1E.º

    %FW0QT808
  54. ʮࣗݾ࣮ݱʯ͸Մೳ  ࣗ෼͕΍Γ͍ͨ͜ͱͱ Ϣʔβͷ՝୊ղܾͱΛ ϦϯΫͤ͞Δࢹ఺ͱߦಈ͸ ͋ͬͯ΋ྑ͍

  55. 1E.ʹର͢Δ։ൃऀͷٙ೦  ίʔυͷ೏͍͕ ͠ͳ͍ ʢ৴༻Ͱ͖ͳ͍ʣ

  56. ྆ํͱ΋ඞཁ  ϓϩμΫτ Ϛωδϝϯτ º ΤϯδχΞϦϯά

  57. Ѫ͞ΕΔ %FW&YΛ ໨ࢦ͠ଓ͚Α͏