SlideShare une entreprise Scribd logo
1  sur  29
DEVELOPING
ENTERPRISE
READY
SOFTWARE
Nate Brown
@Woz U
ABOUT ME
• Director of Software Engineering at AppointmentPlus
• Team of 25+ in US and India
• SaaS using LAMP, Laravel, Angular, React, Vue
• Mobile apps in iOS and Android
• MS Office apps in C# .Net
• Previous roles
• Software Development Manager at AppointmentPlus
• Lead Software Developer at AppointmentPlus
• Senior Application Systems Analyst at University of Arizona College of Medicine
• Workstation Specialist at Saint Xavier University
• Helpdesk Intern
• Freelance/Self-Employed Multimedia Designer
REAL WORLD
ENTERPRISE SOFTWARE
• Developing beyond boot camp
• Enterprise software?
• Providing mission critical function for an organization
• Serving the business needs of “large” organizations
• Serving the consumer needs of an organization’s customers
• B2B2C
• High level rubric/framework for guiding development practices
REAL WORLD
ENTERPRISE SOFTWARE
• Focused heavily on loosely coupled relationships
• between the application and its underlying infrastructure (code vs server)
• between the layers of the application (data, logic, presentation)
• between the components within each layer (i.e. notifications vs reporting)
• between the application its required human interaction (releases, resilience)
THE THREE CONTEXTS
• Commitment to fulfilling provider responsibilities
• Foundational standards
• The baseline expectations
• Consistent regardless of implementation
• Commitment to meeting client expectations
• Facilitating the function of the enterprise
• Empowering the growth of the enterprise
• Commitment to providing engaging user experiences
• The “wow factor”
• Pushing the enterprise towards innovation
THE PILLARS
Provider
Responsibilities
• Secure
• Scalable
• Portable
• Transferable
• Maintainable
Client
Expectations
• Functional
• Global
• Extensible
• Adaptable
• Powerful
User
Experiences
• Responsive
• Accessible
• Innovative
COMMITMENT TO FULFILLING
PROVIDER RESPONSIBILITIES
Building on a proper foundation
SECURE
Certain to remain or continue to be not subject to threat; protected against attack or
other criminal activity.
• Security is the foremost responsibility of the software provider
• Security starts with the developer’s physical and virtual environments
• Security is not a milestone, it’s a continuous theme and an ongoing activity
SCALABLE
Capable of being easily expanded or upgraded on demand; able to be used or
produced in a range of capabilities
• Scalability refers to both the technology and the real-world implementation
• Design and develop to handle ebbs and flows in usage
• Consider the client’s current state and future needs
PORTABLE
Easily moves between environments and technologies on demand, with little to no
hard dependencies
• Develop in independent and interchangeable layers
• Strive to be loosely coupled to the environments and architectures in which the
application is deployed
• Allow discrete components/services to move without detriment to the application
TRANSFERABLE
Able to be transferred or made over to the possession of another
• Transferability applies to development and post-development hand offs
• Write code for the next developer
• Plan to have more than one SME for each component or feature
• Provide thorough documentation when handing off to a teammate, the client, a
tester, a contractor, etc
MAINTAINABLE
Exists in continuance with low cost of ownership; able to be upgraded as needed
• Capture, manage, and eliminate technical debt
• Monitor updates to dependencies
• Plan for frequent, smaller refactors and avoid lengthy, risky rewrites
• Write code that is clean, concise, and well documented
COMMITMENT TO MEETING
CLIENT EXPECTATIONS
Developing solutions that propel
FUNCTIONAL
Capable of serving the purpose for which it was designed
• Be consultative and partner with the client to understand and achieve the purpose
• Allow the user to seamlessly perform intended functions as expected
• Do not tolerate defects of any level of criticality in the product’s core competency
GLOBAL
Thinking holistically in terms of the entire world
• Evaluate every aspect of the application in terms of global availability
• Almost all other aspects are all impacted by locale
EXTENSIBLE
Designed with the ability to expand or add on to its capabilities; implementation
takes future growth into consideration
• Design your application to play well with others
• Build in hooks, listeners, messaging, callouts, etc to enable customization and
integration
• Avoid rigid implementations that stifle innovation
ADAPTABLE
Able to adjust readily to different conditions; able to be modified for a new use or
purpose
• Pertains to the scalability of the application’s real world functionality
• Design to be flexible and configurable to fulfill core functions in a variety of use
cases
• As the client’s operating environment evolves, so does its use of the application
POWERFUL
Giving control and influence over people and events; having a strong effect
• Give the user a sense of command and control over the problem it is designed to
solve
• Provide a complete solution, addressing all aspects of the core competency
• The user should feel confident in the ability of the application
COMMITMENT TO PROVIDING
ENGAGING USER EXPERIENCES
Delivering the wow factor
RESPONSIVE
Appropriately reacting to change quickly and in a desired or positive way
• Responsiveness goes beyond adapting the presentation on varying types and sizes
of devices
• Your application will need to adapt to changes in consumers’ expectations in terms
of advancing technology
ACCESSIBLE
Easy for anyone within the target audience to obtain and use
• Understand the demographics of the user base and/or target audience
• Consider cognitive and physical ability to provide ease of use
• Consider global accessibility standards
INNOVATIVE
Introducing new ideas; original and creative in thinking
• Strive to provide the end user with a powerful, forward-thinking experience
• Leverage advances in technology to push the boundaries of functionality
EXAMPLES
Real world examples from AppointmentPlus
APPOINTMENTPLUS 2010
• Single server “stacks”
• Serving multiple purposes
• Multiple non synched instances
• Different code versions
• Different platform versions
• Arbitrary load assignment
• No tuning/scaling
• Manual build and deploy
APPOINTMENTPLUS 2018
• Separate load balanced web servers,
based on function
• Separate APIs and services based on
function
• Secure internal tools
• Offload reporting engine
• Central business logic API serves
multiple interfaces
• Each component tuned and scaled
based on function
• Automated deployment
THE PILLARS
Provider
Responsibilities
• Secure
• Scalable
• Portable
• Transferable
• Maintainable
Client
Expectations
• Functional
• Global
• Extensible
• Adaptable
• Powerful
User
Experiences
• Responsive
• Accessible
• Innovative
www.nate.bio
www.ersaas.org
Thanks for listening!

