Home avatar

Thoughts and code

Time to Move On

So now it’s official. After 2 year with Cortex I am leaving. It was an extremely interesting period in my professional life. I was given an opportunity to work with so many great people and an outstanding group of developers, build a great team, exercise TDD/BDD development, experiment with agile processes, design and build systems that evolved the company business in electronic procurement and supply chain management. Among many other things that I could list here, I learned a big deal of human-related skills. In the business of software and computers, human skills are still one of the most important commodities that striving to acquire is necessary for any software developer that wants to be successful.

dynamic in the Wild

Today Jonathan and myself worked on a RESTful service that is responsible to create a new invoice. The design decision was to return HTTP status code 409 (Conflict) in case client tries to add more than once the same invoice. The code looked like this:

Compliment

Today, a work of two years has manifested itself as an ordinary fact.

An old project (2 years old) had to be re-opened for new features required by client. This is a project we started when I joined the company, back when team didn’t have any TDD skills. It was group’s first attempt to use BDD, combined with Mocking using Rhino.Mocks, NHibernate, WatiN, and some other tools and libraries that previously were never used. We executed tests using ReSharper 4.1 test runner and didn’t have build script to execute them automatically (build server was the next step after the project was done). So we tagged the project as a legacy project, and placed in the legacy projects repository (the one that had all the “fragile” code).

This Developer’s Life Podcast

The other day I was listening to This Developer’s Life podcast, episode 1 – Getting Fired. Please don’t confused, I am not getting fired (yet), but I find it very interesting how Rob formulated his experience. I also completely in agreement with Oren Eini. Being honest (not rude) is a key to successful work relationship. Dealing with people is not always logical, therefore the importance of way things are communicated sometimes exceed the message itself.

The Agile Samurai – Book

It is a great honour to work with the person who wrote the book I

image
image
just recently finished reading. The Agile Samurai is a mix of project management and software development. It’s a reality check helper if you are trying to run agile process in your company/team/project. The intention of this post is not to review the book, this is what I will do later at Amazon. Jonathan has managed to make me think of certain things in a different manner, maybe a little bit more realistic. There are a few new tools I can put under my belt (Inception Deck) to move forward with. The most important message from the book IMHO was not taking Agile literally as written - fluctuate, experiment, and question.

Time and Kids

This is not a technical post.

A while ago I was told that you always have time, you just don’t know how to manage it. I tried to resist to that person, knowing nothing about life of family with little kids. Yes, you can make “borrow” some time from family and kids, but that is not an option I would take.

The article below is a very accurate description of what it’s like, and highly recommended to those “that know better” :)

Creating BizTalk Message in Custom .NET Component

In my previous blog about consuming WCF service from BizTalk orchestration I wrote about how we’d invoke a service based on a document coming in and mapping it into the service request schema.

This time I had the input for the service coming from a context, and not necessarily from the document itself, and needed to be able to perform same service invocation, yet constructing request document dynamically with-in the orchestration. To simplify the process, I still pass in a document, and distinguish a field with the value I want to pass into the service. This way I don’t actually have to waste time on property promotion. The key here is to invoke a custom .NET component (GAC-ed singleton) to construct the message with the value(s) coming from the original message context.