Archive

Archive for the ‘Pair Programming’ Category

Code Review – Standing on the shoulders of smart people

March 19, 2007 4 comments

A veryintelligent person once said:
“If I have seen further it is by standing onthe shoulders of Giants.”
The person in question, is of course none other than Sir Isaac Newton. He was able to go further with his discoveries because others had solved some of the details already and provided a layer of abstraction for him to improve upon.

When doing a code review,I often encounter a little defensiveness. Since we practice pair programming almost exclusively, this code review usually happens when reviewing code (as a pair) to make a change for a new feature or bug fix. Often the code was not written by the pair reviewing it so it becomes easy to get offensive instead of defensive.Either way, thisworks against the purpose of the code review and can be solved by thinking aboutthe code reviewin a different way…

The pair (or person) who wrote the original code was dealing with different complexities and challenges – they solved these problems with the code in question. Our job when reviewing is not to solve these same challenges but rather to look at *theirsolution* and decide how it could be improved. In this light, it is very unfair to compare our improved solution with theirs since we had a very different task. This is a subtle but very important distinction. Remember this when doing code reviews and it should help you to move beyond the personalities and egos involved (well, maybe :)).

How do *you* solve the human challenges of a code review?

Jonathan Cogley is the CEO and founder of Thycotic Software, a .NET consulting company and ISV in Washington DC. Our product,Secret Server, is a secure web-based solution for teams to secure their passwords. Where do you keep your passwords or do you use the same one everywhere (snicker)?

Will TDD become mainstream?

February 25, 2007 3 comments

