Today I spent 14 minutes with a team trying to convert a list of text into html elements.

That’s quite shocking.

However, I’ve found this to be not that exceptional in our industry. I often see people manually banging out lines with minor differences without trying to take advantage of their tools.

I’m determined to make this unpleasentness into a diamond from the rough. So I’m asking you to use this Kata with a team (or yourself) when you notice things being done a tad manually.

Figure out the quickest way and figure out the easiest way to solve it. Share and align your team around what process work best with your tools. After that you’ll have the text wrangling muscles for next time you encounter such a mundane task.

The Text Editing Kata

Using the editor/tools you currently use on your project. Convert this list of strings into the expected html output.

For example.

"Dealer Options"

becomes:

<dt runat= "server" id= "dtDealerOptions" > Dealer options </dt> <dd runat= "server" id= "ddDealerOptions" ></dd>

The List

Basic Price Discount Sub total Factory options Dealer options Fuel and mats Road fund licence Number plates and delivery Registration fees Sub total Service plan Autocare Protect VRI Our Insurance Sub total Customer contribution Part exchange value Cash back Settlement Sub total Credit card handling charge Vat Total to pay

The expected result

<dt runat= "server" id= "dtBasicPrice" > Basic Price </dt> <dd runat= "server" id= "ddBasicPrice" ></dd> <dt runat= "server" id= "dtDiscount" > Discount </dt> <dd runat= "server" id= "ddDiscount" ></dd> <dt runat= "server" id= "dtSubTotal" > Sub total </dt> <dd runat= "server" id= "ddSubTotal" ></dd> <dt runat= "server" id= "dtFactoryOptions" > Factory options </dt> <dd runat= "server" id= "ddFactoryOptions" ></dd> <dt runat= "server" id= "dtDealerOptions" > Dealer options </dt> <dd runat= "server" id= "ddDealerOptions" ></dd> <dt runat= "server" id= "dtFuelAndMats" > Fuel and mats </dt> <dd runat= "server" id= "ddFuelAndMats" ></dd> <dt runat= "server" id= "dtRoadFundLicence" > Road fund licence </dt> <dd runat= "server" id= "ddRoadFundLicence" ></dd> <dt runat= "server" id= "dtNumberPlatesAndDelivery" > Number plates and delivery </dt> <dd runat= "server" id= "ddNumberPlatesAndDelivery" ></dd> <dt runat= "server" id= "dtRegistrationFees" > Registration fees </dt> <dd runat= "server" id= "ddRegistrationFees" ></dd> <dt runat= "server" id= "dtSubTotal" > Sub total </dt> <dd runat= "server" id= "ddSubTotal" ></dd> <dt runat= "server" id= "dtServicePlan" > Service plan </dt> <dd runat= "server" id= "ddServicePlan" ></dd> <dt runat= "server" id= "dtAutocare" > Autocare </dt> <dd runat= "server" id= "ddAutocare" ></dd> <dt runat= "server" id= "dtProtect" > Protect </dt> <dd runat= "server" id= "ddProtect" ></dd> <dt runat= "server" id= "dtVri" > VRI </dt> <dd runat= "server" id= "ddVri" ></dd> <dt runat= "server" id= "dtOurInsurance" > Our Insurance </dt> <dd runat= "server" id= "ddOurInsurance" ></dd> <dt runat= "server" id= "dtSubTotal" > Sub total </dt> <dd runat= "server" id= "ddSubTotal" ></dd> <dt runat= "server" id= "dtCustomerContribution" > Customer contribution </dt> <dd runat= "server" id= "ddCustomerContribution" ></dd> <dt runat= "server" id= "dtPartExchangeValue" > Part exchange value </dt> <dd runat= "server" id= "ddPartExchangeValue" ></dd> <dt runat= "server" id= "dtCashBack" > Cash back </dt> <dd runat= "server" id= "ddCashBack" ></dd> <dt runat= "server" id= "dtSettlement" > Settlement </dt> <dd runat= "server" id= "ddSettlement" ></dd> <dt runat= "server" id= "dtSubTotal" > Sub total </dt> <dd runat= "server" id= "ddSubTotal" ></dd> <dt runat= "server" id= "dtCreditCardHandlingCharge" > Credit card handling charge </dt> <dd runat= "server" id= "ddCreditCardHandlingCharge" ></dd> <dt runat= "server" id= "dtVat" > Vat </dt> <dd runat= "server" id= "ddVat" ></dd> <dt runat= "server" id= "dtTotalToPay" > Total to pay </dt> <dd runat= "server" id= "ddTotalToPay" ></dd>

Good luck!