51

AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

  • Upload
    mrdon

  • View
    2.014

  • Download
    0

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
Page 2: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

2

Lessons from Speakeasy

Don BrownIntegration Architect, Atlassian

Five Strategies to Accelerate Plugin Dev

Page 3: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

3

Just one year ago…

Page 4: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development
Page 5: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

6

1. Discover your plugin with Speakeasy

2. Define interactions with page objects

3. Optimize your dev loop with the SDK

4. Reuse functionality with AUI

5. Encourage feedback

Five Strategies

Page 6: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

7

1. Discover your plugin with Speakeasy

Page 7: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

8

Page 8: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

9

Validate your assumptions!

Page 9: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

10

The #1 time waster is not building the

plugin poorly, but is building the wrong

plugin

Me, channeling Eric Ries

”“

Page 10: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

11

Example: Inline CommentingAssumption Test

Users want to comment on specific lines in on a page

Look through last 100 comments, note cause and use of quotes

Users want to see number of comments on a line

Edit a few heavily commented pages and see if the linked numbers help or hurt

Slowness of commenting causing fewer comments and annoyed users

Get stats on how often people comment. Ask heavy comment authors their gripes.

Page 11: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

Social Validation

Speakeasy Prototype

Plugin

Page 12: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

13

Examine a recent plugin idea and try to

identify your assumptions and how you

might test them”“

Page 13: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

14

2. Define Interactions with Page Objects

Page 14: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

16

Selenium in 30 Seconds

Page 15: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

17

Testing is Like Diets

Page 16: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

18

Selenium the Ugly

waitForEntityRowToBeAdded();         // check entity row has been created        assertThat.textPresent("Schultz");        assertThat.textPresent("brown");        assertEquals("Delete", client.getText("link=Delete"));         // now we delete        client.click("link=Delete");        client.waitForAjaxWithJquery();        client.click("//div[@id='delete-application-link-dialog']/div[2]/div[2]/button");        client.waitForAjaxWithJquery();        client.click("//div[@id='delete-application-link-dialog']/div[2]/div[2]/button"); 

Page 17: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

19

Reminds Me of These Days:

if(request.getParameter("action") != null){  String bookname=request.getParameter("bookname"if(request.getParameter("action") != null){       String bookname=request.getParameter("bookname");      String author=request.getParameter("author");      stmt.executeUpdate("insert into books_details(book_name,author) values('"+bookname+"','"+author+"')");      rst=stmt.executeQuery("select * from books_details");      %>      <html>      <body>      <center>         <h2>Books List</h2>

Page 18: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

20

JSP Solution: Data Access Objects

Selenium Solution: Page Objects

Page 19: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

21

Boldly go where no functional test has gone before…

Page 20: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

22

This ain’t no theory. . .

Page 21: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

23

• JIRA 4.x, 5.0

• Confluence 3.x, 4.x

• Bamboo 3.3

• FishEye/Crucible, coming soon

Use Now!

Page 22: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

24

Take a look at the Atlassian page object

docs and try to write a hello world test

for your plugin”“

Page 23: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

25

3. Optimize the Dev Loop with the SDK

Page 24: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

26

All About the Gap

Gap between edit and view

Productivity

Page 25: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

27

These Are Your Enemies

Page 26: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

28

Edit -> Refresh

js/vm,hotswapchanges

Gap between edit and view

Productivity

Page 27: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

29

Edit -> ‘pi’ -> Refresh

javachanges

Gap between edit and view

Productivity

Page 28: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

30

Edit -> CTRL-C -> atlas-run

WEB-INF/libchanges

Gap between edit and view

Productivity

Page 29: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

31

Speaking of atlas-run. . .

Page 30: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

32

Run Simultaneously

Switch between productsTerminal tab per instance

Page 31: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

33

Quickly Spot Errors

In your .bashrc file

export MAVEN_COLOR=true

Page 32: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

34

Track how many times you alt-tab away

from development in a day and try to

decrease it”“

Page 33: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

35

4. Reuse UI with AUI

Page 34: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

36

A few of my favorite things

Page 35: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

37

Tabbed Panels!

Page 36: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

38

Messages!

Page 37: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

39

Dialogs!

Page 38: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

40

Play with the AUI sandbox and try out a

few components”“

Page 39: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

41

5. Make Feedback Dead Simple

Page 40: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

42

Page 41: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

43

JIRA Mobile Connect

Automated crash reportingas a JIRA issue

Message reporters directly,attached to the issue

Page 42: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

44

JIRA Issue Connector

Embeddable JavaScript to allow users to raise issues for your

plugin

Page 43: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

45

Make It Rewarding

Page 44: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

46

Add JIRA Issue Connector to as an

optional feature to your plugin for

dogfooding”“

Page 45: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

48

Page 46: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

49

But before I go. . .

Page 47: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

50

The JIRA Studio Problem

How to allow plugins without breaking Studio?

Page 48: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

54

• What if plugins ran on your server like Facebook Applications?

• What if all you had to install in JIRA Studio was a single XML descriptor file?

• What if you could write a plugin that could be deployed for JIRA Studio or custom instances without changes?

2012 Project: Remote Plugins

Page 49: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

55

• Are you interested in deploying plugins for our JIRA Studio customers?

• Would you like to use this capability for custom instances?

• Would you be interested in having early access?

Contact me: [email protected] or @mrdonbrown

Let me know. . .

Page 50: AtlasCamp 2011 - Five Strategies to Accelerate Plugin Development

Thank you!