Sogeti labs developer-today-v1.1

Post on 12-Jul-2015

1.290 views 0 download

Transcript of Sogeti labs developer-today-v1.1

To be a Software Engineer today

(and in the future…)

http://labs.sogeti.com/

(and in the future…)

Sogeti Labs meeting / 2014 december / @ltguerin ver 1.1

Software Engineer … who’s that guy ?

Technology

trends

Mindset

evolutions

? DevOps

2

?Permanently

in evolution !

DevOps

Scripting is now everywhere

Even on the server side with Node.js

Each year new languages

Technology / Languages & programming paradigms

3

Programming paradigms evolution :

�Procedural oriented programming

� Event driven programming

� Object oriented programming (OOP)

� Aspect oriented programming (AOP)

� Functional programming :

Scala, Erlang, Haskell, F#,

Java 8 with Lambdas, …

Back to native languages ?

� C/C++

(old but still at the top )

� D (Digital Mars)

� Go (Google)

In the past :

SQL = “one language to rule them all”

But now ?

� No SQL (key/values, document, graph )

� Big Data (hadoop, …)

� New SQL (in memory, …)

Technology / Data management

4

New SQL The return of SQL?

� New SQL (in memory, …)

Mashup is inevitable

API is everywhere

An application is no longer isolated

but integrated into an heterogeneous environment

Technology / Architecture

API = the new must-have

for business

� “the API economy”

5

“Micro Services” architecture

Mashup is inevitable“the API economy”

cf "The Reactive Manifesto"

http://www.reactivemanifesto.org/

Application requirements have changed

dramatically in recent years

We expect …

- millisecond response times

- 100% uptime

- data measured in Petabytes

Today's demands are simply not met by

yesterday’s software architectures.

Technology / Reactive applications

6

yesterday’s software architectures.

We want systems that are Responsive,

Resilient, Elastic and Message Driven.

We call these “Reactive Systems”

Application

Lifecycle

Management

Software Factory

Continuous

Integration

Technology / Industrialization

From craftsman to industrial…

7

Quality

metrics

But keep the

“art of coding”!

Try to reach the

“beauty of code”

Technology / New devices

Not only computer !

Internet of the Things

M2M RobotsSmartphones

8

Raspberry pi, Arduino, etc…

SmartWear

Electronic

is back !

The developer’s

playground ?

Drones

Responsive design

Users want

simplicity !

Technology / User experience

SBA (Search Based Application)

Navigation & Gestures

9

Story BoardAnd more…

Mindset / Social coding & influences

but the response is always in

is the developer’s best friend,

is the developer’s heaven

The developer is sharing a lot of stuff via …

- Communities (JUG, GDG, …)

- Meetings & events (Devoxx, MeetUP, BBL, etc…)

Gurus show the way• Linus Torvald

• Martin Fowler

Social

coding

The developer’s job influences :

10

Job

- Meetings & events (Devoxx, MeetUP, BBL, etc…)

- Blogs

- Social networks

- Open Source projects

• Martin Fowler

• etc…

The developer’s

generation is now the

“Y generation”

Personal activities - Technology Watch

- Learning (MOOC)

- Experimentations,

- Open Source development…

Buzz

& fashion

Geek ?The “2nd life”

Usable as a SaaS ?

Deployable on a PaaS / IaaS ?

Enough skills to use Virtual Machines and containers ?

What about …

• Authentication

• Horizontal Scalability

Data Storage

Mindset / The head in the cloud

Is my software

cloud ready ?

11

• Data Storage

• Multi-tenancy

• Sessions management

• Logging

• Monitoring

• Security

• etc …

Think different, think cloud !

Mindset / Be agile ! (or die)

Test Driven Development XP Best

Practices

12

SCRUM Behavior Driven Development

DevOps : the fall of the walls

My job

is to say

« NO »

DevOps =

Break the wall !

13

BUSINESS DEV OPS

AGILEMETHODS

DEVOPS

SCRUM

DevOps

XP

From Continuous Integration … to Continuous Deployment

DevOps… The grail quest ?

Continuous

Integration

Continuous

14

Continuous

Deployment

Continuous

Delivery

DevOps = Agile Process + Automation => Tools required !

DevOps… The tools

An example with

Jenkins & DockerJenkins output :

Not only the “software”, but

“Software + Environment”

Registry

15

Do not install

just “pull & run” !

- Pull image- Run container

Host 1

Linux + Docker

Host 2

Linux + Docker

Host 3

Linux + Docker

Host 4

Linux + Docker

No

Virtual

Machine

(Linux only)Automated

Acceptance

Tests

User

Acceptance

Tests

Staging

& pre-

production

Production

Pull

Registry

( images)Push

The end

16

“We need developers more than ever”

cf Steve Ballmer / YouTube

17

https://www.youtube.com/watch?v=8To-6VIJZRE