Archive | Books RSS feed for this section

Review: Practices of an Agile Developer

18 Jul

Mind Map: Practices of an Agile DeveloperRecently I read ‘Practices of an Agile Developer’ book by Venkat Subramaniam and Andy Hunt, in this book we read a lot of practices, ideas, and approaches of successful agile software developers and the book presents them in a series of short, easy-to-digest tips. It covers following topics and this picture shows mind-map of the book:

– Agile Software Development

– Agile Manifesto

– Agile Toolkit

– Outcome over process idea

– Feeding Agility

– Brown-Bag sessions

– Invest in your team and how to keep up-to-date

– Learn and unlearn

– Track issue

– Design and business analysis

– Deployment automation

– Releasable code

– Continuous Integration

– CRC cards

– Iteration and incremental development

– Agile feedback

– Agile design and business analysis

– Backlog technique

– Measure progress

– Scrum sprints

– Importance of feedback by team, code, and user

– Unit testing and T.D.D

– Encapsulation

– Elegant Code

– Commenting

– Inheritance and delegation

– Agile debugging

– Exception handling

– Solution logs

– Prototype

– Project sharing

– Stand up meeting

– Information radiator

– Rescue a failing project

It is a great book and I highly recommend it for developers, project managers, and IT professionals.

Practices of an Agile Developer

18 Jul

Want to be a better developer? This book collects the personal habits, ideas, and approaches of successful agile software developers and presents them in a series of short, easy-to-digest tips.

You’ll learn how to improve your software development process, see what real agile practices feel like, avoid the common temptations that kill projects, and keep agile practices in balance.

You’ll see how to:

  • Establish and maintain an agile working environment
  • Deliver what users really want
  • Use personal agile techniques for better coding and debugging
  • Use effective collaborative techniques for better teamwork
  • Move to an agile approach

Go to Amazon

The Art of Learning – by Josh Waitzkin

27 Jun

The Art of Learning: Review and notes by Derek Sivers:

Chess master becomes Tai Chi master, realizes his real genius is learning, and shares his insights and stories.

my notes

Entity vs Incremental theories of intelligence: (by Carol Dweck)
Entity theorists think “I am smart at this” and attribute success or failure to ingrained and unalterable level of ability. They see it as a fixed entity that cannot evolve.
Incremental theorists thnk “I got it because I worked very hard at it” or “I should have tried harder”. With hard work, difficult material can be grasped, step by step, incrementally, the novice can become the master.
When challenged, incremental theorists are far more likely to rise to the level of the game, while entity theorists are brittle and quit.
Children who associate success with hard work tend to have a “mastery-oriented response” to challenging situations.

The key to pursuing excellence is to embrace an organic long-term learning process, and not live in a shell of static safe mediocrity.
Growth comes at the expense of previous comfort or safety.
Like a hermit crab, when you outgrow your shell, you need to be vulnerable while you find a new shell.
Someone stuck in entity mindset is like an anorexic hermit crab, starving itself so it doesn’t grow to have to find a new shell.

Many people take a process-first philosophy and transform it into an excuse for never putting themselves on the line or pretending not to care about results.
They claim to be egoless, to care only about learning, but really this is an excuse to avoid confronting themselves.
Short-term goals can be useful developmental tools if they are balanced within a nurturing long-term philosophy.
Too much sheltering from results can be stunting.

We have to take responsibilty for ourselves and nurture a healthy liberated mind-set.
We need to put ourselves out there, give it our all, and reap the lesson, win or lose.
There will be nothing learned from any challenge in which we don’t try our hardest.
Growth comes at the point of resistance.
We learn by pushing ourselves and finding what really lies at the outer reaches of our abilities.

The importance of regaining presence and clarity of mind after making a serious error.
The first mistake rarely proves disastrous, but the downward spiral of the 2nd, 3rd, and 4th error creates a devastating chain reaction.

If a student of any discipline could avoid ever repeating the same mistake twice, they would skyrocket to the top of their field.
Of course this is impossible – we are bound to repeat thematic errors if only because many themes are elusive and difficult to pinpoint.
Minimize repetition as much as possible by having an eye for consistent psychological and technical themes of error.

It’s essential to have a liberating incremental approach that allows for times when you are not in a peak performance state.
We must take responsibilty for ourselves and not expect the rest of the world to understand what it takes to become the best that we can become.
Great ones are willing to get burned again and again while they sharpen their swords in the fire.

Making smaller circles:
Those who succeed have slightly more honed skils than the rest.
It’s rarely a mysterious technique that drives us to the top, but rather a profound mastery of what may well be a basic skill set.
Depth beats breadth, because it opens a channel for the intangible, unconscious, creative components of our hidden potential.

