Lots of our people have lots of opinions. Here are just a few of them

ThoughtWorks embraces the individuality of the people in the organization and hence the opinions expressed in the blogs may contradict each other and also may not represent the opinions of ThoughtWorks.

Kernel Extensions Versions between Mavericks and Yosemite

With the recent release of Yosemite I was curious to know which internals of OS X where updated, not only the stuff listed on a new features page.

For that I coded a script to extract the CFBundleShortVersionString entry from Info.plist present in almost all kernel extensions before the upgrade and after. You can check the table bellow for additions, removals and differences between Mavericks (OS X 10.9) and Yosemite (OS X 10.10) Kernel Extensions.

Kernel Extension Mavericks Yosemite
ATTOCelerityFC.kext 3.4.8  
ATTOExpressPCI4.kext 4.4.2  
ATTOExpressSASHBA.kext 2.0.0  
ATTOExpressSASHBA3.kext 1.0.5  
ATTOExpressSASRAID.kext 3.7.2  
Accusys6xxxx.kext 3.0.2  
AppleFSCompressionTypeLZVN.kext 56.92.1  

Blog post by Marco Valtas
24 October 2014

Original Link

Book Recommendations for a Tech Lead

I gave several training courses on being a Tech Lead and found myself giving a number of book recommendations. Although books are no substitute for experiential learning and close feedback cycles, they are useful as ways of introducing some key skills developers rarely practice in their day-to-day tasks.


A Tech Lead represents both the technical perspective to outside stakeholders, and often carries a business perspective back into the technical team. Conflict is inevitable and understanding how to negotiate to an optimal solution for two parties is a timeless skill.

Getting To YesGetting to Yes was one of my favourite books. It’s…

Blog post by Patrick Kua
24 October 2014

Original Link

Transcend USA on Twitter: "@twchad R&D is currently working on a Toolbox update to allow TRIM to be enabled on Yosemite."

Transcend USA on Twitter: "@twchad R&D is currently working on a Toolbox update to allow TRIM to be enabled on Yosemite.":

Transcend is going to enable TRIM support in Yosemite for its JetDrives. Couldn’t find this in any forums so I asked directly. Transcend USA gave me a timely response.

Blog post by Chad Wathington
23 October 2014

Original Link

Talking about Refactoring on the Ruby Rogues Podcast

Last week I sat with the Ruby Rogues - a podcast about development in the Ruby and Rails world (Avdi Grimm, Jessica Kerr and host Charles Max Wood). They have a regular book club, and their book this time was the Ruby edition of Refactoring We talked about the definition of refactoring, why we find we don’t use debuggers much, what might be done to modernize the book, the role of refactoring tools, whether comments can be used for good, the trade-off between refactoring and rewriting, modularity and microservices, and how the software industry has changed over…

Blog post by Martin Fowler
22 October 2014

Original Link

Why constrain your retrospectives?

Retrospectives are a wonderful tool for continued improvement and learning.  Yet, we often don’t retrospect on our retros!  I have often found that the grouping of topics is constrained by the format of the retro.  This week I tried an experiment to remove that constraint and was pleased with the results.

Imagine a team with mixed software delivery believes.  Bob loves to pair, yet Rob wants to work on his own.  Bob, and a few others put stickies up in the positive section.  Rob, and others, put stickies up in the improve section.  The team dot votes, and though the…

Blog post by JK Werner
21 October 2014

Original Link

Upgrading to Yosemite - Rails development

It was very simple to upgrade to Yosemite from Mavericks.

Once the OSX upgrade is done, follow these steps to get back to action.

1) Open XCode to install the components
2) Install command line tools
        xcode-select --install
3) Reinstall Ruby
     CC=/usr/bin/gcc  rbenv install 2.1.2
4) Install bundler, libv8 and therubyracer gems
      gem install bundler
      gem install libv8 -v '' -- --with-system-v8
      gem install therubyracer -v '0.12.1'

If you are using RubyMine, you have to install Java. Apple prompted me to download this when I…

Blog post by Venkatesh Nannan
21 October 2014

Original Link

Do we need a Tech Lead?

A common question I hear is, “Is the Tech Lead role necessary?” People argue against the role, claiming a team of well functioning developers can make decisions and prioritise what is important to work on. I completely agree with this position in an ideal world. Sadly the ideal world rarely exists.

Even when perfect conditions exist during which team members talk to each openly, discussing pros and cons before arriving at an agreed solution, it doesn’t take much to upset this delicate balance. Sometimes all it takes is for a new person joining the team, a person leaving or some…

Blog post by Patrick Kua
21 October 2014

Original Link

Bliki: SacrificialArchitecture

You're sitting in a meeting, contemplating the code that your team has been working on for the last couple of years. You've come to the decision that the best thing you can do now is to throw away all that code, and rebuild on a totally new architecture. How does that make you feel about that doomed code, about the time you spent working on it, about the decisions you made all that time ago?

For many people throwing away a code base is a sign of failure perhaps understandable given the inherent exploratory nature of software development, but still…

Blog post by Martin Fowler
20 October 2014

Original Link

Types don't substitute for tests

When reading discussions about the benefits of types in software construction, I've come across the following claim:
When I use types, I don't need as many unit tests.
This statement is not consistent with my understanding of either types or test-driven design. When I've inquired into reasoning behind the claim, it often boils down to the following:
Types provide assurance over all possible arguments (universal quantification). Unit tests provide assurance only for specific examples (existential quantification). Therefore, when I have a good type system I don't need to rely on unit tests.
This argument does not hold in my experience…

Blog post by Chris Ford
19 October 2014

Original Link

Social Learning is Voluntary; Collaboration Platforms are Enablers

I love this description from Jane Harts post: 
FAUXIAL LEARNING is about forcing people to use social media in courses – or even in the workplace –  and then confusing compliance with engagement (and even worse) learning.

This totally hits the nail on the head. As an Instructional Designer and L&D Consultant, I am often asked questions like:

1.What social collaboration platform should we use? 
2.How do we get people to collaborate
3.Oh, but they don't want to share. How do we make them share their learning?

My  first reaction is to say: "You can't make people share or get anyone to collaborate." Then,

Blog post by Sahana Chattopadhyay
19 October 2014

Original Link