+ All Categories
Home > Internet > Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that...

Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that...

Date post: 13-Apr-2017
Category:
Upload: aboutyougmbh
View: 785 times
Download: 2 times
Share this document with a friend
50
Data-Driven Software Development - The quest for the intelligent machine that manages software projects freiheit.com technologies - Hamburg, September 29, 2015 code.talks 2015
Transcript
Page 1: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

Data-Driven Software Development -The quest for the intelligent machine that manages software projects

freiheit.com technologies - Hamburg, September 29, 2015code.talks 2015

Page 2: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 2

Thanks for coming!WHO AM I?

Me: Stefan Richter

● Dipl.-Ing. + Dipl.-Inf.

● First program: I983

● First language: UCSD Pascal

● First 15 years: Lots of C and 4GL languages

● Last 15+ years: Java (from 1.02), Python, Common Lisp, Clojure, JavaScript

● Current favorite: Go

My company: freiheit.com

● Founder: 1999

● Building large-scale Internet systems since 15+ years

● 90 % developers (degree in computer science, mathematics, physics)

● Self-organizing, self-optimizing, hierarchy-free organization

● Daimler, Tchibo, E&V, METRO, SPIEGEL, Libri, Swiss Life, 1&1/WEB.DE etc.

Page 3: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com GOTO Conference Copenhagen, 2011 3

!

Page 4: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

DATA-DRIVEN SOFTWARE DEVELOPMENT

THE QUEST FOR THE INTELLIGENT MACHINE THAT MANAGES SOFTWARE PROJECTS

Page 5: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

Since 2003, we have been experimenting with systems that support developers in their decision making.

5© freiheit.com

HISTORY: MAKE PROJECT MANAGEMENT MORE INTELLIGENT

Page 6: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

TODAY I WANT TO SHOW YOU

HOW WE HAVE BUILT AN INTELLIGENT AGENT TO HELP US RUN OUR SOFTWARE PROJECTS

Page 7: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 7

Page 8: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 8

Page 9: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

BUT WE ARE AGILE!WE DON’T NEED PROJECT MANAGEMENT!

Page 10: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

WHY IS BUILDING SOFTWARE IN LARGER TEAMS STILL DIFFICULT?

Page 11: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

Too many steps, artefacts, roles.Lot’s of communications needed.

11

WATERFALL PROCESS

Page 12: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

I think you have seen the short-cut, too ...

12© freiheit.com

AGILE PROCESSES

Product Owner

Value? Code!SoftwareStories

Developer Conclusion: It is not enough to implement the Scrum method. You need to change the whole way how an organization works.

Page 13: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

If structures are getting larger and complicated, things become less easy ...

13© freiheit.com

LARGER ORGANIZATION, LARGER TEAMS

Product Owner Developer

Developer

Larger OrganizationSmall Team Larger Team

n x (n-1)5 x 4 = 20

Com

mun

icai

ton Com

municaiton

Manager

Manager

Page 14: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

WE NEED TO GET

THE RIGHT INFORMATIONTO THE RIGHT PEOPLEAT THE RIGHT TIME

Page 15: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 15

Every project looks like this: You have to deliver the highest value to the lowest costs.TIME VS. VALUE

Capacity (highest value to the lowest costs)

Time = Money

Deve

lope

rs

Start Today End

Past

Growth

Future

Shrinks

Page 16: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

Given the same quality, faster is always better.

Power = Force x DistanceTime

NOT

Force x Distance x Time

No matter if you measure in points or ideal days!

16© freiheit.com

FASTER IS BETTER: ABOUT MEASURING TIME AND PROGRESS

Page 17: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

PROJECT MANAGEMENT

ARE WE ON TRACK?IS THERE ANYTHING SLOWING US DOWN?

Page 18: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

“ADVENTURE IS JUST BAD PLANNING.”

- ROALD AMUNDSEN (First to reach the south pole on 14 December 1911)

Page 19: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

A PLAN IS AN ASSUMPTION ...

Page 20: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

… AND PLANNING IS TO CHECK YOUR ASSUMP-TIONS AND ADAPT THEM EVERY DAY BASED ON YOUR PROGRESS.

Page 21: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

ARE WE ON TRACK?- What is the initial plan?- Expected delivery? Feature set, delivery date, customer value?- Re-implementing existing systems or how to sort 5000+ stories into a plan.- Capacity checks, forecasts: We have a dedicated team for that.- Forecasts are difficult no matter if you have 5 or 500 people working.- Is our plan still correct? (80/20 rule of uncertainty)- Having project managers running a software project. We don’t like that.- Doing meetings to keep everybody on the same page?- Having more meetings whenever there is a problem?- Everybody is buying Jira, but does this help? (“A fool with a tool is still a fool.”)

Page 22: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

ARE WE WORKING ON THE RIGHT THINGS?

- MoSCoW prioritization method (MUST, SHOULD, COULD, WON’T)- implementation order- transparency without meetings (reporting, using the “Facebook effect”)- Blackboards versus agile project systems- Who is working on what? What is done, not done?- Is everybody working on the planned stories? (Anecdotal evidence)- The feeling of being part of a larger team

