110 likes | 124 Views
Agile development should be strategically implemented across the company/development of the project. It is the process of improving and simplifying the design of existing code without changing its behavior.
E N D
Module 7: AgileConstruction https://www.ifourtechnolab.com/custom-software-development
Agile Construction • Agile development should be strategically implemented across the company/development of the project • Agile methodology construction blocks involves, • Environment • On site customer • Self Organization • Collective Code Ownership • Shared Understanding • Simple Design • Refactoring • Continuous Integration • Pair Programming • Testing & QA. https://www.ifourtechnolab.com/custom-software-development
Simple Design • Simple design = free of code smells • Code smell is any symptom in code indicating potential deeper problem & makes the system more difficult to maintain • e.g. Code duplication, Over engineering, Large classes, Dead code, Uncommunicated names. https://www.ifourtechnolab.com/custom-software-development
Refactoring • Process of improving and simplifying the design of existing code without changing its behavior • Allows automated test to be written • Makes the application more maintainable • Legacy applications often needs to be re-factor in order to strip away dependencies so that automated tests can be performed. https://www.ifourtechnolab.com/custom-software-development
Continuous Integration • Basic CI Workflow https://www.ifourtechnolab.com/custom-software-development
Pair Programming • Two heads are better than one – Pair programming • Two developers share the duty of completing one user story task • Driver & Navigator model • Driver – Typing the code • Navigator – Reviewing the code, Thinking about next step. https://www.ifourtechnolab.com/custom-software-development
Quality Assurance • Quality assurance is essential when creating software • Having great practices for gathering requirements, working closely with client and understanding all user story without getting the right product is of no use! • Agile promotes TDD and UAT. https://www.ifourtechnolab.com/custom-software-development
Quality Assurance • “Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle” • It’s a practice that adds reliability to custom software development process. • TDD is a technique where you write your test cases before you write any implementation code. • TDD is a technique for improving the software’s internal quality. • TDD provides , • Good design • A balanced division of functionalities • Smooth evolution • Maintainability • Tests provide a specification of “what” a piece of code actually does https://www.ifourtechnolab.com/custom-software-development
Quality Assurance (Cont.) • A test is not something you “do”, it is something you “write” and run once, twice, three times, etc. • It is a piece of code • Testing is therefore “automated” • Repeatedly executed, even after small changes https://www.ifourtechnolab.com/custom-software-development
TDD – Life Cycle Requirements Requirements Design Design Testing Implementation Implementation Testing Deployment& Maintenance Deployment& Maintenance https://www.ifourtechnolab.com/custom-software-development
Conclusion • Implement agile methodology across the company with Agile Construction Blocks • No code will go in production without associated test cases • Refactoring helps to improve maintainability • CI helps for successful increments • TDD helps to improve quality https://www.ifourtechnolab.com/custom-software-development