更多

Blogs

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.

Enabling Continuous Delivery (CD) in Enterprises with Testing

I spoke about "Enabling Continuous Delivery (CD) in Enterprises with Testing" in Unicom's World Conference on Next Generation Testing

I started this talk by stating that I am going to prove that "A Triangle = A Pentagon". 

A Triangle == A Pentagon??

I am happy to say that I was able to prove that "A Triangle IS A Pentagon" - in fact, left reasonable doubt in the audience mind that "A Triangle CAN BE an n-dimensional Polygon".
Confused? How is this related to Continuous Delivery (CD), or Testing? See the slides

Blog post by Anand Bagmar
30 July 2014

Original Link

Burn-up agenda

A burn-up agenda tracks progress towards the planned topics for a workshop. It can be used for any meeting, but is especially useful for time-boxed workshops with a list of topics to be covered.

Burn-up agendas emerged from intensive brainstorming workshops, such as inceptions and ideations. Even though such workshops invite broad discussion, typically they have a time box and must cover a few topics, achieving the desired outcome.

burnup-agenda1

agenda at 8:00 am

burnup-agenda2

agenda at 9:20 am

burnup-agenda3

agenda at 10:50 am

burnup-agenda4

agenda at noon

The sequence of photos shows a burn-up agenda on different times. Starting at 8 am, when…

Blog post by Paulo Caroli - Blog
30 July 2014

Original Link

Learning Vs. Performance -- The Dichotomy

The shift has happened. The focus has moved from “learning” to “performance”. “Training” as a panacea for all ills – from lack of productivity to lack of motivation, attrition, and lost profits – is losing its power. Our education system had inculcated the belief that “learning” is all about gaining information and knowledge and being able to remember that long enough to answer exam questions. The standardized tests verified everyone’s capabilities against the same parameters. The lucky few whose capabilities matched the parameters came out with flying colors. The rest of us went on to believe we were stupid or

Blog post by Sahana Chattopadhyay
30 July 2014

Original Link

How technical community groups fail the technical community

Like many software developers, I could easily spend every single night of the week at different user groups dedicated to areas of my profession I’m interested in.  Meetup.com has made organising and publicising these groups a far simpler task so there are usually a couple of new group announcements floating past my inbox each week. […]

Blog post by Andy Marks
29 July 2014

Original Link

Ruby Hash

One of the popular feature’s of Ruby’s Hash object is that you can specify a default value for entries in the hash. For example, a common use case is to count the frequency of objects in an array.

hash = Hash.new
%w( orange red blue orange ).each do |colour|
  hash[colour] ||= 0
  hash[colour] += 1
end

# hash => {"orange"=>2, "red"=>1, "blue"=>1} 

Using the Hash initializer we can specify the default value for the hash as 0, which simplifies our code:

hash = Hash.new(0)
%w( orange red blue orange ).each { |colour| hash[colour] += 1 }

# hash => {"orange"=>2,

Blog post by Jaco Pretorius
28 July 2014

Original Link

Final part of Collection Pipelines

In this final installment I touch on laziness, parallelism, and immutability then conclude by outlining when we should use collection pipelines.

Blog post by Martin Fowler
28 July 2014

Original Link

photostream 70

Cape Arago, OR

Blog post by Martin Fowler
26 July 2014

Original Link

Difference between sorted, sortWith and sortBy in Scala

Scala collections provide you three options for sorting: sorted( ), sortWith( ) and sortBy( ). Here is a simplified explanation:

sorted
Will sort the list using the natural ordering (based on the implicit Ordering passed)

sortBy (an attribute)
Sort by a given attribute using the attribute's type.
e.g. given a list of Person objects, if you want to sort them in ascending order of their age (which is an Int), you could simply say: personList.sortBy(_.age)

sortWith (a function)
Takes a comparator function. Useful when you want to specify a custom sorting logic. 
e.g. if you want to

Blog post by Gurpreet Luthra
26 July 2014

Original Link

Creating Irreversible Migrations in Rails

This is not something I do very often (or that I recommend at all), but when you need to mark a migration as irreversible, this is how you would do it.

class Example 

Again, use with care. Happy coding.

Blog post by Jaco Pretorius
25 July 2014

Original Link

Hacking ThoughtWorks recruitment (Part 4 – Technical interview)

This is the fourth article I’ve written on the ThoughtWorks recruitment process (for developers) and today I’m discussing the last developer-specific activity – the technical interview. The technical interview normally follows a successful pairing interview and the objective is to have a conversation with the candidate about their views on technology beyond coding.  For senior […]

Blog post by Andy Marks
24 July 2014

Original Link