Menu

Home

Katherine E. Lightsey

Chamomile
- Chamomile is both a development framework and a set of utilities and tools built to manage and administer SQL based objects.
- Chamomile includes methods in the areas of administration, documentation, logging, testing and general purpose utilities.
- Chamomile is a a platform for prototypes that I use to develop new tools, techniques, and methods. As such it is also a platform for the statement of my design philosophy both literally as with Engineering as Art and Katherine's Laws of Software Design and figuratively as examples within the code of which Chamomile is comprised.


Software Architecture
Software architecture is a term used to describe the components and relationships between objects both within a program and external to the program. The term can be applied at the lowest level to a single object such as a table, procedure, or view, or to the highest level of an application such a linked server, web service, or extract/transform/load(ETL) process. Software architecture includes descriptions of the interfaces both between internal and external objects and input/output(io) to include the specification of a [design_pattern]. The term typically does not encompass requirements internal to objects such as naming and code formatting standards.


Design Patterns
A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise. A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise. Each pattern describes a problem that occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice. The usefulness of speaking of patterns is to have a common terminology for discussing the situations designers already see over and over.


Test Driven Development
Test Driven Development is a process where a test or suite of tests are created for a required object before development on the object begins. The test(s) serve as first a contract between the requesting party (business representative or engineer) and, post deployment, as a contract between the requesting party and operations. The developer agrees to provide an object that meets the provided tests, and the requesting party agrees that the tests are the sole requirements for the object. Operations agrees to deploy the object only if it passes the tests and not to allow further changes to the object or to the system that would cause the tests to fail. These practices are materialized in the implementation of Unit Tests.


Engineering as Art
I cannot find the lines dividing engineering, art, truth, spirituality, beauty, love, and life. I see the world as heterogeneous but as a whole, as having phases as different as that of gas, liquid, and solid, but like H2O, still being of the same. Separating art from engineering does not improve the engineer, rather it lessens her by removing a possible point of reference. Separating spirituality from truth strengthens neither the pilgrim nor the philosopher, it only takes from them a means of understanding one another.


Katherine's Laws of Software Design
1. Well written software can be re-factored. Poorly written software can only be tolerated.
2. There is no such thing as "bad" data.
3. If a method is too complex to effectively unit test, it is too complex.
4. If you have no objectives, you cannot meet them; if you have no principles, it won't matter if you do.
5. Normalization is not the normal state of a design, but it is the preferred state.
6. Good software should be self-documenting.
7. If it can't be measured, it doesn't exist.
8. Complexity must justify itself.
9. When dogma becomes an impediment to the achievement of your objectives, perhaps it is time to shoot your dog.


Selected Readings
Some of my favorite poems and passages. Why, you ask? "Little girls, like butterflies, need no excuse." - Robert Heinlein


FAQ
Notes, miscellany, addenda, flotsam, and jetsam.


The Heretic
About the author.


copyright Katherine Elizabeth Lightsey 1959-2013 (aka; my life)

"For if we're destroyed, the knowledge is dead...We're nothing more than dust jackets for books...so many pages to a person..." - Ray Bradbury, Fahrenheit 451


Related

Wiki: chamomile
Wiki: design_pattern
Wiki: engineering_as_an_art_form
Wiki: faq
Wiki: heretic
Wiki: katherines_laws_of_software_design
Wiki: selected_reading
Wiki: software_architecture
Wiki: test_driven_development
Wiki: unit_test