[ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-Intensive Systems]
Sunday, November 13, 2016
Architecture is defined by the recommended practice as the fundamental organization of a system, embodied in its components, their relationships to each other and the environment, and the principles governing its design and evolution.
[ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-Intensive Systems]
[ANSI/IEEE Std 1471-2000, Recommended Practice for Architectural Description of Software-Intensive Systems]
Sunday, November 6, 2016
"All the choices and challenges facing the modern software architect are staggeringly intertwined. Each of them both constrains the others and affects multiple key outcomes. Minor decisions often have huge implica- tions. As in the physical world, this is the difference between engineering and architecting." IEEE Software,2016 nov.
Philippe Kruchten put it, “The life of a software architect is a long and rapid succession of suboptimal design decisions taken partly in the dark.” IEEE
Friday, October 14, 2016
"A state of software is a coordinate in the state space that contains exactly one value for every internal data structure." - James A. Whittaker
“Every now and again you just have to stop and invest in your career, and I encourage you to do that now. Stop what you're doing, and invest in PowerShell and you'll be rewarded for having done so.” Jeffrey Snove
Sunday, September 25, 2016
“Information is data endowed with relevance and purpose. Converting data into information thus requires knowledge. And knowledge, by definition, is specialized. In fact, truly knowledgeable people tend toward overspecialization, whatever their field, precisely because there is always so much more to know.”
— Peter Drucker, “The Coming of the New Organization,” Harvard Business Review, January–February 1998
— Peter Drucker, “The Coming of the New Organization,” Harvard Business Review, January–February 1998
Monday, September 5, 2016
“Would you tell me please, which way I ought to go from here?” asked Alice.
“That depends a good deal on where you want to get to,” said the Cat.
“I don’t much care where,” said Alice.
“Then, it doesn’t matter which way you go,” said the Cat.
Alice’s Adventures in Wonderland
—Lewis Lewis Carroll
“That depends a good deal on where you want to get to,” said the Cat.
“I don’t much care where,” said Alice.
“Then, it doesn’t matter which way you go,” said the Cat.
Alice’s Adventures in Wonderland
—Lewis Lewis Carroll
Tuesday, August 30, 2016
"Testing is a philosophy. You can test the design. You can test the requirements. And you can even design modules to test the modules you are creating." -
Randy May
Randy May
Tuesday, August 23, 2016
"An extremely strange, but common, feature of many software projects is that for long periods of time during the development process the application is not in a working state. In fact, most software developed by large teams spends a significant proportion of its development time in an unusable state. The reason for this is easy to understand: Nobody is interested in trying to run the whole application until it is finished." Ref.pend.
Monday, August 15, 2016
Self-organization proceeds from the premise that effective organization is evolved, not designed. It aims to create an environment in which successful divisions of labor and routines not only emerge but also self-adjust in response to environmental changes. This happens because management sets up an environment and encourages rapid evolution toward higher fitness, not because management has mastered the art of planning and monitoring workflows.—
Philip Anderson, The Biology of Business© Copyright Mountain Goat Software
Philip Anderson, The Biology of Business© Copyright Mountain Goat Software
Sunday, August 14, 2016
Knuth’s dictum, optimizations should be deferred to the point when it is clear that they are required, deferred until the last responsible moment, and targeted based on runtime application profiling so as to attack bottlenecks in descending order of importance.
Saturday, August 13, 2016
Donald Knuth’s famous dictum:
We should forget about small efficiencies, say, about 97% of the time: Premature
optimization is the root of all evil. Yet we should not pass up our opportunities in
that critical 3%. A good programmer will not be lulled into complacency by such
reasoning, he will be wise to look carefully at the critical code; but only after that
code has been identified.
We should forget about small efficiencies, say, about 97% of the time: Premature
optimization is the root of all evil. Yet we should not pass up our opportunities in
that critical 3%. A good programmer will not be lulled into complacency by such
reasoning, he will be wise to look carefully at the critical code; but only after that
code has been identified.
"He inspired us through his passion, his generosity, and the gift of laughter. He will be greatly missed."
RWilliams Apple.com
RWilliams Apple.com
Friday, August 5, 2016
Computer programs are the most intricate, delicately balanced and finely interwoven of all the products of human industry to date. They are machines with far more moving parts than any engine: the parts don’t wear out, but they interact and rub up against one another in ways the programmers themselves cannot predict.
[Gleik 1992]
[Gleik 1992]
“The drive to reduce complexity is at the heart of software development”
[McConnell 2004]
[McConnell 2004]
Sunday, July 31, 2016
The value of metaphors should not be underestimated. Metaphors have the virtue of an expected behavior that is understood by all. Unnecessary communication and misunderstandings are reduced. Learning and education are quicker. In effect, metaphors are a way of internalizing and abstracting concepts, allowing one’s thinking to be on a higher plane and low-level mistakes to be avoided. —
Fernando J. Corbató
Fernando J. Corbató
The value of metaphors should not be underestimated. Metaphors have the virtue of an expected behavior that is understood by all. Unnecessary communication and misunderstandings are reduced. Learning and education are quicker. In effect, metaphors are a way of internalizing and abstracting concepts, allowing one’s thinking to be on a higher plane and low-level mistakes to be avoided. —
Fernando J. Corbató
Fernando J. Corbató
“What is success?
To laugh often and much;
To win the respect of intelligent people and the affection of children;
To earn the appreciation of honest critics and endure the betrayal of false friends;
To appreciate beauty;
To find the best in others;
To leave the world a bit better, whether by a healthy child, a garden patch or a redeemed social condition;
To know even one life has breathed
easier because you have lived;
This is to have succeeded.
To laugh often and much;
To win the respect of intelligent people and the affection of children;
To earn the appreciation of honest critics and endure the betrayal of false friends;
To appreciate beauty;
To find the best in others;
To leave the world a bit better, whether by a healthy child, a garden patch or a redeemed social condition;
To know even one life has breathed
easier because you have lived;
This is to have succeeded.
—Bessie Anderson Stanley (1879–1952)
Traditionally attributed to Ralph Waldo Emerson (1803–1882)”
Excerpt From: Richard N. Bolles. “What Color Is Your Parachute? 2014.” Ten Speed Press, 2013-08-13.
The gap between the best software engineering practice and the average practice is very wide—perhaps wider than in any other engineering discipline. A tool that disseminates good practice would be important. —Fred Brooks
Saturday, July 30, 2016
“Until you’ve written about your software, you have no idea what you’ll be coding.”
Tom Preston-Werner, Co-Founder of Github
Tom Preston-Werner, Co-Founder of Github
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!
>>>
Sunday, July 24, 2016
"The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them."
[Software Architecture in Practice, 2nd Edition By Len Bass, Paul Clements, Rick Kazman]
[Software Architecture in Practice, 2nd Edition By Len Bass, Paul Clements, Rick Kazman]
"An architecture is a description of system structures, of which there are several (module decomposition,process, deployment, layered, etc.). Architecture is the first artifact that can be analyzed to determine how well its quality attributes are being achieved, and it also serves as the project blueprint. An architecture serves as the vehicle for communication, is the manifestation of the earliest design decisions, and is a reusable abstraction that can be transferred to new systems. These are the things we mean when we use the word architecture."
[Software Architecture in Practice, 2nd Edition By Len Bass, Paul Clements, Rick Kazman]
[Software Architecture in Practice, 2nd Edition By Len Bass, Paul Clements, Rick Kazman]
Saturday, July 23, 2016
"Simply stated, competitive success flows to the company that manages to establish
proprietary architectural control over a broad, fast-moving, competitive space."
C. Morris and C. Ferguson [Morris 93]
proprietary architectural control over a broad, fast-moving, competitive space."
C. Morris and C. Ferguson [Morris 93]
I should have no objection to go over the same
life from its beginning to the end: requesting only
the advantage authors have, of correcting in a
[third] edition the faults of the first [two].
—
[Benjamin Franklin]
[Benjamin Franklin]
I should have no objection to go over the same
life from its beginning to the end: requesting only
the advantage authors have, of correcting in a
[third] edition the faults of the first [two].
—
[Benjamin Franklin]
[Benjamin Franklin]
Friday, July 22, 2016
“The drive to reduce complexity is at the heart of software development”
[McConnell 2004]
[McConnell 2004]
"CI involves making small changes to software and then building and applying quality assurance processes. Defects do not only occur in the code, but also appear in naming conventions, documentation, how the software is designed, build scripts, the process of deploying the software to servers, and so on. CI forces the defects to emerge early, rather than waiting for software to be fully produced. If defects are caught in the later stages of the software development life cycle, the process will be more expensive. The cost of repair radically increases as soon as the bugs escape to production. Estimates suggest it is 100 to 1,000 times cheaper to capture defects early."
[Alan Mark Berg]
[Alan Mark Berg]
"Computer programs are the most intricate, delicately balanced and finely interwoven of all the products of human industry to date. They are machines with far more moving parts than any engine: the parts don’t wear out, but they interact and rub up against one another in ways the programmers themselves cannot predict".
[Gleik 1992]
[Gleik 1992]
"Extensibility is the ability to add functionality or modify existing functionality without impacting existing system functionality. You cannot measure extensibility when the system is deployed, but it shows up the first time you must extend the functionality of the system".
[Cade and Roberts 2002]
[Cade and Roberts 2002]
"The most important first step in designing a data warehouse (DW)/business intelligence (BI) system, paradoxically, is to stop." —Ralph Kimball
Subscribe to:
Posts (Atom)