Jens Pillgram-Larsen
Tools Engineering, LinkedIn
https://www.linkedin.com/in/jenspillgram
Software Engineering in the
Continuous Age
Delivering Software Products
3
4
The Waterfall process maps to the way enterprises were organized:
• Requirements: Marketing and Product Managers
• Design: Architects and Designers
• Implementation: Software Engineers
• Verification: QA
• Maintenance: Operations
Waterfall -> Agile -> Continuous Delivery
5
Agile was born out of the need to shorten the feedback
loop. In most enterprises Agile is just fast Waterfall.
Agile transformed into Continuous Delivery as enterprises
changed. The roles are merging as the feedback cycle
becomes instantaneous.
6
The perfect word to describe the age we’re in
Death of the Release Date set
Software Enterprises free!
7
8
So we have arrived? Only incremental improvements from now on?
Not so fast…
9
10
Continuous Delivery starts with a code change. What about the other stages
of Software Engineering: Requirements, Design, and Coding?
Requirements, Design, Coding:
Integral phases of Software
Engineering
11
12
Engineering is about application, about designing, building, and
maintaining. It goes all the way from an idea, a thought, to working product.
Craftsmanship is the skill with which this is done –
the “how”.
https://www.linkedin.com/pulse/inside-software-jens-pillgram-larsen
13
14
We ask Software Engineers to be
experts and keep track of many
dimensions…
15
A Plethora of Languages, Platforms, and Frameworks…
16
Hadoop
… and many signals and tasks
17
Compilation
Unit tests
Code Quality Analysis
Static Analysis
Code Generation
Deployment
Configuration
Continuous Integration Status
Code Review Status
Metadata Manipulation
Code Search
API Documentation Search
Dependency Management
Packaging
Integration Tests
Functional Tests
UX Testing
Performance Testing
Design
Architecture
18
Let’s use computing power and
tooling to make Software
Engineering easier and better.
19
Let’s use computing power and
tooling to make Software
Engineering easier and better.
Optimize for the software engineer, not the computer.
20
1. Continuous Task Execution
21
Discrete -> Continuous
22
Input Action Output
Software automation tasks, a.k.a. “builds”, all follow the same basic pattern
gradle --continuous check rebel
play run
ember serve
23
Tooling is starting to support this:
https://docs.gradle.org/current/userguide/continuous_build.html
2. Infinite Scalability
24
Infinite == AWS Scale
25
If you need more computing power than AWS can provide,
you’re doing something wrong!
AWS Price List: It’s Really Cheap!
26
The Need for Speed
Feedback in Human Time
27
The value of the feedback decreases the longer it
takes to get it to the developer.
1 week: no value
1 hour: small value
1 minute: large value
1 second: Borat value (for make glory!)
28
And software development happens everywhere: at the desk, at home,
at the coffee shop, on the beach
And on all kinds of devices: desktops, laptops, tablets, phones
Tooling must work across all dimensions: the “cloud” to the rescue. Offload
the expensive tasks to remote clusters of powerful computers.
3. Intelligent Developer Platform
29
Introducing AIDE: [A]n [I]DE that [D]oes [E]verything
Building this product is what we’ll be doing the next 1-2 years
30
Remember all the things we ask
Software Developers to keep track of?
A plethora of languages, platforms, frameworks, and tasks
31
The Product Vision:
Provide software developers automatic and
timely metrics, data, and information about
all of the things they care about.
32
33
Some examples: automatic API doc lookup
(IntelliJ Idea)
34
Some examples: UI hot-reload across device sizes
(Android Studio)
35
Some examples: JVM console
(Eclipse)
36
Some examples: Code Review Status and Feed
(Review Board)
37
Some examples: Continuous Delivery Pipeline
(LinkedIn)
The Long-Term Target Audience:
Amateur software developers
38
39
Hopscotch (https://www.gethopscotch.com) -- Software development for kids
Simple, intuitive, automatic, and continuous feedback
Make a change and see what changed, repeat.
That’s the goal: a complete software
development platform so simple my
kids can use it.
40
©2014 LinkedIn Corporation. All Rights Reserved.

Software Engineering in the Continuous Age

  • 2.
    Jens Pillgram-Larsen Tools Engineering,LinkedIn https://www.linkedin.com/in/jenspillgram Software Engineering in the Continuous Age
  • 3.
  • 4.
    4 The Waterfall processmaps to the way enterprises were organized: • Requirements: Marketing and Product Managers • Design: Architects and Designers • Implementation: Software Engineers • Verification: QA • Maintenance: Operations
  • 5.
    Waterfall -> Agile-> Continuous Delivery 5 Agile was born out of the need to shorten the feedback loop. In most enterprises Agile is just fast Waterfall. Agile transformed into Continuous Delivery as enterprises changed. The roles are merging as the feedback cycle becomes instantaneous.
  • 6.
    6 The perfect wordto describe the age we’re in
  • 7.
    Death of theRelease Date set Software Enterprises free! 7
  • 8.
    8 So we havearrived? Only incremental improvements from now on?
  • 9.
  • 10.
    10 Continuous Delivery startswith a code change. What about the other stages of Software Engineering: Requirements, Design, and Coding?
  • 11.
    Requirements, Design, Coding: Integralphases of Software Engineering 11
  • 12.
    12 Engineering is aboutapplication, about designing, building, and maintaining. It goes all the way from an idea, a thought, to working product.
  • 13.
    Craftsmanship is theskill with which this is done – the “how”. https://www.linkedin.com/pulse/inside-software-jens-pillgram-larsen 13
  • 14.
  • 15.
    We ask SoftwareEngineers to be experts and keep track of many dimensions… 15
  • 16.
    A Plethora ofLanguages, Platforms, and Frameworks… 16 Hadoop
  • 17.
    … and manysignals and tasks 17 Compilation Unit tests Code Quality Analysis Static Analysis Code Generation Deployment Configuration Continuous Integration Status Code Review Status Metadata Manipulation Code Search API Documentation Search Dependency Management Packaging Integration Tests Functional Tests UX Testing Performance Testing Design Architecture
  • 18.
  • 19.
    Let’s use computingpower and tooling to make Software Engineering easier and better. 19
  • 20.
    Let’s use computingpower and tooling to make Software Engineering easier and better. Optimize for the software engineer, not the computer. 20
  • 21.
    1. Continuous TaskExecution 21
  • 22.
    Discrete -> Continuous 22 InputAction Output Software automation tasks, a.k.a. “builds”, all follow the same basic pattern
  • 23.
    gradle --continuous checkrebel play run ember serve 23 Tooling is starting to support this: https://docs.gradle.org/current/userguide/continuous_build.html
  • 24.
  • 25.
    Infinite == AWSScale 25 If you need more computing power than AWS can provide, you’re doing something wrong!
  • 26.
    AWS Price List:It’s Really Cheap! 26
  • 27.
    The Need forSpeed Feedback in Human Time 27 The value of the feedback decreases the longer it takes to get it to the developer. 1 week: no value 1 hour: small value 1 minute: large value 1 second: Borat value (for make glory!)
  • 28.
    28 And software developmenthappens everywhere: at the desk, at home, at the coffee shop, on the beach And on all kinds of devices: desktops, laptops, tablets, phones Tooling must work across all dimensions: the “cloud” to the rescue. Offload the expensive tasks to remote clusters of powerful computers.
  • 29.
  • 30.
    Introducing AIDE: [A]n[I]DE that [D]oes [E]verything Building this product is what we’ll be doing the next 1-2 years 30
  • 31.
    Remember all thethings we ask Software Developers to keep track of? A plethora of languages, platforms, frameworks, and tasks 31
  • 32.
    The Product Vision: Providesoftware developers automatic and timely metrics, data, and information about all of the things they care about. 32
  • 33.
    33 Some examples: automaticAPI doc lookup (IntelliJ Idea)
  • 34.
    34 Some examples: UIhot-reload across device sizes (Android Studio)
  • 35.
    35 Some examples: JVMconsole (Eclipse)
  • 36.
    36 Some examples: CodeReview Status and Feed (Review Board)
  • 37.
    37 Some examples: ContinuousDelivery Pipeline (LinkedIn)
  • 38.
    The Long-Term TargetAudience: Amateur software developers 38
  • 39.
    39 Hopscotch (https://www.gethopscotch.com) --Software development for kids Simple, intuitive, automatic, and continuous feedback Make a change and see what changed, repeat.
  • 40.
    That’s the goal:a complete software development platform so simple my kids can use it. 40
  • 41.
    ©2014 LinkedIn Corporation.All Rights Reserved.