Speaking on TDD at the CMAP Architect Group in Maryland tonight (2/20/2007)

I will be presenting on Test Driven Development at the CMAP Architect Group in Maryland.  Session details and directions here.

Abstract: TDD is hard. It is hard because we have to unlearn the way many of us have always coded. Instead we have to start writing unit tests and what is more; we have to write the test BEFORE the code. Come along to learn the history, theory and then participate in an onscreen coding session TDD-style. There will be lots of opportunity to ask questions and see if TDD is for you.

If you are looking for a position with a company that believes in and practices TDD and Pair Programming, then don’t forget that we are hiring.

See you tonight!

We will also be giving away two free 10 user licenses to Secret Server ($389 each!) at the meeting.

 

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 is the leader in secret management and sharing within companies and teams.

Want a new email signature? (ShorterSigs)

ShorterSigs is a new service from Thycotic Software which solves the problem of communicating relevant contact information (and even your photo!) without cluttering up your email messages.  This is just what every techie needs whether posting to forums, newsgroups or just a friendly chat among your peers.

Here is my public ShorterSig:
http://shortersigs.com/50454T3F7R3N

Get yours here.
http://shortersigs.com

They are secure, customizable and free.

Shortersigs is built in C# and ASP.NET with a Microsoft SQL Server backend.  It was also built test first and builds continuously.

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 is the leader in secret management and sharing within companies and teams.

When the developer tools fail

As developers, we pride ourselves on our analytical skills and being able to quickly deduce a problem.  Being “engineers” and “craftsmen” we use tools to gain insight and learn about a problem while we determine our diagnosis.  Every now and then, the tools fail.  This evening I was dabbling with some licensing code in one of our dependent .dlls to troubleshoot a problem that one of UK customers is having.  We had our suspicions that the problem is a globalization issue with dates when not running on en-US.

Members of our team know that I frequently brag about avoiding the debugger – this seems to be a rite of passage amongst Test Driven Development developers who seldom require a debugger since they take such rapid but incremental steps when working.  When I am completely puzzled and need to figure out the logic in some code, my first steps are usually:

  • Write a few more tests to demonstrate the problem/requirement
  • Refactor the code to a form that I can understand (see scratch refactoring)
  • Make some reasonable guesses and add some Console.Outs (getting desperate at this point)
  • Finally, crumble and add some breakpoints

It was tough to follow this pattern tonight since much of the code is sealed (it is licensing code after all!) and not very amenable to testing internals.  So I started on refactoring the key elements and putting in some strategic Console.Outs based on my assumptions – BUT THEY DIDN’T OUTPUT.  This had me further puzzled so I added some breakpoints and next I saw that it just doesn’t seem to be executing the correct code.  See this…

Crazydebugging

It is breaking on the “return false” even though an exception is being throw on the line before (plus it never actually hit the earlier breakpoint!).

