Sunday, November 6, 2011

InfoQ: Putting the "re" into Architecture

Presented by Kevlin Henney

Ideas & refs:
97 Things Every Software Architect Should Know
Joshua Bloch: Bumper-Sticker API Design
- Archirecture qualities: Firmitas, Utilitas, Venustas (Robustness, Usefulness, Aesthetic Beauty)
Orders Of Ignorance
- Functionality is an assent, code is a liability.
- Futurespectives/Premortem
- The shearing layers (see Big Ball of Mud): The layers change at different rates
Software visualization in the large
- Scenario buffering by dot-voting possible changes and then readjusting dependencies
A Coverage Metric That Matters

Saturday, November 5, 2011

InfoQ: Patterns For the People

"Patterns For the People" by Kevlin Henney
Ideas & refs:
- Habitability as a characteristic of source code (Richard P Gabriel, Patterns Of Software). Habitability is not the same as beauty.
- People learn only from success
Dreyfus model of skill acquisition
Pattern-Oriented Software Architecture book
Choose Your Own Architecture
- Patterns Manifesto: We are uncovering better ways of development software by seeing how others have already done it

Tuesday, November 1, 2011

You Can Control

Information Flow
You can't often control how much information you are given, but you can control the methods you use to organize it.
Assignments
How do you overcome the lack of enthusiasm that often accompanies the beginning of a dreary code maintenance project? One way is to vary the assignments so no one person is stuck with all the boring tasks. This is in your control.
Knowing your staff 's individual likes and dislikes is critical to keeping them happy. Happy programmers create good code. Disciplined programmers create even better code.
Architecture
Organizational abilities are closely related to programming logic, so don't think that straightening up your desk in a mindless activity. In the same way, creating good software architecture relies heavily on organizational skills and controll of abstract ideas.
Working Hours
Few people on their deathbed regret not having spent more hours at the office. Keep this in mind as you schedule overtime, and be careful to manage the signsof burnout in yourself and your staff.
Expectations
Being real means you will fail from time to time. Being real means that you can't control what others expect from you unless you've made unrealistic promises. Beware of what you promise - this is what sets the expectations of others with whom you work. You'll begin to controll the expectations of others if you're judical with your promises.
Attitudes
Instead of wondering why some person is so difficult, I find it more useful to ask myself why I am having difficulty with that person.