Contenu connexe

Tendances

香港六合彩
香港六合彩香港六合彩
香港六合彩pchgmf
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile waveNiels Bech Nielsen
 
What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)Entando
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1IIUI
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meetingSergii Shmarkatiuk
 
Improving software econimics
Improving software econimicsImproving software econimics
Improving software econimicsKalica Wadhwa
 
Windows 7 v/ Kristian Svantorp Microsoft
Windows 7 v/ Kristian Svantorp MicrosoftWindows 7 v/ Kristian Svantorp Microsoft
Windows 7 v/ Kristian Svantorp Microsoftguestb7fda43
 
The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)Hayim Makabee
 
BSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVBSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVYamunaP6
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineeringShrayas Suryakumar
 
Unit 1 sepm introduction to software
Unit 1 sepm introduction to softwareUnit 1 sepm introduction to software
Unit 1 sepm introduction to softwareKanchanPatil34
 
Software architect - roles & responsabilities
Software architect - roles & responsabilitiesSoftware architect - roles & responsabilities
Software architect - roles & responsabilitiesAdrian Cristian Grigoras
 

Tendances (15)

ENPAQ Brochure
ENPAQ BrochureENPAQ Brochure
ENPAQ Brochure
 
香港六合彩
香港六合彩香港六合彩
香港六合彩
 
Modern software architect post the agile wave
Modern software architect post the agile waveModern software architect post the agile wave
Modern software architect post the agile wave
 
