Hundreds of organizations have now realized the benefit of Rapid Release Planning! Compared to traditional release planning, this increases your estimation and sizing accuracy from 34% to over 85%! Rapid Release Planning is one of the CORE Components for getting teams engaged early and using their Rapid Sizing to better forecast which candidates will successfully be a part of the release. The keys to making this work successfully revolve around making gut decisions about size and relative complexity of the items being estimated and validated.
Facilitation Foundations - A Guide to Effective Agile MeetingsAgileDad
Facilitation Foundations is a presentation that has been given at multiple Agile Conferences. The focus of the presentation is improving the quality and effectiveness of Agile Meetings.
Many who have downloaded this deck have made it a standard for assisting organizations who are struggling with spending too much time and money on Agile Meetings.
The Empowering Agile Teams Presentation has been presented at numerous Agile Conferences and has been VERY well received. Many teams get frustrated due to the lack of understanding of what they are expected to deliver vs what has been perceived. Gone are the days of opacity. Teams are better equipped to handle the day to day workload and are less fearful of commitment in an environment where healthy team relationships are valued.
Integrating SCRUM with classical Project ManagementJens Hoffmann
SCRUM and PRINCE2 integrated, is a powerfull solution to scale the agile method for large projects. The conventional and mature project management approaches like PRINCE2 or PMI PMBOK are gaining more resillience from this as the become more flexible and adabtible to changing demands and needs.
Identifying, Managing, & Eliminating Technical Debt is the key to successfully getting your business on track. Gone are the days where we could write endless checks that we did not have the people to cover. We need to work harder to make the debt known and address the debt up close and personal before it gets out of hand.
The purpose here is to educate the Agile work place about what technical debt is, learn how to eliminate it, and how to avoid ever running into it again.
Hundreds of organizations have now realized the benefit of Rapid Release Planning! Compared to traditional release planning, this increases your estimation and sizing accuracy from 34% to over 85%! Rapid Release Planning is one of the CORE Components for getting teams engaged early and using their Rapid Sizing to better forecast which candidates will successfully be a part of the release. The keys to making this work successfully revolve around making gut decisions about size and relative complexity of the items being estimated and validated.
Facilitation Foundations - A Guide to Effective Agile MeetingsAgileDad
Facilitation Foundations is a presentation that has been given at multiple Agile Conferences. The focus of the presentation is improving the quality and effectiveness of Agile Meetings.
Many who have downloaded this deck have made it a standard for assisting organizations who are struggling with spending too much time and money on Agile Meetings.
The Empowering Agile Teams Presentation has been presented at numerous Agile Conferences and has been VERY well received. Many teams get frustrated due to the lack of understanding of what they are expected to deliver vs what has been perceived. Gone are the days of opacity. Teams are better equipped to handle the day to day workload and are less fearful of commitment in an environment where healthy team relationships are valued.
Integrating SCRUM with classical Project ManagementJens Hoffmann
SCRUM and PRINCE2 integrated, is a powerfull solution to scale the agile method for large projects. The conventional and mature project management approaches like PRINCE2 or PMI PMBOK are gaining more resillience from this as the become more flexible and adabtible to changing demands and needs.
Identifying, Managing, & Eliminating Technical Debt is the key to successfully getting your business on track. Gone are the days where we could write endless checks that we did not have the people to cover. We need to work harder to make the debt known and address the debt up close and personal before it gets out of hand.
The purpose here is to educate the Agile work place about what technical debt is, learn how to eliminate it, and how to avoid ever running into it again.
About Agile Programmer's skill sets
Ultimate Agilist Tokyo 2012
This presentation will be used tomorrow. after that session I have a plan to update this slide.
[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices강 민우
플레이어들이 원하는 기능을 적시에 개발하여 배포하기 위해 필요한 Agile의 Practice를 소개 합니다. 기획 단계에서부터 개발, 운영까지 필요한 기술 Practice와 함께 효과적인 조직 문화 구축에 필요한 Practice를 Riot Games의 사례를 기반으로 설명합니다.
We usually think of agility for software development — agility allows a small team to produce valuable software.
However, this is not the only place for agility. In this talk Dan discusses the «layering» of agility in a software- focused organization.
This layering starts at the bottom, with Agile Software Development (the writing of quality code), and ends at the top, with Agile Portfolio Management (the management of Projects, Programs, and Products for the good of the Organization).
In this (non-technical, yet entertaining) talk Dan develops a big picture showing how all the pieces fit together in a logical model.
Case Study on Business Communication Training - by projectingITprojectingIT
This presentation covers excerpt of the "Training Assessment Report" prepared by projectingIT and sent to our client. The presentation covers following aspects
# Training Assessment Steps
1] Reaction and Planned Action
2] Learning
3] Course Content
4] Trainer Feedback
5] Participant Feedback
# Training Effectiveness Measurements
Visit our website to know more
This is my latest presentation on "Scrum managing through complexity" given at Luxembourg Sacred Heart University Executive MBA Class (Jan. 17th 2012).
This is a part of the Operational Excellence Module.
This slide is for Ultimate Agilist Tokyo in Japan. 2012.Nov.
I want to think about agile programmer's skill set. and I want to introduce ICAgile to Japan.
I analyzed agile value, principles, practices and ICAgile.
and participant members created some mandatory skill set in this session.
See this blog entry , that will be better.
http://simple-architect.blogspot.jp/2012/11/agile-programmers-skill-set-ultimate.html
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Opensouthcode (9th June '23)
About Agile Programmer's skill sets
Ultimate Agilist Tokyo 2012
This presentation will be used tomorrow. after that session I have a plan to update this slide.
[IGC 2017] 라이엇게임즈 유석문 - 게임 개발의 Agile Best Practices강 민우
플레이어들이 원하는 기능을 적시에 개발하여 배포하기 위해 필요한 Agile의 Practice를 소개 합니다. 기획 단계에서부터 개발, 운영까지 필요한 기술 Practice와 함께 효과적인 조직 문화 구축에 필요한 Practice를 Riot Games의 사례를 기반으로 설명합니다.
We usually think of agility for software development — agility allows a small team to produce valuable software.
However, this is not the only place for agility. In this talk Dan discusses the «layering» of agility in a software- focused organization.
This layering starts at the bottom, with Agile Software Development (the writing of quality code), and ends at the top, with Agile Portfolio Management (the management of Projects, Programs, and Products for the good of the Organization).
In this (non-technical, yet entertaining) talk Dan develops a big picture showing how all the pieces fit together in a logical model.
Case Study on Business Communication Training - by projectingITprojectingIT
This presentation covers excerpt of the "Training Assessment Report" prepared by projectingIT and sent to our client. The presentation covers following aspects
# Training Assessment Steps
1] Reaction and Planned Action
2] Learning
3] Course Content
4] Trainer Feedback
5] Participant Feedback
# Training Effectiveness Measurements
Visit our website to know more
This is my latest presentation on "Scrum managing through complexity" given at Luxembourg Sacred Heart University Executive MBA Class (Jan. 17th 2012).
This is a part of the Operational Excellence Module.
This slide is for Ultimate Agilist Tokyo in Japan. 2012.Nov.
I want to think about agile programmer's skill set. and I want to introduce ICAgile to Japan.
I analyzed agile value, principles, practices and ICAgile.
and participant members created some mandatory skill set in this session.
See this blog entry , that will be better.
http://simple-architect.blogspot.jp/2012/11/agile-programmers-skill-set-ultimate.html
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Opensouthcode (9th June '23)
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
===
Presentation (revisited & updated) shared at JDD 2022:
https://jdd.org.pl/lecture_2022/#id=78434
TDD - Seriously, try it - Codemotion (May '24)Nacho Cougil
Ever wondered about the wonders of Test-Driven Development (TDD)? Curious devs, this session is for you!
Get ready to dive into TDD and explore its benefits. We'll see the "secrets" behind TDD, its roots, and the rules surrounding it. But that's not all! We'll also uncover the ups and downs of TDD, plus we'll share some tips and tricks... including a live coding session in Java. Get ready to level up your development skills with TDD – more insights, more advantages, and more confidence in your coding adventures!
PS: Building tests before production code can sound more fun than it sounds 😉.
---
Presentation shared at Codemotion Madrid '24
Feedback form:
https://bit.ly/tdd-seriously-try-it-feedback
Join this session to see the benefits of Test-Driven Development (TDD), and understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests. We will go over some history about TDD and list the main advantages and disadvantages that most developers who practice it find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD by seeing how to do it step by step with an example of a "live" coding session with Java. At the end of the session, you will have a wider understanding of TDD and why it's interesting to master it. Also, you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code.
---
Presentation shared at Bucharest Tech Week '23
TDD - Seriously, try it! - Trójmiasto Java User Group (17th May '23)ssusercaf6c1
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Trójmiasto Java User Group
Public group 17th of May '23
TDD - Seriously, try it! - Trjjmiasto JUG (17th May '23)Nacho Cougil
Have you heard of TDD? Are you interested or familiar with this practice but have never been able to understand it?
Join this session to see the benefits of Test-Driven Development (TDD), understand how it works and its benefits. In a more detailed approach, we will see this way of developing software, where our code is always built guided by tests.
We will go over some history about TDD, which is the main process we must follow when we work with this mechanic and the rules that surround it. We will also list the main advantages and disadvantages that most developers who practice TDD find and whether the arguments in favour add up to more than those that subtract. Finally, we will review some good habits and practices when applying TDD and see how to do it step by step with an example of a "live" coding session with Java.
At the end of the session, I hope that you will have a wider understanding of what TDD is, what advantages it brings, why it is interesting to master it and also that you will take with you some tricks and good practices to be able to apply them in your day-to-day life when writing code
---
Presentation shared at Trójmiasto Java User Group (17th May '23)
A modern architecturereview–usingcodereviewtools-ver-3.5SSW
For any project that is critical to the business, it’s important to do ‘Modern Architecture Reviews’. Being an architect is fun, you get to design the system, do ongoing code reviews, and play the bad ass. It is even more fun when using modern cool tools.
Prashant technical practices-tdd for xebia eventXebia India
Theme: Agile Technical Practices
Epic: TDD implementation
Stories:
Context of TDD
What is TDD
Response of Developers to TDD implementation
Practices complimenting TDD
Success with TDD
My presentation at Arvato Systems about TDD. This presentation is based on my own knowledge and experience. I go through two full TDD cycles programmed in Eclipse presenting the written code in the presentation.
One of the main hindrances to teams being able to respond rapidly to new features are technical problems resulting from bad coding practices, also known as technical debt. Melissa and Brett will cover Agile tools and practices that help development teams write better code and increase maintainability. Topics that will be covered include:
Pair programming
Automated Unit Testing
Refactoring
Test-Driven Development
Agile Architecture
Nội dung nói chuyện ngắn tại sự kiện của Agile Vietnam tháng 3-2017.
Tóm tắt: Đào tạo thôi không đủ, khoa học về nhận thức và não bộ có nhiều bằng chứng cho thấy mọi người/các nhóm cần thời gian để phát triển năng lực. Cần Coaching để bổ khuyết những khiếm khuyết của mô hình đào tạo cấp tập, đào tạo tập trung hoặc đào tạo truyền thống. Agile Coaching là người giúp cho các cá nhân, đội nhóm và tổ chức mở rộng năng lực (capabilities) và nâng cao hiệu suất (performance).
Hỏi không phải là một kĩ năng quan trọng. Chúng ta phải luyện tập thì mới nâng cao kĩ năng đặt câu hỏi cũng như tận dụng chúng để đạt được các mục đích học tập, giảng dạy hay làm việc.
Tài liệu này mô tả các loại câu hỏi khác nhau, cùng với những ví dụ tiêu biểu. Đồng thời nó cũng nêu những điều cần lưu ý khi thực hành việc hỏi và tạo môi trường cho việc hỏi đáp diễn ra suôn sẻ.
Phần đặc biệt nhất của tài liệu là giới thiệu quy trình truy tìm chân lí dựa trên câu hỏi của Socrates, một quy trình kinh điển!
The keynote for Agile Vietnam Conference 2016. In this presentation, I share my thoughts on why organization should put Learning into the core processes, leading it purposefully and systematically. The most important parts of this presentation may be the specific tactics and strategies for implementing learning organization at several levels: individual, team and organization.
A reflection on constructivism and engineering educationDUONG Trong Tan
This is the notes for the talk with all instructors of FPT University - Degree Division in 2015. It covers some key considerations at the time: constructivism, constructivist learning and teaching, CIO and engineering education reforms.
Học cách học (version 2.0) - Learning How To LearnDUONG Trong Tan
Tài liệu học tập cho workshop "Học cách học" giúp người học hiểu rõ hơn về cơ chế học tập và cách thức để nâng cao hiệu quả tự học của bản thân.
Thông tin thêm về workshop: https://hoccachhoc.wordpress.com/workshop-hoc-cach-hoc/
Nội dung nói chuyện tại sự kiện hằng tháng của AgileVietnam.
Bài nói chuyện trở về với lịch sử của Agile, sự ra đời của XP, Scrum, Lean Software Development, Lean Startup, Personal Kanban và sự lan rộng của Agile sang các lĩnh vực khác.
Thông qua việc điểm qua các ứng dụng của Agile ở các lĩnh vực khác nhau từ phát triển phần mềm, đến sản xuất phần cứng, cho cuộc sống thường ngày hoặc các công việc đặc thù như marketing, người trình bày muốn cung cấp một bức tranh toàn cảnh về Agile. Nhờ đó chúng ta có những manh mối để nghiên cứu sâu hơn và bắt đầu áp dụng cho lĩnh vực của mình.
* Học tập là gì?
* Não học tập thế nào?
* Kĩ năng hình thành như thế nào?
* Thói quen hình thành ra sao?
* Cách thức để học tập hiệu quả ?
* Học tập tự định hướng là gì?
Bài nói chuyện ngắn tại hội thảo mở về giáo dục đào tạo FPT EduCamp 2015 tại Đại học FPT, Hòa Lạc, 29.11.2015. Trong bài có nêu 9 nhóm nguyên nhân cản trở sự hình thành và phát triển tổ chức học tập.
This presentation was used in "Agile workshop for FPT Aptech Hanoi students" in December 2012.
This doc covers most of core practices of an agile developer.
A Strategic Approach: GenAI in EducationPeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
Operation “Blue Star” is the only event in the history of Independent India where the state went into war with its own people. Even after about 40 years it is not clear if it was culmination of states anger over people of the region, a political game of power or start of dictatorial chapter in the democratic setup.
The people of Punjab felt alienated from main stream due to denial of their just demands during a long democratic struggle since independence. As it happen all over the word, it led to militant struggle with great loss of lives of military, police and civilian personnel. Killing of Indira Gandhi and massacre of innocent Sikhs in Delhi and other India cities was also associated with this movement.
Embracing GenAI - A Strategic ImperativePeter Windle
Artificial Intelligence (AI) technologies such as Generative AI, Image Generators and Large Language Models have had a dramatic impact on teaching, learning and assessment over the past 18 months. The most immediate threat AI posed was to Academic Integrity with Higher Education Institutes (HEIs) focusing their efforts on combating the use of GenAI in assessment. Guidelines were developed for staff and students, policies put in place too. Innovative educators have forged paths in the use of Generative AI for teaching, learning and assessments leading to pockets of transformation springing up across HEIs, often with little or no top-down guidance, support or direction.
This Gasta posits a strategic approach to integrating AI into HEIs to prepare staff, students and the curriculum for an evolving world and workplace. We will highlight the advantages of working with these technologies beyond the realm of teaching, learning and assessment by considering prompt engineering skills, industry impact, curriculum changes, and the need for staff upskilling. In contrast, not engaging strategically with Generative AI poses risks, including falling behind peers, missed opportunities and failing to ensure our graduates remain employable. The rapid evolution of AI technologies necessitates a proactive and strategic approach if we are to remain relevant.
The Roman Empire A Historical Colossus.pdfkaushalkr1407
The Roman Empire, a vast and enduring power, stands as one of history's most remarkable civilizations, leaving an indelible imprint on the world. It emerged from the Roman Republic, transitioning into an imperial powerhouse under the leadership of Augustus Caesar in 27 BCE. This transformation marked the beginning of an era defined by unprecedented territorial expansion, architectural marvels, and profound cultural influence.
The empire's roots lie in the city of Rome, founded, according to legend, by Romulus in 753 BCE. Over centuries, Rome evolved from a small settlement to a formidable republic, characterized by a complex political system with elected officials and checks on power. However, internal strife, class conflicts, and military ambitions paved the way for the end of the Republic. Julius Caesar’s dictatorship and subsequent assassination in 44 BCE created a power vacuum, leading to a civil war. Octavian, later Augustus, emerged victorious, heralding the Roman Empire’s birth.
Under Augustus, the empire experienced the Pax Romana, a 200-year period of relative peace and stability. Augustus reformed the military, established efficient administrative systems, and initiated grand construction projects. The empire's borders expanded, encompassing territories from Britain to Egypt and from Spain to the Euphrates. Roman legions, renowned for their discipline and engineering prowess, secured and maintained these vast territories, building roads, fortifications, and cities that facilitated control and integration.
The Roman Empire’s society was hierarchical, with a rigid class system. At the top were the patricians, wealthy elites who held significant political power. Below them were the plebeians, free citizens with limited political influence, and the vast numbers of slaves who formed the backbone of the economy. The family unit was central, governed by the paterfamilias, the male head who held absolute authority.
Culturally, the Romans were eclectic, absorbing and adapting elements from the civilizations they encountered, particularly the Greeks. Roman art, literature, and philosophy reflected this synthesis, creating a rich cultural tapestry. Latin, the Roman language, became the lingua franca of the Western world, influencing numerous modern languages.
Roman architecture and engineering achievements were monumental. They perfected the arch, vault, and dome, constructing enduring structures like the Colosseum, Pantheon, and aqueducts. These engineering marvels not only showcased Roman ingenuity but also served practical purposes, from public entertainment to water supply.
Introduction to AI for Nonprofits with Tapp NetworkTechSoup
Dive into the world of AI! Experts Jon Hill and Tareq Monaur will guide you through AI's role in enhancing nonprofit websites and basic marketing strategies, making it easy to understand and apply.
Francesca Gottschalk - How can education support child empowerment.pptxEduSkills OECD
Francesca Gottschalk from the OECD’s Centre for Educational Research and Innovation presents at the Ask an Expert Webinar: How can education support child empowerment?
1. Simple Design
and
Development Strategy
for agile teams
Duong Trong Tan
tandt@fpt.edu.vn
2. Objectives
• Issues of Planned • Design for
Design Communication
• What is Simple • Design for
Design? Collaboration
• Simplicity • Refactoring
• Design for Code • Simple Design in
practice
2
3. Design is the key,
Planned Design is not …
• Takeuchi & Nonaka: overlapping is better than sequential
Not efficient:
• Time consuming
• No backward
• No “better idea” on the go
But how to do this kind of overlapping development?
3
4. What is Simple Design?
• Design grows as
implementation
– Complete design NOT
required. Just enough, GO!
• Part of programming
Evolve
processes
• Program evolves the
design changes
• Not “code and fix” tactics
4
5. Simplicity
Rationale behind Simple Design
• "Do the Simplest Thing that Could
Possibly Work“
• "You Aren't Going to Need It“
• Invest in patterns
• Simple system
1. Runs all the Tests
2. Reveals all the intention
3. No duplication
4. Fewest number of classes or
methods
5
6. Design for
Communication
• Draw design stuffs for discussion within your
team
– Just enough for clarifying solutions
• Only use diagrams that you can keep up to
date without noticeable pain
• Keep diagrams visible
– Post to wall or board
– Encourage people to edit
• Pay attention to whether people are using
them, if not throw them away.
6
7. Design for Construction
• “Working software is the primary
measure of progress”
• Your design will be realized into a working
item, so:
– Design should be code-able in team
• separation, interfacing, collaboration between
components
– Design should be testable
– “Architect must code!”
7
8. Refactoring
• For simpler design
• For maintenanceupgrade
later
• MustHave task in your
DoneDefinition checklist
Learn more: http://www.refactoring.com/
• Invest in patterns and best
practices
Image: http://www.testically.org
8
9. Development Flow
$ $
Collaboration:
PO DevTeam PO
UI Mocking Design Draft Code the
Refactoring
Steps: Requirement •Customer •Design skeleton to Coding in
and
Build the
Analysis discussion Discussion test the team increment
Refinement
design
Interface IDo{
//TODO …
A Interface IDo{ }
//TODO … Class A{
IDo } method1(){
As a super user,
Class A{ //Mr. A codes here
Artifacts:
I want to …
//TODO … }
}
B }
Class B:IDo{ Class B:IDo{
//TODO … method1(){
} //Mrs. B codes here
}
}
Note: 1. TDD|BDD|AMDD can be used or not Class C{
2. Images are for illustration only } 9
10. How about Architecture?
• PO works with DevTeam to specify
– Technologies used
– Frameworks used
– Initial Architecture
• Before Sprint 1
– @User Story Writing workshop
– @ Initial Requirement Envisioning and Initial
Architecture Envisioning
10
12. “Continuous” Architecting
Sprint #1: without layering
Presentation Tier Application Layer Business Layer Data Access Layer Data Tier
12
13. “Continuous” Architecting
Sprint #2: refactoring to layers
Presentation Tier Application Layer Business Layer Data Access Layer Data Tier
13
14. “Continuous” Architecting
Sprint #3: architecting “on the go”
Presentation Tier Application Layer Business Layer Data Access Layer Data Tier
14
15. Summary
• A good design is simple
• Keep It Simple, Stupid!
• Using incremental design for agile
development
• Design evolves during development
process
• Using refactoring to maintain simplicity
• There should be a vision for architecture
15
16. References
• Agile Alliance, Agile Manifesto
http://agilemanifesto.org
• H. Takeuchi & I. Nonaka, The new new
Product development game, Harvard
Business Review, 1986.
• M. Fowler, Is Design Dead?
http://martinfowler.com/articles/designDead.html
• http://www.refactoring.com/
16