jeudi 15 mars 2012

Book review: Extreme programming Explained

Extreme programming Explained
Embrace change 2nd Edition
Written Kent Beck with Cynthia Andrea & Forewords by Eric Gamma
ISBN-13: 978-0-321-27865-4


My opinion... 6/10. I like & follow some XP practices since at least 6 years at work and in my homework.....But, let's get started with more details about the book, i hope it help you deciding if you would read it or not!

The author presents XP in 3 steps. First he presents XP's values. This part looks very long but they are the reason why XP is. And Values & Principles are notions that you can take in your bag for your own lifestyle improvement! Too much psychological to me (but maybe it can push for change like a hidden message)

Communication,Simplicity,Feedback,Courage,Respect are basic XP values.

Chapter about Principles was quick & full of interest. They are: Humanity, Economics, Mutual Benefit, Self-Similarity, Improvement, Diversity, Reflection, Flow, Opportunity, Redundancy, Failure, Quality, Baby Steps and Accepted Responsibility. In fact they are just global notions to give a better view of what the practices are intended to accomplish.

I read the chapter about Practices really easily. Author describes team & resources organization, "Sit together" or in other words build a comfortable open space while maintaining place for personal space,
install place for project informations (to quickly see how projects goes).

About "pair programming", it give some advice that we could follow. In my own experience of "pairing", i was a bit frustrated at the end of day. I felt i should have make much more. But after, reading i think i could plan more dev in pair!

Stories definition is also really good. And it was follow by cycles definition. The "quick iteration" and the "quarterly cycle". Priority management of user stories and how put in place a slack of task that the team can made (refactoring, optimization, design, research on a future topic) without interfering with new features development.

Ten-minute build is something we should work. The quicker you have feedback, the quicker you can change or fix! Continuous integration, Test-First are also something i use but being more Extreme could help!

Incremental Design is the last but not the least as XP is about change. It explain why we try to start with a basic & simple design and every time we need, we improve it based on experience & feedback.

The corollary practices are: customer involvement, incremental deployment, Team continuity, Shrinking teams, root cause analysis, shared code, code & test, single code base, daily deployment.

A chapter talk about roles in XP team.But in the end of this book the 2 most interesting chapters from my developer point of view are 13 and 14. Chapter 13 talk of testing (first, early and often) of test automation 

I think that deploy a beta version at the end of each iteration or at least at the end each important user story implementation to use & demonstrate, is a target i should keep in my mind.

And 14 is about design (it's funny as we are talking about design at work those last days...). The author recall that design for design is not a good thing and that perfection is not in this world. Even if you start with 2 weeks of design, you will have to rework it a some point because of change. So use basic principles, KISS, DRY, but don't procrastinate yourself when, based on experience, feedback and need, you have to modify the design!

I had a look for the remaining chapter but they are more for manager, describing how XP can scale when team or organization grows, how measure XP usage and effectiveness.

mardi 6 mars 2012

_MSVC_VER and its value in the last decade.

You may suspect that there is logic behind that but the _MSV_VER value for cl.exe (cl.exe /?) in VS'2011 is 1700.

The old are:
MSVC++ 10.0 _MSC_VER = 1600
MSVC++ 9.0 _MSC_VER = 1500
MSVC++ 8.0 _MSC_VER = 1400
MSVC++ 7.1 _MSC_VER = 1310
MSVC++ 7.0 _MSC_VER = 1300
MSVC++ 6.0 _MSC_VER = 1200
MSVC++ 5.0 _MSC_VER = 1100

lundi 5 mars 2012

Today 5 AM, i was looking how i could easily migrate some old VS'2008 solution to the VS'11 Beta for testing.

The common upgrade method worked (devenv.exe /upgrade .sln) BUT.....
I used the several vsprop files a.k.a "Visual Studio Property Sheet" to store several properties relative to my computer. Include path to boost, and all the externals library, framework i used were in those files. But for them the upgrade result was a lit bit surprising.

For  each .vsprop file i used, it create a new one call .prop. They was not empty, but they doesn't really contained what i expected. Both .vsprop and .prop are xml file but they have different syntax & schema.

It look like Visual Studio Dev Team didn't automatically translate the old  format into the new.

But it can be easy to fix. As you can browse for those files through the VS Property editor and add all the include you need, all the specific setting you want and that per configuration. Save those file and if you share them across multiple solution, you do it only one times.

I missed the jump from VS'2008 to 2010 and that change is bit weird, but I suppose it lead to a better per project configuration instead of letting user using the old IDE VC++ folder configuration. It comes more easy to share project and 'build' configuration.

jeudi 1 mars 2012

VS next look&feel...

Defaut style is really bad! I will try some customization...
Hi,

A very powerful C++ toolkit i use a lot is Boost and when i started today my test of the new Visual Studio Beta, my first expectation was that Boost can be build with this new C++ compiler.

So i got a new copy of the Boost source code (zip package of the v1.49) and just follow the step describe here. And now i think that i get back tomorrow morning to check if every x86 and x64 binaries for msvc11 are ready.