17
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

Sogeti labs developer-today-v1.1

Embed Size (px)

Citation preview

Page 1: 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

Page 2: Sogeti labs developer-today-v1.1

Software Engineer … who’s that guy ?

Technology

trends

Mindset

evolutions

? DevOps

2

?Permanently

in evolution !

DevOps

Page 3: Sogeti labs developer-today-v1.1

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)

Page 4: Sogeti labs developer-today-v1.1

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, …)

Page 5: Sogeti labs developer-today-v1.1

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”

Page 6: Sogeti labs developer-today-v1.1

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”

Page 7: Sogeti labs developer-today-v1.1

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”

Page 8: Sogeti labs developer-today-v1.1

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

Page 9: Sogeti labs developer-today-v1.1

Responsive design

Users want

simplicity !

Technology / User experience

SBA (Search Based Application)

Navigation & Gestures

9

Story BoardAnd more…

Page 10: Sogeti labs developer-today-v1.1

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”

Page 11: Sogeti labs developer-today-v1.1

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 !

Page 12: Sogeti labs developer-today-v1.1

Mindset / Be agile ! (or die)

Test Driven Development XP Best

Practices

12

SCRUM Behavior Driven Development

Page 13: Sogeti labs developer-today-v1.1

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

Page 14: Sogeti labs developer-today-v1.1

From Continuous Integration … to Continuous Deployment

DevOps… The grail quest ?

Continuous

Integration

Continuous

14

Continuous

Deployment

Continuous

Delivery

Page 15: Sogeti labs developer-today-v1.1

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

Page 16: Sogeti labs developer-today-v1.1

The end

16

Page 17: Sogeti labs developer-today-v1.1

“We need developers more than ever”

cf Steve Ballmer / YouTube

17

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