Michael E. Byczek, Technical Consultant
Michael E. Byczek

Software Engineering

Dedication to the professional discipline approach to the process, methodology, technique, and tools for efficient software development.

Agile Software Development

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), and 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.

My DevOps experience has included the complete design of a wireless network (for secure image transfer) and development platform using a Ubuntu Linux node to write Python code and build Docker images.

Other skills include Git for version control.


Copyright © 2016. Michael E. Byczek. All Rights Reserved.