Intuition is our most valuable compass in this world.
It is the bridge between the unconscious and the concscious mind, and it is hugely important to keep in touch with what makes it tick.
It’s open communication with the wellspring of our creativity.

My vision of the road to mastery:
– start with the fundamentals
– get a solid foundation fueled by the understanding of the principles of your discipline
– expand and refine your repertoire, guided by your individual predispositions
– while keeping in touch, however abstractly, with what you feel to be the essential core of the art
What results is a network of deeply internalized, interconnected knowledge that expands from a central, personal locus point.

When everyone at a high level has a huge amount of (technical) understanding, much of what separates the great from the very good is deep presence, relaxation of the conscious mind, which allows the unconscious to flow unhindered.
This is a nuanced and misunderstood state of mind that when refined involves a subtle reintegration of the conscious mind into a free-flowing unconscious process.
The idea is to shift the primary role from the conscious to the unconscious without blissing out and losing the precision the conscious can provide.
Compare to putting your attention to your peripheral vision while reading a book, then putting your attention back on the book without losing the peripheral.

In every discipline, the ability to be clearheaded, present, cool under fire is much of what separates the best from the mediocre.
If one player is serenely present while the other is being ripped apart by internal issues, the outcome is already clear.
The prey is no longer objective, makes compounding mistakes, and the predator moves in for the kill.
This issue is even more critical in solitary pursuits such as writing, painting, thinking, or learning.
In the absence of continual external reinforcement, we must be our own monitor, and quality of presence is often the best gauge.
We cannot expect to touch excellence if “going through the motions” is the norm of our lives.
If deep, fluid presence becomes second nature, then life, art, and learning take on a richness that will continually surprise and delight.
Those who excel are those who maximize each moment’s creative potential – for these masters of living, presence to the day-to-day learning process is akin to that purity of focus others dream of achieving in rare climactic moments when everything is on the line.
The secret is that everything is always on the line.
If we have any hope of attaining excellence, let alone of showing what we’ve got under pressure, we have to be prepared by a lifestyle of reinforcement.
Presence must be like breathing.

Practice the ebb and flow of stress and recovery.
Instead of working until you are exhausted, push yourself to a healthy limit, then recover for a minute or two, and push yourself again.
Create a rhythm of intervals. With practice, increase the intensity and duration of your sprint time, and gradually condense rest periods.

When Garry Kasparov handled his occasional lack of confidence by playing the chess moves that he would have played if he were feeling confident.
He would pretend to feel confident, and hopefully trigger the state.
Step by step, Garry would feed off his own chess moves, until soon enough the confidence would become real and Garry would be in the flow.
In one way of looking at it, Garry was not pretending. He was not being artificial. He was triggering his zone by playing Kasparov chess.

All of the learning principles discussed in this book spring out of the deep, creative plunge into an initially small pool of information.
Study positions of reduced complexity.
Apply internalized principles to increasingly complex scenarios.
Take a single technique or idea and practice it until we feel its essence.
Gradually condense the movements while maintaining their power, until we are left with an extremely potent and nearly invisble arsenal.
Focus on a select group of techniques an internalize them until the mind percieves them in tremendous detail.

Once we have felt the profound refinement of a skill, no matter how small it may be, we can then use that feeling as a beacon of quality as we expand our focus onto more and more material.
Once you know what “good” feels like, you can zero in on it, search it out regardless of the pursuit.

Go to Amazon

Recommend: Pragmatic Thinking and Learning: Refactor Your Wetware

27 Jun

Software development happens in your head. Not in an editor, IDE, or design tool. You’re well educated on how to work with software and hardware, but what about wetware—our own brains? Learning new skills and new technology is critical to your career, and it’s all in your head.

In this book by Andy Hunt, you’ll learn how our brains are wired, and how to take advantage of your brain’s architecture. You’ll learn new tricks and tips to learn more, faster, and retain more of what you learn.

You need a pragmatic approach to thinking and learning. You need to Refactor Your Wetware.

Programmers have to learn constantly; not just the stereotypical new technologies, but also the problem domain of the application, the whims of the user community, the quirks of your teammates, the shifting sands of the industry, and the evolving characteristics of the project itself as it is built.

We’ll journey together through bits of cognitive and neuroscience, learning and behavioral theory. You’ll see some surprising aspects of how our brains work, and how you can take advantage of the system to improve your own learning and thinking skills.

In this book you’ll learn how to:

  • Use the Dreyfus Model of Skill Acquisition to become more expert
  • Leverage the architecture of the brain to strengthen different thinking modes
  • Avoid common “known bugs” in your mind
  • Learn more deliberately and more effectively
  • Manage knowledge more efficiently

Go to Amazon