Page 23: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

ARE THERE ANY PROBLEMS?

- Are we spending an unusual amount of time somewhere?- Are new developers getting up to speed?- External factors? Systematic under/over estimations?- Who needs support? Who is stuck somewhere?- Is “done” really done? Getting feedback from users/stakeholders.- Where are changes needed? Follow-up stories?- What will that do to our plan?

Page 24: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

WHAT IF AN INTELLIGENT AGENT COULD DO THIS FOR YOU?

Page 25: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

Let’s talk about agent-based systems ...

25© freiheit.com

Page 26: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

… or maybe like this.

26© freiheit.com

Page 27: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

INTELLIGENT AGENT - DEFINITION:

In artificial intelligence, an intelligent agent (IA) is an autonomous entity which observes through sensors and acts upon an environment using actuators and directs its activity towards achieving goals (i.e. it is "rational", as defined in economics).*

*Source WIKIPEDIA

Page 28: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 28

Simple reflex, model-based, goal-based, utility-based and general learning agents. INTELLIGENT AGENT

Page 29: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 29

Siri, Google Now, and Facebook bringing general purpose intelligent agents in place.

Page 30: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 30

WE ARE COMMUNICATING MORE AND MORE VIA INSTANT MESSAGING SYSTEMS LIKE WHATSAPP, SLACK, WECHAT, FACEBOOK etc.

Page 31: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 31

Page 32: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

32© freiheit.com

Page 33: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

SO HERE ISWHAT WE HAVE BUILT ...

Page 34: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 34

Page 35: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 35

Page 36: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

USING GAME AI TECHNIQUES

Page 37: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

● Target date

● Estimation

● Effort

● What is STARTED?

● What is DELIVERED

● What is ACCEPTED?

© freiheit.com 37

Before we can learn from behavior, we have to get the basics right.

Agent

State

Goals

Utility

What is the world right now?

What will it be likeif I do action x?

How happy I will be in such a state?

WorldPercepts EnvironmentSensors

Actuators

⎬ Stories

⎬ Progress

Action

Page 38: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 38

Goal-oriented action planning is a technique used in building NPCs for Game AI.STATE-MACHINES VS. GOAP

Source: http://gamedevelopment.tutsplus.com/tutorials/goal-oriented-action-planning-for-a-smarter-ai--cms-20793

State machine Loosely coupled goals/action

Page 39: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 39

To reach a goal, we can select the best next action that reduces high insistence values.GOAL-ORIENTED ACTION PLANNING, INSISTENCE

Goal:Eat=4, Bathroom=3Action:Drink-Soda (Eat-2, Bathroom+3)Action:Visit-Bathroom (Bathroom-4)

Source: Artificial Intelligence for Games

Page 40: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 40

If we want to consider side-effects of an action we have to calculate the discontentment value.GOAL-ORIENTED ACTION PLANNING, DISCONTENTMENT

Goal:Eat=4, Bathroom=3Action:Drink-Soda (Eat-2, Bathroom+2)- afterwards: Eat=2, Bathroom=5:

Discontentment=29Action:Visit-Bathroom (Bathroom-4)- afterwards: Eat=4, Bathroom=0,

Discontentment=16Source: Artificial Intelligence for Games

Page 41: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

HYPOTHESIS

WE CAN MODEL OUR PROJECT WORLD USING THE SAME METHODS.

Page 42: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

All aspects of a project are monitored by specialized software bots. These bots are working in swarms.

Slack

Sensors

Actuators

Space Planner/Bots

Slack

API

Agile Planning Tool GOAP AIAgent Framework

Swarm

Swarm

Realtime Databases,

other Sources

© freiheit.com 42

Super Swarm

GOETHE ARCHITECTURE

Page 43: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

Sensors● Stories (“Plan”)● Progress (“Done”)● Commits (Code)● Bugs● Calendar● Android/Apple Watch

Actuators● Messengers

(Slack etc.)● IRC, XMPP● Apple/Android Watch● Text-2-Speech

© freiheit.com 43

Bots● Personal Bot● Sprint/Milestone● Project● Anomaly Detection● Pattern Recognition● Neural Networks● Planning● Code Quality

Page 44: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 44

The actions are using Go text/templates and a homegrown DSL to access the data.DSL EXAMPLES

All Stories from the current milestone

All Stories in the past that are not done

Page 45: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

DEMO VIDEOS

Page 46: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 46

Page 47: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

© freiheit.com 47

Page 48: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

SIGN-UP HERE FOR OUR CLOSED BETA:http://goethe.instapage.com/

Page 49: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

THANK YOUTwitter: @smartrevolutionfreiheit.com technologies

Budapester Str. 45

20359 Hamburg, Germany

[email protected]

T +49 40 890584 0

F +49 40 890584 20

Page 50: Stefan Richter - Data-Driven Software Development: The quest for the intelligent machine that manages software projects - code.talks 2015

Hackers wanted.

Join us:[email protected]


Recommended