Posts

Showing posts from August 24, 2014

DevOps in Agile environment

DevOps is the practice of operations and development engineers participating together in the entire service lifecycle, from design through the development process to production support. DevOps is also characterized by operations staff making use many of the same techniques as developers for their systems work. “Ops” is a blanket term for systems engineers, system administrators, operations staff, release engineers, DBAs, network engineers, security professionals, and various other subdisciplines and job titles. “Dev” is used as shorthand for developers in particular, but really in practice it is even wider and means “all the people involved in developing the product,” which can include Product, QA, and other kinds of disciplines. DevOps Practices  –Specific techniques used as part of implementing the above concepts and processes. Continuous integration and continuous deployment, “Give your developers a pager and put them on call,” using configuration management, metrics and m

Technical Debt in Agile environment

Ward Cunningham  coined the term , and Martin Fowler has some  good takes  on the subject, and  Ron Jeffries  as well. Technical Debt includes those  internal  things that you choose not to do now, but which will impede future development if left undone. This includes deferred refactoring. Technical Debt doesn't include deferred functionality, except possibly in edge cases where delivered functionality is "good enough" for the customer, but doesn't satisfy some standard (e.g., a UI element that isn't fully compliant with some UI standard). During the planning or execution of a software project, decisions are made to defer necessary work. For example: It's too late in the LifeCycle ?  to upgrade to the new release of the compiler. We'll do it next time around. We're not completely conforming to the  UserInterface  guidelines. We'll get to it next time. We don't have time to uncruft (refactor, see  RefactorMercilessly ) the hyper-wid