Dedication to the highest degree of professionalism, ethics, and disciplined approach to the process, methodology, technique, and tools for efficient software development.
Agile Software Development
I joined the official list of signatories for agile software development (www.agilemanifesto.org) and software craftsmanship (http://manifesto.softwarecraftsmanship.org).
Team collaboration, adaptive planning, continuous improvement, and rapid adaptation to change to build better software.
Agile development focuses on the value of individuals and interactions over a rigid process, working software over documentation, customer collaboration over contracts, and responding to change over a strict plan.
Goals are to satisfy the customer, harness change for the customer's competitive advantage, promote short timescales, daily collaboration, motivation, productive environment, face-to-face conversations, goal of working software, constant pace, good design, simplicity, self-organizing teams, and regular team adjustments.
Software craftsmanship advocates well-crafted software, steadily adding value, community of professionals, and productive partnerships.
Scrum
Passed each Open Assessment certification knowledge areas from www.scrum.org.
Expertise in the framework to address complex adaptive problems, while productively and creatively delivering products of the highest possible value through transparency, inspection, and adaptation.
This includes all four project events:
sprint planning (8 hour meeting for one-month sprint)
daily scrum (15 minutes to coordinate next 24 hours)
sprint review (4 hours for inspection of current spring)
sprint retrospective (3 hours for conclusion prior to next sprint)
Experience with all three responsibilities: product owner, development team, and scrum master.
Managed both scrum artifacts: product backlog (dynamic list of requirements for the product) and sprint backlog (items for a particular sprint).
Quality Assurance and Software Testing
Strong attention to detail for the ability to find problems in code, determine what is missing, promote teamwork, and cooperate with all team members.
Create real-world simulations to accurately test software functionality and scalability. Validation includes creating comprehensive test cases for different aspects of a project:
Functional - looks at the entire application
Regression - after modifying or fixing code
Load/performance - response time, such as website traffic
Stress - unusually heavy load, such as complex database queries
Stability - continuously perform well
Scalability - ability to grow, such as size of database
Acceptance - final test by end users
Data integrity - accuracy of functionality, such as updating a database
Integration - verify that functions work when combined
Recovery - what happens after a crash
Security - protect against unauthorized use
Compatibility - particular OS or hardware configurations
Black box - functionality and requirements without review of code
White box - code and logic
Ad-hoc - informal tests
Comparison of competitor products
Automated tests include analyzers to review code standards, memory to determine leaks or bound detection, and performance issues of simulating various loads on a client/server or web site.
Keyword or data driven functionality tests utilize a list of values entered into a spreadsheet.
Best practices
Stay up-to-date with the IEEE (Institute for Electrical and Electronics Engineers) Computer Society's Software Engineering Body of Knowledge (SWEBOK).
Special attention to all fifteen knowledge areas: software requirements, design, construction, testing, maintenance, configuration management, engineering management, engineering process, models and methods, quality, professional practice, economics, computing foundations, mathematical foundations, and engineering foundations.
The Software Engineering Institute at Carnegie Mellon University is a resource to research software and cybersecurity problems. Focus on software systems that are innovative, affordable, enduring, and trustworthy through the core values of excellence, integrity, impact, teamwork, and urgency.
The CMMI Institute helps organizations discover the value of building capability in their people and processes through the identification and improvement of key capabilities that elevate performance, quality, and profitability.
The CERT Division is dedicated to improving the security and resilience of computer systems and networks. The database of software vulnerabilities and malicious code along with an understanding of the software development lifecycle, serves as the basis for developing remediation strategies and solutions while working with developers to improve software.
For instance, the commercial software industry fails to detect millions of errors every year, even with automated tests.
DevOps
The combination of software development and operations through a broad I.T. strategy other than just code. This includes a rapid method to build, test, and deploy software.
Key skills include: (1) open source technologies and tools, (2) compiled code and scripting, (3) systems and IT operations, (4) all stages and phases of code testing and deployment, (5) automation tools, (6) Data management, (7) business aptitude, and (8) open collaboration among other disciplines.
I have designed and administered entire network configurations with both wired and wireless connectivity using Ubuntu Linux servers. This included multi-platform access to databases along with account management and file privileges. Networking spans every operating system (Linux, Unix, Android, MacOS, iOS, and Windows) along with eight professional I.T. certifications as a system administrator. These networks have involved connected printers, switches, routers, firewalls, and access to the Internet.
My DevOps experience has included the complete design of full testing environments running each platform. Docker images have been used to run Python software on computers without the necessary installations. Other skills include Git for version control.