Slide 1

Slide 1 text

Application Development Pursuit of Developer Happiness

Slide 2

Slide 2 text

About Me !   Tom Wilson !   Chief Technologist, Jack Russell Software !   A division of CareKinesis, Inc !   Building Applications and Development Teams for 15+ years

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Experience I have made more mistakes I have tried to learn from them

Slide 5

Slide 5 text

I want to create an application that is just as easy to maintain as it is to create

Slide 6

Slide 6 text

long road no silver bullet

Slide 7

Slide 7 text

Three Approaches

Slide 8

Slide 8 text

Approach 1

Slide 9

Slide 9 text

BDUF !   Review all systems in the market !   Bring users from each system to provide features !   Use new platform !   Set unreasonable goals !   Add developers as needed

Slide 10

Slide 10 text

result

Slide 11

Slide 11 text

System of Systems !   Complex difficult to !   Support !   Maintain !   Upgrade

Slide 12

Slide 12 text

Approach 2

Slide 13

Slide 13 text

Waterfall to Agile !   Started with complex Data Model !   New Web based interface !   New Dev Environment !   Small Team !   Implement and ship incrementally

Slide 14

Slide 14 text

Success! kind of

Slide 15

Slide 15 text

Results > SOA !   Complex !   easier to support !   easier to upgrade !   still hard to develop !   tightly coupled components

Slide 16

Slide 16 text

Approach 3

Slide 17

Slide 17 text

Agile to Waterfall !   Launch MVP !   Continuous Deployment !   PAAS !   Extreme Programming !   OpenSource Stack

Slide 18

Slide 18 text

Awesome

Slide 19

Slide 19 text

Too Extreme! !   Users wanted slower pace !   batch features !   more stability !   more process

Slide 20

Slide 20 text

Enter Waterfall But we still called it Agile!

Slide 21

Slide 21 text

“Afraid to admit we are Waterfall”

Slide 22

Slide 22 text

we are awesome!

Slide 23

Slide 23 text

results !   huge backlog !   easy to support !   easy to upgrade !   painful to develop

Slide 24

Slide 24 text

Lessons Learned

Slide 25

Slide 25 text

avoid configuration as much as possible

Slide 26

Slide 26 text

clearly define your features Know your user

Slide 27

Slide 27 text

App Analytics !   mixpanel !   kissmetrics !   new relic

Slide 28

Slide 28 text

Loosely Coupled

Slide 29

Slide 29 text

Events, APIs and Bots !   activity stream !   trigger tasks from activities !   Http/json

Slide 30

Slide 30 text

Think in terms of Applets and Components

Slide 31

Slide 31 text

build a collection of apps

Slide 32

Slide 32 text

Applets and Bots

Slide 33

Slide 33 text

Our New Approach !   Quarterly Goals !   2 week sprints !   javascript everywhere !   connect devs with stakeholders !   PAAS

Slide 34

Slide 34 text

2 week sprint !   2 days planning – redact stories to product team !   4 days dev !   2 days code review !   2 days qa

Slide 35

Slide 35 text

Javascript Everywhere !   AngularJS !   NodeJS !   Npm !   Browserify !   CouchDb

Slide 36

Slide 36 text

Devs should be involved from concept to completion

Slide 37

Slide 37 text

PAAS Dev should have their own personal playground to explore and share concepts

Slide 38

Slide 38 text

Prototype to Production

Slide 39

Slide 39 text

Just do it Do it Fast Do it better

Slide 40

Slide 40 text

Prototype !   Bootstrap !   AngularJs !   Firebase or PouchDb !   Collaborate RealTime

Slide 41

Slide 41 text

Early Adopter !   Sames as Prototype !   Add NoSql Backend Mongo, CouchDb !   NodeJs !   Clearly Separate Concerns !   Bots and Job Queue

Slide 42

Slide 42 text

MainStream !   convert to Applets and components !   Focus on Polish and Usability !   Product Boundaries !   Measure Everything !   Formalize Schemas {sql}

Slide 43

Slide 43 text

Dev Goals !   Design in Real-Time (if possible) !   Applets and Bots - Microservices !   Flexibility and Durability !   Javascript everywhere, until necessary

Slide 44

Slide 44 text

Thank You @twilson63