engineer - mastering the art of software

31
Engineering Mastering the art of Software

Upload: cristiano-diniz-da-silva

Post on 07-Feb-2017

96 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Engineer - Mastering the Art of Software

Engineering

Mastering the art of Software

Page 2: Engineer - Mastering the Art of Software

A challenge

Page 3: Engineer - Mastering the Art of Software

Engineering Cycle

Page 4: Engineer - Mastering the Art of Software

Research

Page 5: Engineer - Mastering the Art of Software

Spoon ManufacturingAs a business owner I want to expand my business by manufacturing spoons.

These should be made of plastic, lightweight and will be distributed in small boxes of 25, 50 and 100 units.

Page 6: Engineer - Mastering the Art of Software

Ask the right questions● Who is your target audience

● What are the project goals

● How the project will be distributed

● What are the project requirements

● What are the project restrictions

● etc

Page 7: Engineer - Mastering the Art of Software

If doesnt work on paper ...

Page 8: Engineer - Mastering the Art of Software

Development tools

Let’s talk about hammers:

Page 9: Engineer - Mastering the Art of Software

Digital SignIf you had to build a digital sign by hooking up a computer and a tv, what languages, frameworks would you use to build it?

Page 10: Engineer - Mastering the Art of Software

Dev

elop

me

nt t

ools Step back and put it on paper.

Can it be diagramed in a flow chart

Can it be broken down into more stories

Pros and cons of the selected language

Pros and cons of the selected database

What is the learning curve, if any, for development

Are there any risks with the chosen path for development

etc

Page 11: Engineer - Mastering the Art of Software

MVP

Minimal Viable Product

● Clear view

● Requirements

● Restrictions

● Goals

● Next steps

Page 12: Engineer - Mastering the Art of Software

Develop

Page 13: Engineer - Mastering the Art of Software

It is not only about code anymore● Standards

● Reviews

● Instructing other Engineers

● Tests

Page 14: Engineer - Mastering the Art of Software

Management SkillsNot people management, Risk management!

Everyone has probably faced some sort of scope creep

Need to understand and manage the risk of a change set

“Doing it live” is the same as risk management not being important.

Page 15: Engineer - Mastering the Art of Software

[Risk] Management Skills

Consider the scenario:

The application is completed, fully tested and in the a week before the release day, business decides to change the default payment authorizer to one that the application doesn’t support yet.

How do you manage this scenario and what would be your recommendations as an engineer?

Page 16: Engineer - Mastering the Art of Software

Visibility & Feedback

● Collaboration

● Tests

Page 17: Engineer - Mastering the Art of Software

Back to MVP

Page 18: Engineer - Mastering the Art of Software

Adjust

Page 19: Engineer - Mastering the Art of Software

Cabin in the Woods

Consider the scenario:

You are walking lost on the florest, it is cold, foggy, dark and with some bit of luck you find a cabin in the woods.

You manage to get inside and, once inside, you see:

A gas stove

A fireplace with some wood on it

A kerosene lamp

What do you light up first ?

Page 20: Engineer - Mastering the Art of Software

Types● Improvement

● Fix

● Hotfix

Page 21: Engineer - Mastering the Art of Software

Troubleshooting

It is more important that usually is given credit for

Requires a detailed and yet abroad vision

Good troubleshooting skills can help during development phase

Page 22: Engineer - Mastering the Art of Software

Hot

fixExtreme case scenario

Disruptive

Requires prior-planning and quick response

Page 23: Engineer - Mastering the Art of Software

Hotfix Planning

Short version:

Responsible people for roles:

Engineer

QA

Release manager

Dev-Ops

Post-mortem

Page 24: Engineer - Mastering the Art of Software

Improvements● Usually mistaken by easy

● Requires the whole engineering cycle

● Requires risk assessment

Page 25: Engineer - Mastering the Art of Software

Engineer

Page 26: Engineer - Mastering the Art of Software

Mindset It is not about only code anymore...

It is a dynamic exchange of thoughts that fiddles between an architect and a experienced software developer.

Page 27: Engineer - Mastering the Art of Software

Mindset Anyone can:

Research

Code

Adjust

... but in order to work with all 3 you must have a different mindset of a programmer / developer.

Page 28: Engineer - Mastering the Art of Software

Back of to the challenge

Page 29: Engineer - Mastering the Art of Software

“Sometimes a simple solution is far far more powerful than a conventional off the shelf way.”

Manu Prakash

Page 30: Engineer - Mastering the Art of Software

Now I’m ready for questions and answers ...

I mean I guess

Page 31: Engineer - Mastering the Art of Software

About me

Cristiano Diniz da Silva

Soft. Engineer, techie, geek, nerd, enthusiast photographer... proud father of two girls and happily ever married.

Working with PHP since it’s 3.2 version

@mcloide

https://github.com/mcloide

mcloide.comEngineering & Photography

https://joind.in/talk/47c87