Saturday, March 31, 2012
Thin line between Architecture and design :-)
Grady Booch said
"All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change."
Thursday, March 1, 2012
[Book] 97 Things Every Software Architect Should Know
If you are using any software or any program on the internet such as web page visiting like you are doing now, it means that you have any idea about software design and structure unconsciously or intentionally.
This book is firstly for Software Architects, secondly Programmers and lastly the people who are dealing with Software or have any interaction with software programs.
97 different articles, advices are placed in this book. My best one is 'Chapter 75. If You Design It, You Should Be Able to Code It'
The following list is the 97 headlines of this book:
Don't Put Your Resume Ahead of the Requirements
Simplify Essential Complexity; Diminish Accidental Complexity
Chances Are, Your Biggest Problem Isn't Technical
Communication Is King; Clarity and Leadership, Its Humble Servants
Application Architecture Determines Application Performance
Seek the Value in Requested Capabilities
Stand Up!
Everything Will Ultimately Fail
You're Negotiating More Often Than You Think
Quantify
One Line of Working Code Is Worth 500 of Specification
There Is No One-Size-Fits-All Solution
It's Never Too Early to Think About Performance
Architecting Is About Balancing
Commit-and-Run Is a Crime
There Can Be More Than One
Business Drives
Simplicity Before Generality, Use Before Reuse
Architects Must Be Hands On
Continuously Integrate
Avoid Scheduling Failures
Architectural Tradeoffs
Database As a Fortress
Use Uncertainty As a Driver
Warning: Problems in Mirror May Be Larger Than They Appear
Reuse Is About People and Education, Not Just Architecture
There Is No 'I' in Architecture
Get the 1,000-Foot View
Try Before Choosing
Understand the Business Domain
Programming Is an Act of Design
Give Developers Autonomy
Time Changes Everything
"Software Architect" Has Only Lowercase a's; Deal with It
Scope Is the Enemy of Success
Value Stewardship Over Showmanship
Software Architecture Has Ethical Consequences
Skyscrapers Aren't Scalable
Heterogeneity Wins
It's All About Performance
Engineer in the White Spaces
Talk the Talk
Context Is King
Dwarves, Elves, Wizards, and Kings
Learn from Architects of Buildings
Fight Repetition
Welcome to the Real World
Don't Control, but Observe
Janus the Architect
Architects' Focus Is on the Boundaries and Interfaces
Empower Developers
Record Your Rationale
Challenge Assumptions—Especially Your Own
Share Your Knowledge and Experiences
Pattern Pathology
Don't Stretch the Architecture Metaphors
Focus on Application Support and Maintenance
Prepare to Pick Two
Prefer Principles, Axioms, and Analogies to Opinion and Taste
Start with a Walking Skeleton
It Is All About The Data
Make Sure the Simple Stuff Is Simple
Before Anything, an Architect Is a Developer
The ROI Variable
Your System Is Legacy; Design for It
If There Is Only One Solution, Get a Second Opinion
Understand the Impact of Change
You Have to Understand Hardware, Too
Shortcuts Now Are Paid Back with Interest Later
"Perfect" Is the Enemy of "Good Enough"
Avoid "Good Ideas"
Great Content Creates Great Systems
The Business Versus the Angry Architect
Stretch Key Dimensions to See What Breaks
If You Design It, You Should Be Able to Code It
A Rose by Any Other Name Will End Up As a Cabbage
Stable Problems Get High-Quality Solutions
It Takes Diligence
Take Responsibility for Your Decisions
Don't Be Clever
Choose Your Weapons Carefully, Relinquish Them Reluctantly
Your Customer Is Not Your Customer
It Will Never Look Like That
Choose Frameworks That Play Well with Others
Make a Strong Business Case
Control the Data, Not Just the Code
Pay Down Your Technical Debt
Don't Be a Problem Solver
Build Systems to Be Zuhanden
Find and Retain Passionate Problem Solvers
Software Doesn't Really Exist
Learn a New Language
You Can't Future-Proof Solutions
The User Acceptance Problem
The Importance of Consommé
For the End User, the Interface Is the System
Great Software Is Not Built, It Is Grown
This book is firstly for Software Architects, secondly Programmers and lastly the people who are dealing with Software or have any interaction with software programs.
97 different articles, advices are placed in this book. My best one is 'Chapter 75. If You Design It, You Should Be Able to Code It'
The following list is the 97 headlines of this book:
Don't Put Your Resume Ahead of the Requirements
Simplify Essential Complexity; Diminish Accidental Complexity
Chances Are, Your Biggest Problem Isn't Technical
Communication Is King; Clarity and Leadership, Its Humble Servants
Application Architecture Determines Application Performance
Seek the Value in Requested Capabilities
Stand Up!
Everything Will Ultimately Fail
You're Negotiating More Often Than You Think
Quantify
One Line of Working Code Is Worth 500 of Specification
There Is No One-Size-Fits-All Solution
It's Never Too Early to Think About Performance
Architecting Is About Balancing
Commit-and-Run Is a Crime
There Can Be More Than One
Business Drives
Simplicity Before Generality, Use Before Reuse
Architects Must Be Hands On
Continuously Integrate
Avoid Scheduling Failures
Architectural Tradeoffs
Database As a Fortress
Use Uncertainty As a Driver
Warning: Problems in Mirror May Be Larger Than They Appear
Reuse Is About People and Education, Not Just Architecture
There Is No 'I' in Architecture
Get the 1,000-Foot View
Try Before Choosing
Understand the Business Domain
Programming Is an Act of Design
Give Developers Autonomy
Time Changes Everything
"Software Architect" Has Only Lowercase a's; Deal with It
Scope Is the Enemy of Success
Value Stewardship Over Showmanship
Software Architecture Has Ethical Consequences
Skyscrapers Aren't Scalable
Heterogeneity Wins
It's All About Performance
Engineer in the White Spaces
Talk the Talk
Context Is King
Dwarves, Elves, Wizards, and Kings
Learn from Architects of Buildings
Fight Repetition
Welcome to the Real World
Don't Control, but Observe
Janus the Architect
Architects' Focus Is on the Boundaries and Interfaces
Empower Developers
Record Your Rationale
Challenge Assumptions—Especially Your Own
Share Your Knowledge and Experiences
Pattern Pathology
Don't Stretch the Architecture Metaphors
Focus on Application Support and Maintenance
Prepare to Pick Two
Prefer Principles, Axioms, and Analogies to Opinion and Taste
Start with a Walking Skeleton
It Is All About The Data
Make Sure the Simple Stuff Is Simple
Before Anything, an Architect Is a Developer
The ROI Variable
Your System Is Legacy; Design for It
If There Is Only One Solution, Get a Second Opinion
Understand the Impact of Change
You Have to Understand Hardware, Too
Shortcuts Now Are Paid Back with Interest Later
"Perfect" Is the Enemy of "Good Enough"
Avoid "Good Ideas"
Great Content Creates Great Systems
The Business Versus the Angry Architect
Stretch Key Dimensions to See What Breaks
If You Design It, You Should Be Able to Code It
A Rose by Any Other Name Will End Up As a Cabbage
Stable Problems Get High-Quality Solutions
It Takes Diligence
Take Responsibility for Your Decisions
Don't Be Clever
Choose Your Weapons Carefully, Relinquish Them Reluctantly
Your Customer Is Not Your Customer
It Will Never Look Like That
Choose Frameworks That Play Well with Others
Make a Strong Business Case
Control the Data, Not Just the Code
Pay Down Your Technical Debt
Don't Be a Problem Solver
Build Systems to Be Zuhanden
Find and Retain Passionate Problem Solvers
Software Doesn't Really Exist
Learn a New Language
You Can't Future-Proof Solutions
The User Acceptance Problem
The Importance of Consommé
For the End User, the Interface Is the System
Great Software Is Not Built, It Is Grown