Hi All
I am currently in chapter 7 of Pragmatic Programmer, but would like to start the discussion about chapter 1
My 2c on chapter 1 and the tips
Tip 1 : Care About Your Craft
Nuff said..
Tip 2: Think! About Your Work
This is something I do way too less, and most others I work with as well.
We just want to get started, code or hack something together.
But thinking beforehand saves lot of time...
I am good at thinking on paper, next to the whiteboard, brainstorming, everything works much better than sitting in front of a screen.
How do you "think"?
Personal note: Sometimes during doing TDD I get into this "brute force coding" mode, where I don't think too much, but I just want to get the test to green. Which is NOT good I think. It would be better to spend more time thinking about the problem on paper and then start writing tests and coding...
Just my personal experience with TDD
Tip 3: Provide Options, Don't Make Lame Excuses
Something I learned from my boss Adam Cogan. Always give options AND a recommendation.
Tip 4: Don't Live with Broken Windows
Here Refactoring comes into my mind, and I think that the Java guys with their tools (Eclipse) are way ahead of me or us (.NET + VS2010 + Resharper). Eclipse has huge amount of refactoring's out of the box...
As soon as you see a broken window, fix it or apply some Ninja refactoring's
Tip 5: Be a Catalyst for Change
I am big proponent for no big designs upfront, but for changes during project life.
I don't fear changes anymore since I am having a lot of automated tests (unit+integration) in place in our projects and VS2010+Resharper on my toolbelt.
Tip 6: Remember the Big Picture
We are using Scrum and work "against" a Prioritized Backlog. That helps a lot on keeping the focus, and in the Sprint review meetings the product owner gives feedback and drives the whole project.
Tip 7: Make Quality a Requirements Issue
Because we are doing Scrum, we have a list of Done criteria and each user story has certain acceptance criteria.
Those lists act as quality gates and help us to focus on quality, although we are not following them always...
Tip 8: Invest Regularly in Your Knowledge Portfolio
I am not so good at that one, especially: "Learn a new language every year" (I played with F# recently, but didn't really learn it. My last new language was
VB.NET ~3 years ago)
Regarding "Get wired" I heard from a lot of other developers, that they try to focus more. Less noise, less blogs, less Twitter, less Newsletters, Less Mailings lists, but more focus on high quality. I like the idea, but don't follow it ... yet...
Tip 9: Critically Analyze What You Read and Hear
I am naturally quite skeptic to a lot of things, not just Computer related stuff.
I trust to information that I am closer to more than other info from sources that I don't know (this is pretty obvious :-)
E.g. People in my team, company = High trust
Blogs from Random website = low trust
etc...
Tip 10: Its Both What You Say and the Way You Say It
I don't follow this rule very much... as you can read in this email ;-)
To me it comes down to who i am talking to: Twitter, Internal email, Client, Meeting with Boss, ...
We (my company) have actually a rule that you are not allowed to send an email to a client without double checking it by one of your peers. Once you got 5 emails right without any major problem, you are allowed to send emails without checking...
There is actually a lot more in chapter 1, but that's my quick main picks out of it...
What improved myself a lot was sitting (pairing) with other developers (especially better ones, masters).
Not sure yet if the book covers this tip: Learn from others
There are so many things that you pick up so quickly by just pairing for 4hours with another dev, even if it is a Junior developer, there is always something that you learn from someone else. Another tool, a communication problem tip, another way of thinking, another way to explain something, etc...
- What is your opinion on Chapter 1?
- What is your experience with doing TDD?
- How are you "thinking"?
- Are you trying to get wired as much as you can or try to unplug more?
PS
I love that book and regret that I didn't read it 15 years ago.... just realized that it was published in the year 2000 ;-)
.peter.gfader.