You are on page 1of 24

YP: Improving Developer Experience

nat.peterson@workday.com
Safe Harbor Statement

This presentation may contain forward-looking statements for which there are risks, uncertainties, and
assumptions. If the risks materialize or assumptions prove incorrect, Workday’s business results and directions
could differ materially from results implied by the forward-looking statements. Forward-looking statements
include any statements regarding strategies or plans for future operations; any statements concerning new
features, enhancements or upgrades to our existing applications or plans for future applications; and any
statements of belief. Further information on risks that could affect Workday’s results is included in our filings with
the Securities and Exchange Commission which are available on the Workday investor relations
webpage: www.workday.com/company/investor_relations.php

Workday assumes no obligation for and does not intend to update any forward-looking statements. Any
unreleased services, features, functionality or enhancements referenced in any Workday document, roadmap,
blog, our website, press release or public statement that are not currently available are subject to change at
Workday’s discretion and may not be delivered as planned or at all. 

Customers who purchase Workday, Inc. services should make their purchase decisions upon services, features,
and functions that are currently available.
Workday

● Established 2005
● Provides business apps:
● Human Capital Management, Payroll,
● Financial Management, Analytics,
● Student, Learning, Recruiting …
● SaaS, in the cloud
● multi-tenant-per server
● Lots of satisfied customers
● Airbnb, Adobe, Amazon, Siemens, Wal-Mart
● Running their business through the Workday UI
○ Workday-UI-for-Customers.mp4
https://youtu.be/_BGWVSt7SbQ
Applications Development

● Workday has hundreds of applications developers


● Defining business logic as metadata
● Customers define:
● Workers, Organizations, Compensation Plans, …
● Developers define:
● Classes, Methods, Tasks & Pages, …
● With XpressO, a language built upon itself
● “Steve Morgan” is an instance of the Worker class.
● The “Worker” class is an instance of the “Class” class.
● Developing through the same Workday UI
● Workday-UI-for-Developers.mp4
https://youtu.be/A7qRs8RdlH0
What is XpressO? (XO)

● Collection of DSLs to define applications


● Editable through web forms, mostly
● Like this “GRA - Get Referenced Attribute Method”
The Applications Development Experience

● Long ago: Develop together in “master” server


● Get “master” to a stable state
● Snapshot “master” for customers
● Today: Develop in virtual servers, called “SUVs”
● Create and test a patch, in another SUV
● Merge patch to “master”
● Snapshot for customers
● No version control…
● Except a new patch repository
● Learn XpressO in a 6-week “boot camp”
● Lots of room for improvement here
What is YP?

● YP is after XO
YP Runtime

● YP is after XO
● Runtime for XpressO
○ (and XpressO alternatives)
YP Language

● YP is after XO
● Runtime for XpressO (and XpressO alternatives)
● Language: YP as XpressO’s new form
YP-IDE

● YP is after XO
● Runtime for XpressO (and XpressO alternatives)
● Language: YP as XpressO’s new form
● Developer Experience: YP-IDE (tYPe) + VCS, CI, etc.
YP-IDE, powered by MPS

● MPS + Itemis extensions + Workday extensions:


● Like: “SUV Manager”
● Import XpressO classes and methods
● Intentions to integrate XO<->YP
● YP unit tests of XpressO code
● Execution trace, REPL
● Let’s have a look:
● YP-IDE-for-Devs.mp4
https://youtu.be/nkRRZin7FTM
Hooray, it works!

● Easy: Defining the languages


● Avoid “design by committee”
● Runtime for XpressO is “almost correct”
● YP runtime is not yet production
● Adding chaos to unsorted sets
● And roll it out cautiously
Hooray, it works!

● Easy: Defining the languages


● Avoid “design by committee”
● Runtime for XpressO is “almost correct”
● YP runtime is not yet production
● Adding chaos for unsorted sets
● Harder: Making the new DSLs work
● Runtime is only for (some) Read methods
● Other DLSs require new runtime
● Not generating code, but runtime objects
Hooray, it works!

● Easy: Defining the languages


● Avoid “design by committee”
● Runtime for XpressO is “almost correct”
● YP runtime is not yet production
● Adding chaos for unsorted sets
● Harder: Making the new DSLs work
● Runtime is only for (some) Read methods
● Hardest: Fitting in with existing systems and processes
● Especially when language & runtime under development
● What about YP code last changed weeks ago?
Hooray, it can work!
Status: this stuff takes a while

● Runtime is correct, mostly.


● Maybe we go live with “hybrid mode” ?
● Surface XpressO as stubs in the YP-IDE
● Unit test language to test ‘em.
● Hello YP!
● A new, improved IDE
● … to write unit tests.
● … of XpressO read logic.
Workday Cloud Platform (WCP)

● External Developers use the YP-IDE


● Platform-as-a-Service
● To build and sell applications
● Long-term target: YP
as the common platform
● Internal and external development
the same way
● Short-term target: YP-IDE
for Class Structure
YP-IDE Roadmap

● First: Unit Tests (internal), Class Structure (external)


● Under development: YP “Minimum Viable Product”
○ YP Functions
○ YP Update logic,
by YP-Munich folks
YP-IDE Roadmap

● First: Unit Tests (internal), Class Structure (external)


● Under development: YP “Minimum Viable Product”
○ YP Functions
○ YP Update logic, by YP-Munich folks
○ Unit tests for XO updates
○ Services & APIs & REST
○ UI - Pages & Tasks
YP-IDE Roadmap

● First: Unit Tests (internal), Class Structure (external)


● Under development: YP “Minimum Viable Product”
○ YP Functions
○ YP Update logic, by YP-Munich folks
○ Unit tests for XO updates
○ Services & APIs & REST
○ UI - Pages & Tasks
○ Continuous Integration
○ Developer experience coding XO+YP together
○ MPS helps; still plenty to do
○ Excited for the future of AppsDev at Workday
TM

Further Questions?

You might also like