After deleting .dlls, whacking bin/obj folders, restarting VS.NET, looking for old rogue devenv processes and finally rebooting the box – I am a little more than stumped.  For those interested, I am using Visual Studio .NET 2003 (yes, we still do lots of work in 2003) and with Resharper 2.0 (#259) as my debugging entry point.  I am going to revisit the problem with Kevin tomorrow with fresh eyes (he already confirmed our suspicions about the globalization/datetime issue) and I will report the results from this craziness if they are interesting.

I found this exercising very interesting as it really highlighted how dependent we are on our tools – even though I more or less knew the issue, I was powerless to successfully fix it without my tools cooperating.

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 is the 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?

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

We are looking for a highly skilled, motivated .NET software developer to join our consulting team.  We are a unique employer since we 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 process improvement

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 strong involvement in 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 salary based 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 to tdd_me_now@thycotic.com

(Sorry, no visas or sponsorship 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)

TDD Programmer Internship with Thycotic

We are currently offering a programming internship on our developer team.  This is a great opportunity to improve your skills and see if you have what it takes to become a Thycotic developer.  We practice Test Driven Development, Pair Programming and Continuous Integration.  We are a Microsoft Gold Certified partner and are breaking new ground in the security space with products such as Secret Server and our Two Factor Authentication technologies.

If you are looking for a developer minded company with a continual focus on growth, team learning and technical excellence then apply now.  This role is paid, comes with free soda (!) and a trendy workplace in Dupont Circle, Washington DC.

You can find all the details and instructions to apply here.

 

Jonathan Cogley is the CEO and founder of Thycotic Software, an Agile .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 is the leader in secret management and sharing within companies and teams.

5 things you don't know about me (probably)

This has been going around for a while and Andy finally got me.

  1. I was born and raised in Johannesburg, South Africa (yes, that gives me a funny accent!).
  2. I worked for a few years in London (my folks are British).
  3. My first professional programming language was Perl (and I still dabble in it every now and then).
  4. I studied Microbiology and Genetics at college and was supposed to go into Biotechnology before the programming bug kicked in.
  5. I like to fly kites – I started with two line sport kites but got a four line a few years back and love it.

Johannesburg, South Africa  4 line Revolution kite

Ok – so perhaps not exactly dirty secrets but something other than the 1 and 0’s, right?

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 is the leader in secret management and sharing within companies and teams.

 

Thycotic presented in Rockville, MD at WinProTeam

This last Wednesday, myself and two other members of the Thycotic team presented at the WinProTeam Rockville meeting.

Topic: Data Access Strategies for your .NET Development

Three sessions presented by members of our Thycotic team – John Morales, Ryan Olshan and me.

1. ADO.NET Interfaces and how to be database agnostic
Ever wanted to support Oracle and SQL Server for your software product? We will look at the ADO.NET interfaces and how you can write more generic code by using them. The free open source API Thycotic.Data also makes working with multiple databases easy.

2. ORMapping with NHibernate
ORMapping is the process of creating objects that correlate to your database model. In other words class representations of your tables. There are many products/frameworks currently available to help/automate ORMapping tasks in .NET, in this session will examine NHibernate, a port of the Java Hibernate which has a very strong following in the Java community. I'll show you why.

3. Introduction to LINQ
Explore the upcoming set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations.

We gave away a 10 user license to our Secret Server product for managing team passwords (worth $389)!  Congrats Sam!

 

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 is the leader in secret management and sharing within companies and teams.

Bait and switch leaves a sour taste

I am surprised at a new trend (ok, so only based on 2 experiences recently) but companies will make their product available for free (as in beer), get a lot of users and market share - then discontinue the free edition and start charging. 

While I understand the appeal of such a strategy, it does leave a very sour taste in the consumer’s mouth.  Paying for software is a good thing (heck, we charge for Secret Server) and everyone needs to be able to pay their bills … but why the deceit?

It is also an interesting situation as a software vendor since we may be able to get more market share if we gave our product away for free (actually we do for a single user) but we are very clear that it costs money for our core audience – administrator teams who want to securely share certain passwords.  I wonder how the competitors to these products feel about their actions.

I wonder if these companies would have gained *any significant* market share if their product had cost money from the beginning.

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 is the leader in secret management and sharing within companies and teams.

Presentations at WinProTeam - ADO.NET interfaces, Gentle.NET, LINQ, Refactoring

Unfortunately my co-presenters were not able to make the WinProTeam presentation due to unforeseen circumstances so I went it alone.  This meant that the topics had to change a little but the audience seemed agreeable.  The schedule for the evening changed to:

ADO.NET Interfaces

This is a favorite topic of mine since many people still seem to miss the boat with ADO.NET and use the boilerplate SQLConnection/SQLDataAdapter code everywhere.  This presentation explores IDbConnection, IDbCommand, IDataReader and the trusty DataSet/DataTable.  Using these interfaces makes your code much easier to support multiple database platforms (something that can be critical for an ISV / product vendor).  The presentation also encourages adoption of a centralized Data Access Layer (DAL). We have a free, open source DAL called Thycotic.Data which is hosted on SourceForge.

Gentle.NET (adhoc)

This session was meant to be John Morales giving us the gory details on NHibernate – something that John is very excited about.  Unfortunately my experience with NHibernate is limited to some simple samples that I toyed with.  We have used Gentle.NET extensively and have figured out most of the gotchas.  The two seem very similar to me so the audience was happy to hear about Gentle.NET instead.  We walked through the concepts of mapping business objects to tables using attributes and then various calls through broker and ObjectFactory to retrieve and persist data.  For the most part, we have been happy with Gentle.NET – we have written our own little helper class called GentleHelper which makes more complex queries a little easier.  One of the downsides we have found with Gentle.NET is the cryptic error messages and the poor error handling at times (for example, retrieving a record by id when it doesn’t exist throws an exception).

Intro to LINQ

Ryan Olshan was meant to give this session and provided the slides in his absence.  I was drawing on my memories of various sessions at the last PDC which discussed LINQ and DLINQ.  Altogether very cool stuff which is set to change the way we think about accessing data in C#.  After walking through Gentle.NET, LINQ definitely seems like a next generation technology – taking it to the next level.  Unfortunately I didn’t have any demo code since Ryan warned that it can make Visual Studio unstable to install the 3.0 bits - something I didn’t want to learn the hard way.

Refactoring

This session was a big departure from the Data Access theme but it has been a very popular topic with many groups.  It is all hands on with no slides – just coding.  I use a version of Martin Fowler’s refactoring example which was ported to C# by our very own Bryant Smith.  It involves refactoring a Statement method on a Customer class to add HTML capability – the idea is to refactor the code to gain:

  • understanding
  • ensure it communicates its purpose
  • make it more maintainable so that it can be extended for the new HTML capability


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 is the leader in secret management and sharing within companies and teams.

Thycotic is presenting at the WinProTeam Vienna meeting tonight (Wednesday 11/1 6-9pm)

Three sessions will be presented by Jonathan Cogley and John Morales of Thycotic Software at the WinProTeam User Group meeting in Vienna, Virginia tonight.

Theme: Data Access Strategies for your .NET Development

1. ADO.NET Interfaces and how to be database agnostic
Ever wanted to support Oracle and SQL Server for your software product?  We will look at the ADO.NET interfaces and how you can write more generic code by using them.  The free open source API Thycotic.Data also makes working with multiple databases easy.

2. ORMapping with NHibernate
ORMapping is the process of creating objects that correlate to your database model. In other words class representations of your tables. There are many products/frameworks currently available to help/automate ORMapping tasks in .NET, in this session will examine NHibernate, a port of the Java Hibernate which has a very strong following in the Java community. I'll show you why.

3. Introduction to LINQ
Explore the upcoming set of extensions to the .NET Framework that encompass language-integrated query, set, and transform operations.

** We will also be giving a FREE 10 user license for Secret Server (worth $229) to a lucky attendee!!! **


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 my Hotmail password?" and "Who has the password for our domain name?".  Secret Server is the leader in secret management and sharing within companies and teams.

 

More Posts Next page »