What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)What's New In Entando 6 (And Why Your Developers Will Love It)
What's New In Entando 6 (And Why Your Developers Will Love It)
 
Security Design Concepts
Security Design ConceptsSecurity Design Concepts
Security Design Concepts
 
1. Introduction
1. Introduction1. Introduction
1. Introduction
 
Lecture 2 introduction to Software Engineering 1
Lecture 2   introduction to Software Engineering 1Lecture 2   introduction to Software Engineering 1
Lecture 2 introduction to Software Engineering 1
 
Continuous integration for se group meeting
Continuous integration for se group meetingContinuous integration for se group meeting
Continuous integration for se group meeting
 
Improving software econimics
Improving software econimicsImproving software econimics
Improving software econimics
 
Windows 7 v/ Kristian Svantorp Microsoft
Windows 7 v/ Kristian Svantorp MicrosoftWindows 7 v/ Kristian Svantorp Microsoft
Windows 7 v/ Kristian Svantorp Microsoft
 
The Role of the Software Architect (short version)
The Role of the Software Architect (short version)The Role of the Software Architect (short version)
The Role of the Software Architect (short version)
 
BSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IVBSC Software & Software engineering-UNIT-IV
BSC Software & Software engineering-UNIT-IV
 
Introduction to software engineering
Introduction to software engineeringIntroduction to software engineering
Introduction to software engineering
 
Unit 1 sepm introduction to software
Unit 1 sepm introduction to softwareUnit 1 sepm introduction to software
Unit 1 sepm introduction to software
 
Software architect - roles & responsabilities
Software architect - roles & responsabilitiesSoftware architect - roles & responsabilities
Software architect - roles & responsabilities
 

Similaire à Developing Enterprise Ready Software

Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)VMware Tanzu
 
1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterprise1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterpriseScott Simmons
 
A Comprehensive Guide Hiring Full-Stack Developers for Your Business.pdf
A Comprehensive Guide Hiring Full-Stack Developers for Your Business.pdfA Comprehensive Guide Hiring Full-Stack Developers for Your Business.pdf
A Comprehensive Guide Hiring Full-Stack Developers for Your Business.pdfDevstree Canada
 
Quality Concept
Quality ConceptQuality Concept
Quality ConceptAnand Jat
 
Introduction to Red Hat Mobile Application Platform
Introduction to Red Hat Mobile Application PlatformIntroduction to Red Hat Mobile Application Platform
Introduction to Red Hat Mobile Application PlatformEvan Wong
 
Why is RAD imperative for modern app development
Why is RAD imperative for modern app developmentWhy is RAD imperative for modern app development
Why is RAD imperative for modern app developmentWaveMaker, Inc.
 
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxGodwin Monserate
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software qualityBabak Khorrami
 
Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons...
Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons...Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons...
Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons...Steve Greenley
 
Software craftsmanshippresentation
Software craftsmanshippresentationSoftware craftsmanshippresentation
Software craftsmanshippresentationMeagan Waller
 

Similaire à Developing Enterprise Ready Software (20)

java advert
java advertjava advert
java advert
 
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
 
1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterprise1221 raise expectations_for_the_ always_on_enterprise
1221 raise expectations_for_the_ always_on_enterprise
 
A Comprehensive Guide Hiring Full-Stack Developers for Your Business.pdf
A Comprehensive Guide Hiring Full-Stack Developers for Your Business.pdfA Comprehensive Guide Hiring Full-Stack Developers for Your Business.pdf
A Comprehensive Guide Hiring Full-Stack Developers for Your Business.pdf
 
Quality Concept
Quality ConceptQuality Concept
Quality Concept
 
Mendix Platform
Mendix PlatformMendix Platform
Mendix Platform
 
A Software Engineer
A Software EngineerA Software Engineer
A Software Engineer
 
Introduction to Red Hat Mobile Application Platform
Introduction to Red Hat Mobile Application PlatformIntroduction to Red Hat Mobile Application Platform
Introduction to Red Hat Mobile Application Platform
 
