Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Engineering - Mastering the art of Software

Engineering - Mastering the art of Software

Software development has grown in the last 10 years, and with it, the profession has also grown.

This talk will cover the basic principles and mindset that differ from a software developer to a software engineer. Principles such as troubleshooting, toolsets, risk management, etc.

The idea of the talk is to go over these base core principles and expose them to software developers starting in the profession or want to give a shift in their career improving it.

Cristiano Diniz da Silva

February 04, 2017
Tweet

More Decks by Cristiano Diniz da Silva

Other Decks in Programming

Transcript

  1. Spoon Manufacturing As 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.
  2. 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
  3. Digital Sign If you had to build a digital sign

    by hooking up a computer and a tv, what languages, frameworks would you use to build it?
  4. Development tools 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
  5. It is not only about code anymore • Standards •

    Reviews • Instructing other Engineers • Tests
  6. Management Skills Not 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.
  7. [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?
  8. 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 ?
  9. 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
  10. Hotfix Planning Short version: • Responsible people for roles: ◦

    Engineer ◦ QA ◦ Release manager ◦ Dev-Ops • Post-mortem
  11. Improvements • Usually mistaken by easy • Requires the whole

    engineering cycle • Requires risk assessment
  12. 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.
  13. Mindset Anyone can: • Research • Code • Adjust ...

    but in order to work with all 3 you must have a different mindset of a programmer / developer.
  14. “Sometimes a simple solution is far far more powerful than

    a conventional off the shelf way.” Manu Prakash
  15. 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.com Engineering & Photography https://joind.in/talk/47c87