speaking apish makes your business more agile

23
WHY EVERYONE SPEAKING “APISH” MAKES YOUR WHOLE BUSINESS MORE AGILE? By Marjukka Niinioja and all the great characters at PlanMill Oy Homo Apitus

Upload: marjukka-niinioja

Post on 02-Jul-2015

129 views

Category:

Documents


1 download

DESCRIPTION

How we have developed our API using RAML, JSON and agile methods. How API helps business people and developers speak same language.

TRANSCRIPT

Page 1: Speaking APIsh makes your business more agile

WHY EVERYONE SPEAKING “APISH” MAKES YOUR WHOLE BUSINESS MORE AGILE?By Marjukka Niinioja and all the great characters at PlanMill Oy

Homo Apitus

Page 2: Speaking APIsh makes your business more agile

ABOUT ME

Marjukka Niinioja @Mniinioja

Senior Consultant & Manager

PlanMill Oy @PlanMill

www.planmill.com

Working with software

development and integrations

since 2000

Work experience from

government, adult education

and private sector.

Master of Education, minoring

in Leadership and Computer

Science.

Check out our API at:

http://api-portal.anypoint.mulesoft.com/planmill/api/planmill-rest-api-15

Read about why we chose RAML http://apisuomi.fi/2014/10/rest-raml/

Page 3: Speaking APIsh makes your business more agile

PLANMILL IS A WEB BASED ERP, PROJECT AND CRM SOFTWARECustomizable, Cloud, On-premise – been used since 2001 by 100+ customers in Finland, Europe and overseas

Page 4: Speaking APIsh makes your business more agile

25+

COUNTRIES

100+

CUSTOMERS

20 000+

USERS

13

YRS IN BUSINESS

25

SKILLED EXPERTS

2 000+

NET SALES (T€)

PLANMILL TODAY

EXPENSES REQUESTS

SALES PROJECTS TIME

FINANCES

Our customers are the future makers and shakers. They are leading the way in

their fields of expertise pushing the boundaries into new levels.

Connected to PlanMill

Page 5: Speaking APIsh makes your business more agile

In-house system”Nokia Planner”

Commercial project

management software

MS SQL Server based version

1988 1992

First Lotus Domino database

connector in theworld with IBM

1998

TIME FLIES WHEN YOUDEVELOP ARCHITECTURE

1999

Java appletbased userinterfaces

First WAP-basedtime trackingsystem in the

world co-developped with

Nokia

Java + XML & XSLT

20062004

From projectmanagement to

PSA

2010

Open API 1.0

Mobile touch

interface

Expanding fromOn-premise to

Cloud

2009

Atlassian Confluence plugin

with Ambientiausing the API

20112014

Open API 1.5

ERP integraitngwith lots of trad. Web services

Page 6: Speaking APIsh makes your business more agile

2009 – API 1.0 : ”THE ACCIDENTALAPI DEVELOPER REACHESTODDLER AGE AND LEARNS HOWTO WALK”

First 12 months

Devs havean idea

Consultants startspeaking about it

to customers

API is born

API?? What is that??

Very quietlaunch

”Productization”: Testenvironment, API key request

form, usable dev documentation, some idea of pricing

First real use casesby customers

around projects and time reporting

Amount of employees ”on the know”

First big API usingapplication project

sold, massiveimprovements to API

as result

First partnership case (Atlassian Confluencewith Ambientia) made

possible by API

API as majorselling pointcompared to competitors

”Learning by supporting” ”Learning by coding and co-coding”

http://www.slideshare.net/MarjukkaNiinioja/accidental-api-developer-the-12-month-period-from-birth-to-toddler-and-beyond

Page 7: Speaking APIsh makes your business more agile

Towards the new API powered ecosystem

2014: NEW IMPROVED PROCESSTOWARDS THE API 2.0

Research projectCustomer & Partner

needs and insights

Piloting technologies and

preliminary services of

API by parallel

developing client

software

Demos, knowlegde

sharing and discussions

with whole company

Architecture vs. strategy –

what services, how to

maintain, how to

monetize

Internal betaTeach with the beta

through real projects

Public beta + developer

community

Feedback from developer

communityPublish 1.5

Eat our own dogfood with

your own client using API

Page 8: Speaking APIsh makes your business more agile

WHAT LANGUAGES DO YOU SPEAK?

Finnish Icelandic

Swedish Czech

Danish Java

Norwegian Python

English C++

German Pascal

French JSON

Estonian XML

Greek XHTML

Page 9: Speaking APIsh makes your business more agile

BUT ARE WE REALLY TALKING ABOUT THE SAME THING?

System A

Customer

Company

Person

Decision maker

Lead

Deal

Sales project

System B

/accounts

/contacts/opportunit

ies

Page 10: Speaking APIsh makes your business more agile

“As a project manager I want to

create new projects”

public static createProject(name,st

art)…

CONNECT /TEAMS?VIA=API

POST /projects {name: “My first project”,Start: “2014-01-01T00:00:00Z}

