"Here we had 50, 60, 70 people around the world collaborating around this one idea that rolled directly to Bill Gates. Every two weeks there was a report that went to him. He was very interested in this, at the time it was the largest advertising campaign, sort of dollar push they ever put behind something. I think it was about $120 million or something and we were managing it all via email in this ridiculous capacity and I asked them. I looked at them all and said, why aren't we using something like Sharepoint to manage this, in a workspace to manage the project. And they all looked at me. And they laughed at me. And they said, Come on! We don't have the resources to do that! And at that point everything just clicked... We realized, if Microsoft who has infinite cash, that makes pretty damn good collaboration software... Sharepoint's a good tool if you have all the resources in the world to do it! If they couldn't do it, then how in the world is a small or medium size business going to be able to do something like that?!?!"
When you go too far up, abstraction-wise, you run out of oxygen. Sometimes smart thinkers just don't know when to stop, and they create these absurd, all-encompassing, high-level pictures of the universe that are all good and fine, but don't actually mean anything at all.
These are the people I call Architecture Astronauts.
"It has always been harder to find the right person than the right fact. Human experience and expertise are the most valuable resources on the Internet — if we could find them. Using a search engine to find (or be found by) the right person is a harder, more subtle problem than ordinary Internet search. Small pieces of the problem have been attacked; in the future we will solve this hard problem in general, instead of being satisfied with windfalls and the lowest-hanging fruit on the technology tree."
rands (@rands):2/21/10 12:57 PM
A good program manager has a calm professional ambivalence acquired by constantly discovering worst case scenarios.
A good program manager has a calm professional ambivalence acquired by constantly discovering worst case scenarios.
— rands (@rands) February 21, 2010
via Twittelator
[Sent from my iPhone 3GS]
What we found was that people with a certain social style - a kind of energetic but focused listener - acted as "charismatic connectors." The more charismatic connectors a given team had among its members, the better the team performance was judged during the business plan pitch. One important point to remember here is that it was not simply one charismatic individual, but rather a charismatic team, that pushed them toward success.
The big secret is requirements traceability. Each and every architectural decision must be strongly derived from forces (i.e., requirements and risks). This also helps to keep the architecture simple, expressive and balanced, because this way we can get rid of all these design pearls smart developers and architects typically invent.
Obsessive Optimization – When you have 5000 employees, or $500 million in revenue, fractions become significant. A .5% increase in revenue is not a small thing, it’s a big thing. It can be bigger than many companies’ entire revenue. And as companies age the culture looks to optimize and refine, eventually to a point where the good things that led to all the success have been whittled away. Managers at big companies often have more incentives to minimize costs, than to find new business or develop new ideas since minimize costs or optimizing an existing process are cheaper wins that show results in the short term. In an optimization centric culture, the myopic love of short term wins can makes long term improvements, which often require short term sacrifices, hard to pull off.
Applications have a natural tendency to grow. If you don’t pay attention, what started out as an elegant, simple application that perfectly solves a single problem, can quickly turn into a huge behemoth of an application that solves a ton of problems, but solves all of them poorly. Features are always more complex than you think, and many small features quickly add up to one large mess.
The deeper I got into TDD, the more I felt that my own journey had been less of a wax-on, wax-off process of gradual mastery than a series of blind alleys. I remember thinking “If only someone had told me that!” far more often than I thought “Wow, a door has opened.” I decided it must be possible to present TDD in a way that gets straight to the good stuff and avoids all the pitfalls.
My response is behaviour-driven development (BDD). It has evolved out of established agile practices and is designed to make them more accessible and effective for teams new to agile software delivery. Over time, BDD has grown to encompass the wider picture of agile analysis and automated acceptance testing.
