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

Developer Tools and Workflows

Developer Tools and Workflows

A talk about developer tools and workflows. Software development concepts such as QA, DevOps, security, performance, and more, will be introduced. Common developer tools and options will be discussed, followed by workflows built around the Software Development Life Cycle.

The talk will wrap-up with a few demonstrations to show to the power of pulling all of this knowledge together into a reliable and trusted system to continuously deliver quality software.

Regardless of the languages and frameworks you may use, this talk will address issues we all face as developers.

First presented at CharDUG (Charlotte Drupal User Group)

Mark Shropshire

June 14, 2017
Tweet

More Decks by Mark Shropshire

Other Decks in Technology

Transcript

  1. Introductions 2 Mark Shropshire (shrop) Mark brings 20 years of

    experience leading technical teams to his role as Mediacurrent’s Open Source Security Lead. He is a leader in tech community organizing, blogging, podcasting, and public speaking within the Drupal community. Mark is passionate about architecting systems to solve workflow problems and improve efficiencies using open source software. Mark is the maintainer of the Gaurdr Drupal security module suite. Over his 20 year career leading technical teams, Mark gained experience in IT roles at a large urban research university and nationally recognized, award winning graphic communications company. Open Source Security Lead @shrop /in/markshropshire shrop
  2. About 3 Mediacurrent helps organizations build highly impactful, elegantly designed

    Drupal websites that achieve the strategic results they need. • Single-source provider • Specializing in Drupal since 2007 • Headquartered in Atlanta, GA • Team of 70+ Drupal Experts including development, design and strategy • Clients include: Large Enterprise and high-profile global brands
  3. 6 Open Source • Open source ◦ Contributing - what

    does this mean? ◦ Benefits of contributing ◦ http://www.mediacurrent.com/drupal-give • Get involved ◦ Drupal.org ◦ Meetup groups ◦ Sprints ◦ Presentations/conferences Concepts
  4. 8 What’s Agile software development? Agile software development describes a

    set of principles for software development under which requirements and solutions evolve through the collaborative effort of self-organizing cross-functional teams. It advocates adaptive planning, evolutionary development, early delivery, and continuous improvement, and it encourages rapid and flexible response to change. https://en.wikipedia.org/wiki/Agile_software_developmen t Concepts
  5. 9 What’s DevOps? DevOps (a clipped compound of development and

    operations) is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes. https://en.wikipedia.org/wiki/DevOp s Concepts
  6. 11 What’s QA? QA encompasses the entire software development process,

    which includes processes such as requirements definition, software design, coding, source code control, code reviews, software configuration management, testing, release management, and product integration. SQA is organized into goals, commitments, abilities, activities, measurements, and verifications. https://en.wikipedia.org/wiki/Software_quality_assurance Concepts
  7. 12 QA is more than finding bugs • Accessibility •

    Load testing • Performance • Security Concepts
  8. 13 What’s web accessibility? Web accessibility refers to the inclusive

    practice of removing barriers that prevent interaction with, or access to websites, by people with disabilities. When sites are correctly designed, developed and edited, all users have equal access to information and functionality. https://en.wikipedia.org/wiki/Web_accessibility Concepts
  9. 14 U.S. Statistics • Population of U.S. - 303 million

    people • 57 million or 19% have a disability • 38 million or 12.5% have a severe disability Concepts
  10. 15 What’s computer performance? Computer performance is the amount of

    work accomplished by a computer system. Depending on the context, high computer performance may involve one or more of the following: • Short response time for a given piece of work • High throughput (rate of processing work) • Low utilization of computing resource(s) • High availability of the computing system or application https://en.wikipedia.org/wiki/Computer_performance Concepts • Fast (or highly compact) data compression and decompression • High bandwidth • Short data transmission time
  11. 16 Why performance matters • Faster sites lead to increased

    user engagement • Faster sites lead to increased user retention • Faster sites lead to increased conversions • Faster sites require less resources Concepts
  12. 17 The CIA Information Security Triad Confidentiality, integrity and availability.

    For any information system to serve its purpose, the information must be available when it is needed. This means that the computing systems used to store and process the information, the security controls used to protect it, and the communication channels used to access it must be functioning correctly. High availability systems aim to remain available at all times, preventing service disruptions due to power outages, hardware failures, and system upgrades. https://en.wikipedia.org/wiki/Information_security#Key_concepts Concepts
  13. 18 A peer review of software source code to find

    mistakes, issues, and refinement possibilities that provide the opportunities to improve the quality, readability, and security of a codebase. Credit: Photo by nyuhuhuu on Flickr
  14. 23 Text editors and IDEs • What’s the difference? •

    Text editors ◦ Sublime Text ◦ Visual Studio Code ◦ Notepad++ • IDEs ◦ PhpStorm ◦ Eclipse PDT Tools
  15. 24 Local development environments • Acquia Dev Desktop • MAMP/XAMPP

    • Remote dev servers • Vagrant • Docker Tools
  16. 25 Databases • MySQL CLI • Oracle SQL Developer •

    Sequel Pro • SQL Server Management Studio • NoSQL Tools
  17. 26 Version control • What is version control? • Git

    ◦ Distributed version control ◦ GUI apps ◦ CLI tools ◦ Web interfaces • Other? Tools
  18. 27 CLI tools • Drush • Composer • Git •

    Homebrew (MacOS. Coming soon to Linux) • Dotfiles ◦ https://github.com/shrop/dotfiles Tools
  19. 28 Project management • Issue trackers ◦ Github ◦ Jira

    ◦ Redmine ◦ Stash/Bitbucket Tools
  20. 32 Software Development Life Cycle The SDLC isn't a methodology

    per se, but rather a description of the phases in the life cycle of a software application. These phases (broadly speaking) are, investigation, analysis, design, build, test, implement, and maintenance and support. https://en.wikipedia.org/wiki/Systems_development_life_cycle Workflows
  21. 33 Software development process Workflows • Meet with Stakeholders •

    Owner Review and Approval • Analyze Requirements • Review & Prioritize Backlog • Estimate • Groom Tickets • Deploy Code Release • Create Feature Branches • Organize Next Sprint • Automated Testing • Code Review • QA on Staging / UAT • Submit PR for Completed Work SPRINT INTERVAL Site Deployment Drupal Install Profile Epics & User Stories