Uploaded on Jul 1, 2019
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.
Agile Development Construction
Module 7: Agile Construction https://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-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://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-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://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-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://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-software-development Continuous Integration • Basic CI Workflow https://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-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://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-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://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-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://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-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://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-software-development TDD – Life Cycle Requirements Requirements Design Design Testing Implementation Testing Implementation Deployment & Deployment & Maintenance Maintenance https://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncolmab/c.cuosmtom-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://whttwpw:/.i/fwouwrwte.cifhounrotleacbh.ncoolmab/c.cuosmtom-software-development
Comments