I have been asked a number of times in the last few years if I think TDD (Test Driven Development) will go mainstream. Firstly, we need to agree on what mainstream is – Wikipedia does not give any hard numbers (http://en.wikipedia.org/wiki/Mainstream) but it seems like 20% would be a good number for software development (I pulled this out of thin area – please share your thoughts). For TDD to have that much mindshare (in the stubborn software development world) would firmly seat TDD as an established and accepted way of developing code. So how much mindshare does it have now? Again I don’t know how you would get a measure (Gartner studies maybe?) but my experiences with software development in the Washington DC Metro area makes me think it is far less than 20%.

Will this change – will it gain wider support? I don’t think so for the following reasons:

  • TDD takes discipline – many developers don’t have discipline when coding.
  • TDD requires “buy in” at all levels within an organization.
  • TDD takes time to learn the practice effectively – this is difficult given the deadlines most teams face.
  • TDD works well with Pair Programming which tends to be too contentious to get by most management teams.
  • It is difficult to produce hard evidence for TDDs benefits since software is abstract and hard to compare across projects (and seldom would you build the same software twice just to compare techniques). This evidence will be necessary to persuade many decision makers.

Please don’t think that I am bashing TDD or Pair Programming – we use both everyday and believe in their enormous value! I am happy that TDD is not mainstream since this gives a great competitive edge over other software development teams.

If you are looking for a position with a company that believes in and practicesTDD and Pair Programming, we are hiring.

Jonathan Cogley is the CEO and founder of Thycotic Software, a .NET consulting company and ISV in Washington DC. Thycotic Secret Server is a secure web-based solution to both “Where is the password for this router?” and “Who has the password for our domain hosting?”. Secret Server isthe leader in secret management and sharing within companies and teams.

Looking for the perfect job where you can do Test Driven Development and Pair Programming?

January 22, 2007 Leave a comment

Thycotic is growing once again – we are looking for another top calibre developer to join our team – this is a great opportunity topractice agile techniques on the Microsoft .NET platform from an experienced team while working on great productsand with interesting clients.

Weare looking for a highly skilled, motivated .NET software developer to join our consulting team. We are a unique employer sincewe practice Test Driven Development and Pair Programming and focus on constantly improving our team’s abilities and communication.

Requirements for this position include:

  • You live, breathe, sleep, eat and drink code (preferably of the C# or VB.NET flavor)
  • You want to develop using Test Driven Development (that is *ALL* we do!)
  • You enjoy or are prepared to try Pair Programming
  • You have a good understanding of Object Oriented principles, the .NET Framework, ASP.NET, relational databases and web application development
  • You have the permanent legal right to work in the United States
  • You have excellent written and spoken English
  • You are willing to work in the Washington DC Metro Area

Preferred but not absolutely required:

  • You have strong experience with ASP.NET/ASP.NET Web Services and/or WinForm development
  • You are very familiar with Microsoft SQL Server – stored procedures, triggers, functions and general SQL
  • You have a Bachelor’s degree(or further study) in Computer Science

Intangible criteria:

  • Prepared to do what it takes to deliver value to the client
  • Work with others in an environment that encourages new ideas and processimprovement

About Thycotic:

Thycotic is a developer-minded consulting company and ISV operating in the Washington DC area. The company is a leader in agile techniques on the Microsoft .NET platform including Test Driven Development and Extreme Programming. We are a Microsoft Gold Certified Partner with stronginvolvementin upcoming Microsoft technologies. We continually deliver successful projects that are on time and on budget to happy customers while developers maintain sensible hours, vacation schedules and drink lots of FREE soda. Thycotic also offers opportunities to perform training and work on our own software products. Stop reading about TDD and come join Thycotic to practice it!

The position carries a very competitive salarybased on skills and experience. It also includes an annual incentive bonus based on mutual goals. The benefits include healthcare, retirement and generous vacation and conference time. Thycotic always looks to provide the optimal working experience (however possible) to retain the most talented developers. Thycotic’s office is located in the trendy Dupont Circle area with plenty of things to do after work and all the excitement of a great cosmopolitan city!

Please send your resume and a brief summary explaining your interest in TDD and Thycotic totdd_me_now@thycotic.com

(Sorry, no visas orsponsorship available, no telecommuting or remote working)

(TDD Job, Test Driven Development Job, TDD C#, TDD VB.NET, NUnit Job, NUnitAsp Job, NAnt Job, CruiseControl.NET Job)

New office with Pair Programming team room

August 19, 2006 Leave a comment

We have just moved our offices from the Vienna, Virginia area to downtown Washington DC. We now have more space for our team room and have tried new strategies to minimize wiring and optimize communication across the team. Here is a picture of 2 pairing stations in the new team room.

new team room

The desks are part of the GALANT series from IKEA and we used their new SIGNUM cable holder which screws into the underneath of the desk at the back. This means no cables on the floor!

Next step is to get whiteboards and properly wire up our Squeezebox for music during the day.

Jonathan Cogley isthe CEO and founder of Thycotic Software, a .NET consulting company and ISV in Washington DC. Thycotic has just released Thycotic Secret Server which is a secure web-based solution to both “Where is my Hotmail password?” and “Who has the password for our domain name?”. Secret Server isthe leader in secret management and sharing within companies and teams.

Pair Programming presentation tonight at NOVASQL

July 24, 2006 Leave a comment

I will be presenting on Pair Programming at the Northern Virginia SQL Server User Group tonight. I have done this presentation several times before but it is always fun to hear new perspectives – tonight should be interesting to hear DBA turned developer opinions (many people in this user group seem to fall into that category).

Please stop by and share your experiences.

** There will be several door prizes including two free 5 user license packs for our product, Secret Server. **

We (Thycotic) arealso sponsoring the event to supply pizza and soda.


Jonathan Cogley isthe CEO and founder of Thycotic Software, a .NET consulting company and ISV in Washington DC. Thycotic has just released
Thycotic Secret Server which is a secure web-based solution to both “Where is my Hotmail password?” and “Who has the password for our domain name?”. Secret Server isthe leader in secret management and sharing within companies and teams.

Pair Programming at DC Extreme Programming User Group tonight!

June 20, 2006 Leave a comment

I will be presenting on Pair Programming (something wepractice daily at Thycotic) tonight at the Washington DC Extreme Programming User Group. The session involves an exercise (which I have blogged about before) but it is always interesting to hear peoples opinions and past experiences. Pair Programming is definitely something that can have great effect in the right setting but requires disciplined practices and the right people to work effectively.

Please stop by to join the group which meets from 6:45-8:45 pm at the SE branch of the
Washington DC Library.

We will also be giving away a 10 user license to our product Secret Server (worth $229) to some lucky attendee. If you haven’t tried Secret Server yet – you can download it here– it is the password repository that every development team should be using!

What motivates software developers?

May 15, 2006 1 comment

Developers who simply work for a paycheck have
different priorities so I am going to ask you to forget about them for a
minute. If you joined software development out of pure passion for the
industry then you have a different agenda. Building software is a very
creative and constructive processbut the intangible nature of software
makes the parallels to traditional engineering difficult. The job titles
in our industry typically reflect some form of engineering but it seems to have
lost its impact (Do most people think of a software engineer and a civil
engineer having the same qualities?). Yet we do still share many of the
same feelings and priorities as conventional craftsmen.

Things like:

  • A tendency towards perfectionism (ever caught
    yourself tweaking the UI or code a little to get it aligned just
    right?)
  • Pride for the end product
  • Strong sense of ownership
  • Criticism of other work
  • Responsibility for flaws
  • Strong affection for our tools of the trade
    (editors, IDEs, utilities, home grown tools)
  • Strong need to use new tools and
    processes

Some agile practices (collective code ownership,
pair programming, good enough) seem to reduce some of these basic craftsman
tendencies but they still exist in some form.

Unfortunately these traits don’t always align with
the business interests of the project so we have to balance the different
priorities to achieve the optimal environment. How can we understand these
tendencies to enjoy our work more and motivate others on our team?

  • Introduce new technologies andtechniques
    in a controlled manner so that the team is able to try new things without
    taking large risks. Be sure to include developers in this decision
    making process – after all they should be the ones ‘in the know’ on new
    technologies, right?
  • Practice pair programming to encourage
    communication, sharing of skills and team building – this can bring a lot of
    satisfaction to a developer team without changing the tasks or the priorities
    of the project.
  • Encourage participation in community developer
    events (user groups, code camps), blogs (share links across the team), books
    (monthly bookshelf anyone?)and conferences.
  • Avoid generalized training – in my opinion this
    tends to serve the paycheck programmer more than the dedicated ones.
    Instead prefer specialized training which focuses on particular
    newtechniques that have already been piloted and now use that training
    time to get a jumpstart and avoid early pitfalls.
  • Interesting projects – this is tough to control
    since businesspriorities and budgets usually dictate the schedule
    however there are often ways to make projects more interesting without risking
    timeline or budget.
  • Satisfy your customer – there is nothing better
    than the feeling of a job well done to motivate a developer
    team!

Some of these ideas have been very
successful on our projects. What motivates you and your developer
team?

BTW – We are looking for another TDD .NET Developer to join our developer
team
.

Jonathan Cogley isthe CEO and founder of
Thycotic Software, a .NET consulting company and ISV in Washington DC.
Thycotic has just released
Thycotic Secret
Server
which is a secure web-based
solution to both “Where is my Hotmail password?” and “Who has the password for
our domain name?”. Secret Server isthe leader in secret management
and sharing within companies and teams.