Page 11: Speaking APIsh makes your business more agile

EVEN A MONKEY COULD INTEGRATE 2 SYSTEMS GIVEN ENOUGH TIME…Old way with integration specific file formats took minimum of 40-60 hours per integration:

• 2 workshops with 10 people• 10-20 emails guessing what customer

and integration partner actually want to transfer

• 5 hours of guessing formats• 10 hours of guessing what the fields

mean• 15 hours of debugging when you

finally get to test• 20+ hours of figuring out what random

undocumented error messages mean after integration went to production

The infinite monkey theorem states that a monkey hitting keys at random on a typewriter keyboard for an infinite amount of time will almost surely type a given text, such as the complete works of William Shakespeare.Source: http://en.wikipedia.org/wiki/Infinite_monkey_theorem

Page 12: Speaking APIsh makes your business more agile

GET /CUSTOMERSGET /PARTNERS

Renewing our system API

first has given as an

opportunity to use our

customers as our “co-

developers”.

They are building apps

for themselves and

sharing ideas and

helping us to get ideas

what we should

incorporate in our

product.

Typical bigger API-based integration project takes 2-10 hours of our or customer’s time

Page 13: Speaking APIsh makes your business more agile

API CHANGED THE WAY WEWORK

TRAD: ”I’m selling an application – look how I demo byclicking the UI”

API: ”I’m selling a application with API – look how quicklyI can get some data out or develop this app”

TRAD: ”Customer was asking for help using the system –I asked her for screen shots”

API: ”I asked the customer to send info about the API requests and responses he was trying to use”

Page 14: Speaking APIsh makes your business more agile

APES IN SPACE – ARE YOU CRAZY?

Page 15: Speaking APIsh makes your business more agile

LEARNING A NEW WAY OF THINKING…

API is something only ”techies” and only ”some API techies” should know about

API is separate from the ”actual” system

New features and changes can beimplemented without everthinking of API

API is going to be used so littlethat we don’t need to think abouttraffic limits or pricing models

Using API to automate testing of the system is difficult

API doesn’t need userdocumentation

It’s ok to expose our internaldata model ”as is” to outside world

All users of the same API in thesame instance can see all data

”Open information” vs. ”Restricted information” in a business application – all data should be accessed by any API user

API is only going to be used by”outsiders”

Page 16: Speaking APIsh makes your business more agile

PRESUMPTIONS IS THE MOTHER OF ALL…

It was presumed that our

backend couldn’t

support a great new

JSON state of the art

API… and a lot of other

things…

But then we decided

together:

Let’s make our process

faster, better, bug free,

and renew our

application one step at a

time – starting with API!

Buttons as embodiment of our strategy created in our staff day in 05/2014

Page 17: Speaking APIsh makes your business more agile

POST /VISION?TYPE=SHARED

Joint understanding based on results and issues from previous sprints and hands-on research tasks helped to speed up team work.

Page 18: Speaking APIsh makes your business more agile

GET /VOCABULARY?TYPE=SAME

Discussing

Educating

Organizing and

participating in meetings

and seminars

Inviting students from

polytechnics as research

buddies and mentors

Understanding strengths

and weaknesses of our

current system and API

If people don’t understand what API is about, they won’t tell about it, sell it,

use it, develop it or support it

Page 19: Speaking APIsh makes your business more agile

GET /RESEARCH

During Spring 2014 we

created pilot application

with really new

technologies to understand

the possibilities better and

to see what we can use

along our current system.

Pilot was built using

Jackson + Hibernate +

Drools + AngularJS 1 app /

1 business module pilot to

see how to replace our Java

+ XSL + MS SQL 20 module

system.

Page 20: Speaking APIsh makes your business more agile

HARDEST PART OF CREATING A BACKLOG WAS TO ELIMINATE THE “UNKNOWN” AND TO ACCEPT THAT PLANS CAN CHANGE

Team estimated how many hours they would have

for the next 2 week sprint and created backlog

items and estimated them roughly. New API was

developed in 6 2-week sprints.

Page 21: Speaking APIsh makes your business more agile

WHY WE CHOSE RAML AS JOINT SPECIFICATION

RAML is a new standard for writing API specifications. It has a documented syntax and lot’s of good tools. It helped our team, to speak the same “language” in designing the API endpoints, error messages and content. It was understandable by both UI and backend teams.

Read about why we chose RAML: http://apisuomi.fi/2014/10/rest-raml/

Page 22: Speaking APIsh makes your business more agile

AND SUDDENLY THERE WERE TESTS…

Integration tests with RESTAssured

UI tests with Thucydides and JBehave

Page 23: Speaking APIsh makes your business more agile

THANK YOU!

Marjukka Niinioja @Mniinioja

Senior Consultant & Manager

PlanMill Oy @PlanMill

www.planmill.com

Check out our API at:

http://api-

portal.anypoint.mulesoft.com/

planmill/api/planmill-rest-

api-15