Samyuktha Javangula
Samyuktha JavangulaSamyuktha Javangula
Samyuktha Javangula
 
Waterfall Model.pptx
Waterfall Model.pptxWaterfall Model.pptx
Waterfall Model.pptx
 
Why is RAD imperative for modern app development
Why is RAD imperative for modern app developmentWhy is RAD imperative for modern app development
Why is RAD imperative for modern app development
 
DevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a StartupDevOps for Enterprise Systems : Innovate like a Startup
DevOps for Enterprise Systems : Innovate like a Startup
 
Introduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptxIntroduction to Software Development Life Cycle.pptx
Introduction to Software Development Life Cycle.pptx
 
When agility meets software quality
When agility meets software qualityWhen agility meets software quality
When agility meets software quality
 
Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons...
Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons...Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons...
Steve Greenley July 2015 - Enterprise Architecture and True Agility - lessons...
 
Forecast 2014: Cloud-Aware Applications
Forecast 2014: Cloud-Aware Applications Forecast 2014: Cloud-Aware Applications
Forecast 2014: Cloud-Aware Applications
 
Application Development.pdf
Application Development.pdfApplication Development.pdf
Application Development.pdf
 
Dev ops
Dev opsDev ops
Dev ops
 
Software craftsmanshippresentation
Software craftsmanshippresentationSoftware craftsmanshippresentation
Software craftsmanshippresentation
 
Samyuktha Javangula
Samyuktha JavangulaSamyuktha Javangula
Samyuktha Javangula
 

Dernier

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistandanishmna97
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 

