كمهزينهترين راه يادگيري، استفاده از تجربه ديگران است. يادگيرياي كه هزينهاش را ديگران پرداختهاند. گريدي بوچ براي علاقهمندان حوزه مهندسي نرمافزار، فردي آشناست. با سابقهای طولاني و تأثيرگذار. محقق ارشد شركت آيبيام، تجربيات خود از توسعه سيستمهاي پيچيده نرمافزاري را در پنج بند خلاصه كرده است. براي همكاراني كه وضعيتهاي مشابهي را تجربه كردهاند، تك تك كلمات، راهبردي و راهگشاست. هر چند خيلي نميتوان راهكار اجرايي از نظرات گريدي بوچ استخراج كرد، ولي به عنوان يك استراتژي و چارچوب، ميتوان آن را به كار گرفت. بخشهايي از نظرات ايشان را خلاصه كرده و در زير آوردهام. متن اصلي را ميتوانيد در اينجا مطالعه نماييد.
- The fundamentals never go out of style
1. Create crisp and resilient abstractions.
2. Maintain a good separation of concerns.
3. Create a balanced distribution of responsibilities.
4. Focus on simplicity.
The key in creating useful abstractions is to use an object-oriented view of the world, rather than an algorithm-based viewpoint.
Separation of concerns means, "You don't put the dishwasher in the bathroom." The specifics depend on the requirements, but he advises, "Semantically related things should be clustered together and kept separate where they are not.
Don't underestimate the importance of keeping things simple, he warns—or the difficulty of getting there. "It requires energy to develop simple things,"
- You need a regular rhythm of releases.
Every project needs a heartbeat.
Establishing that rhythm provides predictability and sustainability.
- Focus upon growing executable architectures.
IT managers need to govern around the architectural decisions rather than raw, running, naked code. "The code is the truth,". "But the code is not the whole truth."
- Create social structures that encourage innovation while still preserving predictability.
One long-standing point of contention is the degree to which, in those social structures, the manager is a participant in the actual software development process. The architect should also be an implementer, says Booch, even if a line is drawn between development and managers. But there's a danger of noisy communication when management gets too involved; it's the difference between a line and a wall.
Another component to creating innovative teams, says Booch, is keeping developers out of "blasted meetings" so they can get things done.
- Have fun.
That's not simply friendly advice; Booch believes that successful projects come from teams that are jazzed about what they're doing. "Most people want to build beautiful, elegant things," he says. "If you rob them of that, you're taking away the passion of the craftsman."
Quote:
there are only two ways to live your life. One is as though nothing is a miracle. The other is as though everything is a miracle. Albert Einstein