• Machines are faster and can process more data than human brain (consciously) • Although Machines are predictable (based on math and logic), the level of parallelism, speed and volume of data and instrucHons processed per second makes dealing with machines a complex and uncertain task • Modern mathemaHcal/logical formulas = so,ware programs needs TesHng to make sure we have instructed the machine properly. Can not be predicted upfront • Uncertain and Changing Requirements, FuncHonal, non FuncHonal created by Machines and the Problem to solve
Development depends on humans creaHvity, knowledge, passion, talent desires … but also in their collaboraHons and interacHons So,ware is “so,” or flexible, it is possible to express almost any kind of abstracHon Managing de Development Process is complex
that is acquired along the synthesis process knowledge Time Inten%on' Realiza%on' Feedback' Synthesis' Inten%on' Realiza%on' Feedback' Synthesis' Inten%on' Realiza%on' Feedback' Synthesis' Learning by doing Deliberate pracHce
so,ware by doing it and helping others do it. Through this work we have come to value: Individuals and interacLons over processes and tools Working so#ware over comprehensive documentaHon Customer collaboraLon over contract negoHaHon Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the le, more hmp://agilemanifesto.org/
early and conLnuous delivery of valuable so#ware. Welcome changing requirements, even late in development. Agile processes harness change for the customer’s compeHHve advantage. Deliver working so#ware frequently, from a couple of weeks to a couple of months, with a preference to the shorter Hmescale. Business people and developers must work together daily throughout the project. Build projects around moLvated individuals. Give them the environment and support they need, and trust them to get the job done. The most efficient and effecHve method of conveying informaHon to and within a development team is face-‐to-‐face conversaLon. 1 2 3 4 5 6 7 8 9 10 11 12 Working so#ware is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. ConHnuous amenHon to technical excellence and good design enhances agility. Simplicity—the art of maximizing the amount of work not done—is essenHal. The best architectures, requirements, and designs emerge from self-‐organizing teams. At regular intervals, the team reflects on how to become more effecHve, then tunes and adjusts its behaviour accordingly. 12 Agile Principles
Culture Measure of Success Waterfall Development IteraLve Development IteraLve and Incremental Development Parallel Development Acceptance Test Driven Development Command-‐and-‐Control Leadership /CollaboraLve Conformance to Plan Response to Change Design QA Process Big Design Up Front ConLnuous/Emergent Big Test on Backend ConLnuous Agile Development Tool Support Highly specific Fully Integrated
Requirements Analysis&Design ImplementaHon TesHng Deployment SpecificsHons Architecture So,ware So,ware Paperware Itera3on1 Itera3on2 Itera3on3 Release1 Working So,ware Release2 Release3 Focus In Executable Software You can't know everything at the beginning You learn as you work
IntegraHon is not one "big bang" at the end of a project • Risks are usually discovered or addressed during early integraHons • Reuse is facilitated • Management has a means of making tacHcal changes to the product • Defects can be found and corrected over several iteraHons, • It is a bemer use of project personnel. • Team members learn along the way. • The development process itself is improved and refined along the way
builds up quality 1 2 3 IteraHng allows you to move from vague idea to realizaHon From Jeff Pamon : hmp://www.agileproductdesign.com/blog/dont_know_what_i_want.html
Leffingwell scaling agile blog Fixed Scope Time Resources Time Scope Plan Driven Value Driven The Plan creates cost/ schedule es1mates feature intent & commitment to deliver the max value Resources Fixed EsLmated IntenLonal & Max Possible
Features • Architecture Stories • Issues/Bugs ITERATION1 ITERATION2 ITERATION3 ITERATION4 Final RELEASE Backlog New Req “Embracing the Change” Fixed Time
hit the release date – Less goals => less So,ware • Do not commit to early: – Decide what to deliver by experimenHng in the iteraHons. – Remember that both Specs and Architecture emerge • Avoid Big UpFront Designs and Specs (BUFDS) • Grow Features quality iteraHon by iteraHon – Start with simplest, minimal feature soluHon and add more quality iteraHon by iteraHon Based on Jeff Pamon: hmp://www.agileproductdesign.com Embrace Uncertainty presentaHon
Limle documentaHon Light process High Ceremony Well documented Traceability CCB CMM-‐I CMM IteraHve Risk Driven ConHnuous integraHon and tesHng Waterfall SequenHal, Few risks Late IntegraHon and tesHng Open UP DSDM XP SCRUM Agile Source: Per Kroll/ Philippe Krutchen
Ready to be demonstrated to Business Customer and deployed in producHon environment • All development disciplines (requirements, analysis and design, implementaHon, test…) are nearly concurrent : FiDng all ac3vi3es in a short 3me itera3on • Teams are self managing : Bomom-‐up vs Top-‐down management • Use of specific pracLces that keep the code base fresh and flexible: Pair programming, code refactoring, test driven development, conHnuous integraHon • Lean principles and techniques eliminate waste whenever possible
Leffingwell Agile Estimating and Planning, Mike Cohn Agile Project Management with Scrum, Ken Schwaber The Enterprise and Scrum, Ken Schwaber Scrum And XP from the trenches, Henrik Kniberg Succeeding with Agile. Software Development using Scrum. Mike Cohn Specification by Example. Gojko Adzic Agile References (II)
– Split the work into pieces, write each item on a card and put on the wall – Use named columns to illustrate where each item is in the workflow. • Limit WIP (work in progress) – assign explicit limits to how many items may be in progress at each workflow state. • Measure the lead Hme (average Hme to complete one item, someHmes called “cycle”), opHmize the process to make lead Lme as small and predictable as possible.
we are raising the bar of professional so,ware development by pracHcing it and helping others learn the cra,. Through this work we have come to value: That is, in pursuit of the items on the le, we have found the items on the right to be indispensable. Not only working so,ware, but also well-‐cra#ed so#ware Not only responding to change, but also steadily adding value Not only individuals and interacHons, but also a community of professionals Not only customer collaboraHon, but also producLve partnerships hmp://manifesto.so,warecra,smanship.org/