Dernier (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 

Developing Enterprise Ready Software

  • 2. ABOUT ME • Director of Software Engineering at AppointmentPlus • Team of 25+ in US and India • SaaS using LAMP, Laravel, Angular, React, Vue • Mobile apps in iOS and Android • MS Office apps in C# .Net • Previous roles • Software Development Manager at AppointmentPlus • Lead Software Developer at AppointmentPlus • Senior Application Systems Analyst at University of Arizona College of Medicine • Workstation Specialist at Saint Xavier University • Helpdesk Intern • Freelance/Self-Employed Multimedia Designer
  • 3. REAL WORLD ENTERPRISE SOFTWARE • Developing beyond boot camp • Enterprise software? • Providing mission critical function for an organization • Serving the business needs of “large” organizations • Serving the consumer needs of an organization’s customers • B2B2C • High level rubric/framework for guiding development practices
  • 4. REAL WORLD ENTERPRISE SOFTWARE • Focused heavily on loosely coupled relationships • between the application and its underlying infrastructure (code vs server) • between the layers of the application (data, logic, presentation) • between the components within each layer (i.e. notifications vs reporting) • between the application its required human interaction (releases, resilience)
  • 5. THE THREE CONTEXTS • Commitment to fulfilling provider responsibilities • Foundational standards • The baseline expectations • Consistent regardless of implementation • Commitment to meeting client expectations • Facilitating the function of the enterprise • Empowering the growth of the enterprise • Commitment to providing engaging user experiences • The “wow factor” • Pushing the enterprise towards innovation
  • 6. THE PILLARS Provider Responsibilities • Secure • Scalable • Portable • Transferable • Maintainable Client Expectations • Functional • Global • Extensible • Adaptable • Powerful User Experiences • Responsive • Accessible • Innovative
  • 7. COMMITMENT TO FULFILLING PROVIDER RESPONSIBILITIES Building on a proper foundation
  • 8. SECURE Certain to remain or continue to be not subject to threat; protected against attack or other criminal activity. • Security is the foremost responsibility of the software provider • Security starts with the developer’s physical and virtual environments • Security is not a milestone, it’s a continuous theme and an ongoing activity
  • 9. SCALABLE Capable of being easily expanded or upgraded on demand; able to be used or produced in a range of capabilities • Scalability refers to both the technology and the real-world implementation • Design and develop to handle ebbs and flows in usage • Consider the client’s current state and future needs
  • 10. PORTABLE Easily moves between environments and technologies on demand, with little to no hard dependencies • Develop in independent and interchangeable layers • Strive to be loosely coupled to the environments and architectures in which the application is deployed • Allow discrete components/services to move without detriment to the application
  • 11. TRANSFERABLE Able to be transferred or made over to the possession of another • Transferability applies to development and post-development hand offs • Write code for the next developer • Plan to have more than one SME for each component or feature • Provide thorough documentation when handing off to a teammate, the client, a tester, a contractor, etc
  • 12. MAINTAINABLE Exists in continuance with low cost of ownership; able to be upgraded as needed • Capture, manage, and eliminate technical debt • Monitor updates to dependencies • Plan for frequent, smaller refactors and avoid lengthy, risky rewrites • Write code that is clean, concise, and well documented
  • 13. COMMITMENT TO MEETING CLIENT EXPECTATIONS Developing solutions that propel
  • 14. FUNCTIONAL Capable of serving the purpose for which it was designed • Be consultative and partner with the client to understand and achieve the purpose • Allow the user to seamlessly perform intended functions as expected • Do not tolerate defects of any level of criticality in the product’s core competency
  • 15. GLOBAL Thinking holistically in terms of the entire world • Evaluate every aspect of the application in terms of global availability • Almost all other aspects are all impacted by locale
  • 16. EXTENSIBLE Designed with the ability to expand or add on to its capabilities; implementation takes future growth into consideration • Design your application to play well with others • Build in hooks, listeners, messaging, callouts, etc to enable customization and integration • Avoid rigid implementations that stifle innovation
  • 17. ADAPTABLE Able to adjust readily to different conditions; able to be modified for a new use or purpose • Pertains to the scalability of the application’s real world functionality • Design to be flexible and configurable to fulfill core functions in a variety of use cases • As the client’s operating environment evolves, so does its use of the application
  • 18. POWERFUL Giving control and influence over people and events; having a strong effect • Give the user a sense of command and control over the problem it is designed to solve • Provide a complete solution, addressing all aspects of the core competency • The user should feel confident in the ability of the application
  • 19. COMMITMENT TO PROVIDING ENGAGING USER EXPERIENCES Delivering the wow factor
  • 20. RESPONSIVE Appropriately reacting to change quickly and in a desired or positive way • Responsiveness goes beyond adapting the presentation on varying types and sizes of devices • Your application will need to adapt to changes in consumers’ expectations in terms of advancing technology
  • 21. ACCESSIBLE Easy for anyone within the target audience to obtain and use • Understand the demographics of the user base and/or target audience • Consider cognitive and physical ability to provide ease of use • Consider global accessibility standards
  • 22. INNOVATIVE Introducing new ideas; original and creative in thinking • Strive to provide the end user with a powerful, forward-thinking experience • Leverage advances in technology to push the boundaries of functionality
  • 23. EXAMPLES Real world examples from AppointmentPlus
  • 24. APPOINTMENTPLUS 2010 • Single server “stacks” • Serving multiple purposes • Multiple non synched instances • Different code versions • Different platform versions • Arbitrary load assignment • No tuning/scaling • Manual build and deploy
  • 25. APPOINTMENTPLUS 2018 • Separate load balanced web servers, based on function • Separate APIs and services based on function • Secure internal tools • Offload reporting engine • Central business logic API serves multiple interfaces • Each component tuned and scaled based on function • Automated deployment
  • 26.
  • 27.
  • 28. THE PILLARS Provider Responsibilities • Secure • Scalable • Portable • Transferable • Maintainable Client Expectations • Functional • Global • Extensible • Adaptable • Powerful User Experiences • Responsive • Accessible • Innovative

Notes de l'éditeur

  1. We will discuss: What is the definition of enterprise software In what contexts does enterprise software exist and operate Key aspects (aka “pillars”) that make up enterprise software development best practices
  2. Have extensive experience working directly with small to enterprise clients, small to enterprise sales teams, support teams, marketing teams, executive leadership, and of course engineers Taken what I’ve gleaned from these experiences to develop the concepts Presented to relevant stakeholders within the business to get buy in - All agree that this is what enterprise clients want
  3. Use as a guideline for our own engineers to help guide code reviews, 1:1, etc Topics that I expect interviewees to be able speak about and demonstrate Chances are you will work on an application that will serve an enterprise The technology gap between SMB and Enterprise is closing rapidly as providers find ways to make their platforms more available The expectations of SMB continue to grow Tendency to write less code that does more Should focus on singularity Design loosely coupled components Think in terms of OOP and SOA Does not dictate implementation or platform specific details
  4. Loosely coupled relationships is overarching theme The solution will be nimble, able to adapt to changes in the environment with limited manual human intervention. It will adjust to meet the demands of its usage.
  5. These three contexts are the make up the B2B2C “social contract”
  6. Not exhaustive, but desire is to be relevant to the entire stack List may grow over time, as the “standard” gains adoption
  7. How am I protecting the IP on my machine/environments? How am I securing my hardware? How am I securing the application access? How am I securing the user’s private information? During collection At rest In transit Data expiry How am I securing the environments? Maintaining dependencies etc
  8. How would I design and write this differently if it grew 10x, 100x, or 1000x the expected usage? Will the design/feature set still be viable at higher volumes? How do I reduce waste and increase efficiency?
  9. 3 tier architecture Data layer Logic layer/api Interface layer What if any layer of your application needed to change? Data layer Infrastructure/network APIs/external services AP File upload example As demand and usage of the application changes, and as technology advances, there may be a need to deploy the application to an environment that utilizes different technologies
  10. Writing code for the next person Have a low “bus factor”, i.e. your code should outlive you Siloed development kills the future of projects
  11. Don’t leave @todos undone!
  12. No level of performance, security, presentation etc. will matter to the client if their end users perceive that they are not able to execute the basic functionality Understand requirements and deliver
  13. Technology "shrinks" the globe; less virtual distance between us What if you needed to translate your application into more languages later? How does the physical environment impact your application, e.g. rural areas with slower connections? Mention EU GDPR
  14. Be a cog in the bigger machine, a spoke on the wheel, etc Enterprises need the ability to send information to/from other systems at any point in the process Offering external APIs, relevant third-party integrations, and other such customizations are examples of effective extensibility
  15. Bridgestone examples of growth into Mobile tire repair, partner network Tesla using for test drives, build consultations, service appointments, etc Stay within the confines of the functional purpose, but allow for broader adoption
  16. AP handles full scope of appointment process from request to followup Beware of scope creep, doing more irrelevant things doesn’t make it more powerful!
  17. Single page parallax scrolling vs blinking text and gifs Remember web 2.0?
  18. Not going to build a command line app for a toddler Example of building a scheduling system for warehouses Costco example of French language and AODA requirements
  19. Doing the previous 12 things removes barriers to innovation
  20. Line 3: not PORTABLE, MAINTAINABLE; cant move without dependency, no documentation of dependency Line 7: not TRANSFERABLE; no docs, unclear variable names Line 8-14: not SECURE, PORTABLE, MAINTAINABLE; assumes availability w/o error handling Line 18: not PORTABLE, SCALABLE;
  21. Line 22-28: not EVERYTHING; too many unrelated functions in a single entity, no limit of scope, may break tight dependencies on change Line 30: not TRANSFERABLE; no docs, unclear variable names Line 31: not PORTABLE, MAINTAINABLE; cant move without dependency, no documentation of dependency Line 32,41: not SCALABLE, wasting resources by reinstantiating Line 41: not GLOBAL, doesn’t properly handle DST
  22. Not exhaustive, but desire is to be relevant to the entire stack List may grow over time, as the “standard” gains adoption