<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-3075419760307323302</atom:id><lastBuildDate>Sun, 08 Nov 2009 14:17:29 +0000</lastBuildDate><title>Wunda's World</title><description>Random posts about development, training, gaming and other things that I find interesting...</description><link>http://wundasworld.blogspot.com/</link><managingEditor>noreply@blogger.com (wunda)</managingEditor><generator>Blogger</generator><openSearch:totalResults>112</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/wundasworld" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-4955064992369730416</guid><pubDate>Mon, 21 Sep 2009 18:30:00 +0000</pubDate><atom:updated>2009-09-21T15:18:38.682-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">cancer</category><title>The ups and downs of it</title><description>Kaylee came home on Friday. I had no choice but to run around with her. It was great medicine! I missed her terribly and was so glad to be her #1 go-to person!&lt;br /&gt;&lt;br /&gt;Saturday was rough.&lt;br /&gt;&lt;br /&gt;Emotionally and physically, Matt and I were drained.&lt;br /&gt;&lt;br /&gt;There was a lot of crying, doubt and fear.&lt;br /&gt;&lt;br /&gt;It happens on this roller coaster of cancer. Remembering it will pass and I will feel healthy again was more than difficult.&lt;br /&gt;&lt;br /&gt;Sunday was a turning point.&lt;br /&gt;&lt;br /&gt;I ate well.&lt;br /&gt;&lt;br /&gt;I drank a lot of water.&lt;br /&gt;&lt;br /&gt;I laughed a lot with good friends.&lt;br /&gt;&lt;br /&gt;And I shaved my head!&lt;br /&gt;&lt;br /&gt;I feel like Natalie Portman in V for Vendetta.&lt;br /&gt;&lt;br /&gt;I also had a great acupressure/reiki/massage session with Vanessa, my sister in law. She found a ginger tea that I love!&lt;br /&gt;&lt;br /&gt;I felt reborn in positive energy and spirit.&lt;br /&gt;&lt;br /&gt;And just in time, because Sunday night I left my family once again to stay at the RMH and resume treatment.&lt;br /&gt;&lt;br /&gt;So, here I am.&lt;br /&gt;&lt;br /&gt;I continue on my path of what seems to be most resistance, savoring the good days and pushing through the bad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-4955064992369730416?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2009/09/ups-and-downs-of-it.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">10</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-2060166150644769715</guid><pubDate>Wed, 16 Sep 2009 15:02:00 +0000</pubDate><atom:updated>2009-09-16T11:15:07.850-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">cancer</category><title>First cycle complete</title><description>A bunch more to go...&lt;br /&gt;&lt;br /&gt;I'm now recuperating at home.&lt;br /&gt;&lt;br /&gt;The chemo made me very ill. I'm still feeling it. I have hardly gotten out of bed the last few days.&lt;br /&gt;&lt;br /&gt;Every day I'm a little better. I hope to go for a walk today.&lt;br /&gt;&lt;br /&gt;Its hard to believe I'm going to go back next week.&lt;br /&gt;&lt;br /&gt;But every week done is a week closer to being cured.&lt;br /&gt;&lt;br /&gt;This week off has been especially hard because Kaylee has the chicken pox. She has to stay at her Grandma's until she is all better.  I haven't seen her in over a week. I am beyond sad.&lt;br /&gt;&lt;br /&gt;I hope to see her before my next treatment cycle. Her little hugs, giggles and smiles are the best motivation and cure for this cancer patient.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-2060166150644769715?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2009/09/first-cycle-complete.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-4933152709411923505</guid><pubDate>Tue, 08 Sep 2009 19:12:00 +0000</pubDate><atom:updated>2009-09-08T15:26:28.852-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">cancer</category><title>One week down</title><description>After only one week I can breathe out my nose.&lt;br /&gt;&lt;br /&gt;I smelled flowers on the street.&lt;br /&gt;&lt;br /&gt;Chemo certainly knows how to kill.&lt;br /&gt;&lt;br /&gt;Unfortunately it does not distinguish cancer.&lt;br /&gt;&lt;br /&gt;But today starts a new week and I'm feeling better.&lt;br /&gt;&lt;br /&gt;My body knows how to heal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-4933152709411923505?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2009/09/one-week-down.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-1225807185427660327</guid><pubDate>Sat, 22 Aug 2009 11:48:00 +0000</pubDate><atom:updated>2009-08-22T08:42:59.943-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">cancer</category><title>Giving up a year of my life</title><description>To save the rest of it.&lt;br /&gt;&lt;br /&gt;That's what the doctor told me I have to do to cure this cancer.&lt;br /&gt;&lt;br /&gt;I have a daughter that will need me in her life, so that is the plan.&lt;br /&gt;&lt;br /&gt;I spent the past week at Sloan. Taking tests. Speaking with doctors.&lt;br /&gt;&lt;br /&gt;And crying... a lot of crying.&lt;br /&gt;&lt;br /&gt;It is a surreal experience. Trying to understand the complicated schedules and make sense of how my family can manage life without mom.&lt;br /&gt;&lt;br /&gt;And not just without mom. Life with a cancer patient.&lt;br /&gt;&lt;br /&gt;I'll be treated as an outpatient at Sloan on a clinical trial.&lt;br /&gt;&lt;br /&gt;My treatments with be 3 week cycles of chemotherapy for about a year. Typically the cycles are 2 weeks of treatment and 1 week of rest. During my week of rest, I will have to go in for tests.&lt;br /&gt;&lt;br /&gt;When I have radiation, it will be 6 weeks with no break. This does not change the chemo schedule.&lt;br /&gt;&lt;br /&gt;Some treatments are an hour.  Some are ten.&lt;br /&gt;&lt;br /&gt;I live about 1.5 hours away from Sloan with no traffic.&lt;br /&gt;&lt;br /&gt;So every day is 3 hours longer, just for driving. Probably a little more.&lt;br /&gt;&lt;br /&gt;3 hours of being stuck in the car and potentially very ill.&lt;br /&gt;&lt;br /&gt;My initial reaction was defeatism.&lt;br /&gt;&lt;br /&gt;My next reaction was complete and total fear.&lt;br /&gt;&lt;br /&gt;I have a daughter and husband who need me. Who love me.&lt;br /&gt;&lt;br /&gt;I am determined to make this work.&lt;br /&gt;&lt;br /&gt;I will stay in a hotel on the long days.&lt;br /&gt;&lt;br /&gt;I will coordinate a schedule of driving with my family and friends. I hope to have enough people to call when I cannot make it to the city and someone will help.&lt;br /&gt;&lt;br /&gt;In the event that falls through, I will use a car service. The sustainability of this option is low for its cost and the emotional drain of being alone. I hope it is a rare thing.&lt;br /&gt;&lt;br /&gt;I will sleep in my own bed. I will get to see my daughter and husband everyday.&lt;br /&gt;&lt;br /&gt;I will remain positive and strong.&lt;br /&gt;&lt;br /&gt;This year of my life. The year I had cancer. The year before I was a cancer survivor starts now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-1225807185427660327?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2009/08/giving-up-year-of-my-life.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">33</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-3991684702898384403</guid><pubDate>Mon, 17 Aug 2009 16:42:00 +0000</pubDate><atom:updated>2009-08-17T12:53:23.153-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">cancer</category><title>Talk about rare</title><description>The morning has been hectic. First, I went to the ENT who did my surgery (and found my lovely growth) to remove the packing in my nose -- 6 feet of guaze!! I feel about 100x better!&lt;br /&gt;&lt;br /&gt;My husband, Matt, and I went to breakfast and mid coffee found out I have embryonal rhabdomyosarcoma. A rare childhood cancer. Weird, right?&lt;br /&gt;&lt;br /&gt;Living in New York, I am lucky to be close to Sloan Kettering hospital and thankfully they have an oncologist who specializes in this cancer. He happens to be a pediatric oncologist but I'm a little woman, so I should feel at home with the kid size chairs :P&lt;br /&gt;&lt;br /&gt;Matt is dropping off the pathology today, and hopefully by my appointment on Wednesday we'll have a plan of action.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-3991684702898384403?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2009/08/talk-about-rare.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-7830297922447366769</guid><pubDate>Sat, 15 Aug 2009 12:55:00 +0000</pubDate><atom:updated>2009-08-15T10:18:38.430-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">personal</category><category domain="http://www.blogger.com/atom/ns#">cancer</category><title>wunda's world upsidedown</title><description>The last few months I've been battling sinus problems.&lt;br /&gt;&lt;br /&gt;First guess was an infection, but the antibiotics did not help. My dr thought I needed a longer rx, but since we weren't sure it was infection, I opted to wait and see. Allergies were also a possibility.&lt;br /&gt;&lt;br /&gt;Some days, I felt broken -- though I figured running after Kaylee and getting little sleep were to blame.&lt;br /&gt;&lt;br /&gt;I went to an ear, nose and throat dr last Tuesday.&lt;br /&gt;&lt;br /&gt;He took one look into my nose and his reaction was distressing. I don't remember exactly, but once you hear cancer, you don't hear much else.&lt;br /&gt;&lt;br /&gt;He said the chances were small, but we should do testing quickly, to alleviate any fear.&lt;br /&gt;&lt;br /&gt;That day I had a CT scan. That afternoon he called and brought my husband and I back to the office.&lt;br /&gt;&lt;br /&gt;The results were easy enough to see -- the sinus cavities on my left side were filled. He said it looked a lot like an antrochoanal polyp (one side and really big). It could also be a fungal infection... and of course the possibility of cancer was looming in the room.&lt;br /&gt;&lt;br /&gt;One thing was definite. It was big and needed to be removed.&lt;br /&gt;&lt;br /&gt;Surgery was scheduled for Friday. He would do a biopsy and then depending on the result, stop or remove the benign tissue.&lt;br /&gt;&lt;br /&gt;As soon as I woke up from surgery, I asked the time -- one surgery would be longer than the other... It was less than two hours. My mom and husband were by the bed and someone told me it was malignant.&lt;br /&gt;&lt;br /&gt;Although my first reaction was "are you sure?" I was calm. The fear of what could be was replaced with reality. Cancer. I was not surprised. I had all week to prepare. I'm sure the drugs from the anesthesia helped me stay calm.&lt;br /&gt;&lt;br /&gt;I've known many who have battled cancer.&lt;br /&gt;&lt;br /&gt;I lost my father, my husbands aunt, my uncles wife, my grandfather, my sister's mother in law.&lt;br /&gt;&lt;br /&gt;I know survivors too -- two uncles, my aunt, a few friends, parents of friends.&lt;br /&gt;&lt;br /&gt;What are the chances I would be added to the list?  When I was a little girl, I was a bit of a hypochondriac. I was always worried I had cancer. As I got older, my fears subsided.&lt;br /&gt;&lt;br /&gt;When I went to the doctor last Tuesday, the last thing on my mind was cancer. I had just given birth and nurse my baby? How could a diseased body support such miracles?&lt;br /&gt;&lt;br /&gt;I will know more about a diagnosis on Monday. The weekend is going slow.&lt;br /&gt;&lt;br /&gt;I am nursing my daughter as much as I can. The idea of early weaning is heartbreaking. I fear she will grow up without a mother. I am thankful she is only 1 as she will not remember. She may not remember me. I hope I can live on in her through the bonding relationship we've created and the stories and memories people around her hold close.&lt;br /&gt;&lt;br /&gt;And of course, I am not calling it quits -- I don't even have a diagnosis, or 2nd opinion. My strategy is the same I used to run a marathon. If I felt tired, in pain or I couldn't go on, I would ask myself, "can you finish the next mile? just up to that next tree? will you be disappointed if you stopped because you know you had it in you to keep going?"&lt;br /&gt;&lt;br /&gt;As long as there is a chance (even a fools hope) and I can make it to the next tree, I will. I will come through this a survivor, regardless of my mortality.&lt;br /&gt;&lt;br /&gt;I am scared. Writing is an easier form of communication. I say the word cancer with tears in my eyes and a closed throat. I write it with ease. I am thankful for this outlet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-7830297922447366769?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2009/08/wundas-world-upsidedown.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">14</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-6213415293780236571</guid><pubDate>Fri, 07 Aug 2009 14:45:00 +0000</pubDate><atom:updated>2009-08-07T13:04:32.173-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dev</category><category domain="http://www.blogger.com/atom/ns#">tdd</category><title>Ensure test coverage when refactoring to mocks</title><description>Using real dependencies in your tests will lead to pain. A lot of pain.&lt;br /&gt;&lt;br /&gt;Most likely, your test fixtures lack coverage, test the wrong class, be difficult to read and don't do what they say.&lt;br /&gt;&lt;br /&gt;Eventually, your team will decide to abandon testing or introduce mocking/stubbing.&lt;br /&gt;&lt;br /&gt;Refactoring your existing tests will be a major endeavor.&lt;br /&gt;&lt;br /&gt;It will be tedious and repetitive.&lt;br /&gt;&lt;br /&gt;You will feel like you are wasting time.&lt;br /&gt;&lt;br /&gt;You will have a strong urge to rush.&lt;br /&gt;&lt;br /&gt;To help you out, I've outlined the steps needed to refactor a test to mocks. I've noted steps that are easy to skip  (yet still important) with *&lt;br /&gt;&lt;br /&gt;1. Make a copy of the TestFixture -- call it TestFixtureNameWithMocks -- this will ensure you do not lose test coverage and can commit often.&lt;br /&gt;&lt;br /&gt;2. Comment out all tests&lt;br /&gt;&lt;br /&gt;3. Delete the setup code&lt;br /&gt;&lt;br /&gt;4. Take a moment to read the first test&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Does this test actually test anything? (if not, figure out what it should be testing and get it working right in the original fixture first!)*&lt;/li&gt;&lt;li&gt;Does it verify state of the CUT?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Does it verify state of a dependent (or dependent of dependent of dependent...)?&lt;/li&gt;&lt;li&gt;Does it do more than one verification?&lt;/li&gt;&lt;/ul&gt;6. If there is more than one verification, determine how many tests you actually need.&lt;br /&gt;&lt;br /&gt;7. If your test relied on the state of a dependent, verify that behavior is tested in the correct test fixture (i.e. the dependent's!). If not, you need one, use this test as an example. Create a failing test now, before you forget. If you have a rabbit hole of dependents, make a test for the top dependent.*&lt;br /&gt;&lt;br /&gt;8. If needed, break out the test into multiple verifications -- select one to do, comment the rest.&lt;br /&gt;&lt;br /&gt;9. Uncomment test and rewrite using mocks/stub. You will find that some tests are quite different. Some similar. Some will require refactoring of the CUT or dependents to make mock friendly.&lt;br /&gt;&lt;br /&gt;10. Run the test and verify it passes. If it does not, figure out what preconditions are missing -- check the CUT and old test. Keep doing this till it passes.&lt;br /&gt;&lt;br /&gt;10. Comment out code that is being tested.*&lt;br /&gt;&lt;br /&gt;11. Run test, verify it fails for the right reason. If it does not, check the test and verify your assumptions. Make it fail for the right reason!*&lt;br /&gt;&lt;br /&gt;12. Uncomment code, verify it passes. If you didn't change code in 11, you can skip this step -- I am paranoid and usually do it anyway :)&lt;br /&gt;&lt;br /&gt;13. Repeat for every test in the fixture (and any new tests you find). Pull out common setup if needed. Rename tests since the original names will most likely need it :P&lt;br /&gt;&lt;br /&gt;14. Remove old test fixture and rename new one.&lt;br /&gt;&lt;br /&gt;If you made it this far imagine how long rewriting one test takes. In the best case you still need to run each test at least 2 times.&lt;br /&gt;&lt;br /&gt;Now imagine doing this for more than one class.&lt;br /&gt;&lt;br /&gt;How about for how many tests exist by the time our tests are painful enough to require this change.&lt;br /&gt;&lt;br /&gt;If done right, this will take a lot of time. If we do it wrong, we take great risks and have tests that give us a false sense of security.&lt;br /&gt;&lt;br /&gt;Clearly, if we want to continue delivering end user value, we cannot do this all at once.&lt;br /&gt;&lt;br /&gt;Here is one way to do this:&lt;br /&gt;1. Whenever a test is updated (bug fix, enhancement, refactor), update the test fixture to use mocks.&lt;br /&gt;2. Have a policy where it is ok to have 2 fixtures for 1 CUT (one with mocks and one without) to encourage people to start using mocks w/o the overhead/context switch of a big refactor. Stress that finishing the refactor takes precedence over starting new work.&lt;br /&gt;3. Let everyone on the team know that it is expected to take time and include that in commitments and estimations.&lt;br /&gt;4. Remain disciplined&lt;br /&gt;&lt;br /&gt;Good luck!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-6213415293780236571?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2009/08/ensure-test-coverage-when-refactoring.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-8179851247734166533</guid><pubDate>Thu, 30 Jul 2009 16:13:00 +0000</pubDate><atom:updated>2009-07-30T15:06:51.798-04:00</atom:updated><title>Adding to the team</title><description>We've all felt the pain of the interview process.&lt;br /&gt;&lt;br /&gt;It sucks. And its not just the candidates out there. Its also the way we find them.&lt;br /&gt;&lt;br /&gt;Typical Procedures:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Recruiter or ad&lt;/li&gt;&lt;li&gt;Phone interview&lt;/li&gt;&lt;li&gt;Written questions or code samples&lt;/li&gt;&lt;li&gt;In person interview&lt;/li&gt;&lt;li&gt;Meetings with other team members&lt;/li&gt;&lt;li&gt;References, background checks, drug tests, security clearance, street fighter challenge&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;There certainly is dysfunction here. Many interviews feel like a game and its not played well (or fair).&lt;br /&gt;&lt;br /&gt;I think of finding a new team member as a process of filtering:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The process is a series of filters each more fine than its predecessor&lt;/li&gt;&lt;li&gt;A filter should have definite output&lt;/li&gt;&lt;li&gt;Good people are difficult to find. Too fine a filter early in the process is a risk&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Most filters have manual steps. Filters that filter too little are a risk.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Finding the right person is personal to the team, so any filter that does not involve a team member is less accurate&lt;/li&gt;&lt;li&gt;A good fit is unique to a team, so rarely will the same sequence of filters fit multiple jobs.&lt;/li&gt;&lt;li&gt;Some criteria may give someone a pass around filters -- personal recommendations, proven methodology expertise and already working for company are a few examples&lt;/li&gt;&lt;/ol&gt;Before we can setup our filters, we need to know our goals for a candidate. This is a lot harder than it sounds. You may find you don't really know your "goals" beyond a "senior" developer who is a "team player" and "experienced" with our technology and methodologies.&lt;br /&gt;&lt;br /&gt;Once we know what is important, we need to figure out how to filter this behavior. We must also look at a persons ability to grow into a goal and the team's desire to teach (which will be biased depending on the person).&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Goal: We want someone who is an enjoyable pair programmer&lt;/li&gt;&lt;li&gt;Importance: We only pair so friction here is best avoided&lt;/li&gt;&lt;li&gt;Ability to Learn: Developers, like all humans, are known to be stubborn in changing their personality. Though people can come around.&lt;/li&gt;&lt;li&gt;Ideal Filter: Spend a day pairing with them, switching people so at least a few team members weigh in&lt;/li&gt;&lt;/ul&gt;Clearly this is not a recommended starting point, unless you want to have a stranger on your team everyday poking around in some code in your project. Or maybe it would work if you have a lot of spikes?&lt;br /&gt;&lt;br /&gt;Now what?&lt;br /&gt;&lt;br /&gt;We can dig deeper into this goal:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;What kind of traits make someone a good pair? &lt;/li&gt;&lt;li&gt;Are there ways we can define questions that will clue us in on these traits? Do any of these questions have answers that we can entrust an outside party to interpret?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Can we use their past work experience to help?&lt;/li&gt;&lt;/ol&gt;If we find this goal is best saved for later in the process, we can move on to goals that are better found at coarser levels. Do we required a certain amount of experience or schooling? Do we want people from a similar background (domain, technology, methodologies)? Do we care if they change jobs a lot? Too little? Are they active in learning new technologies? Are they interested in our methodologies? Do they live nearby?&lt;br /&gt;&lt;br /&gt;We may not care about individual answers to pass judgment, though a combination of answers is sure to give us something.&lt;br /&gt;&lt;br /&gt;How we find people to review is also a filter.  If we want someone who is involved in the community, we can use those channels to find people either passively (twitter we're looking, ads on blogs we like) or more actively (read blogs and tweets to find people, find people working on open source projects).&lt;br /&gt;&lt;br /&gt;Remember, its not just what you want, its what they want. Make sure your job description includes things that will attract the good fits (or have some people running to the hills), like weekly book readings or Star Trek Fridays.&lt;br /&gt;&lt;br /&gt;Finally, there are unique things at every environment. What attracted the team there? What are team member strengths and weaknesses and what is the state of the project -- how can a new team member help most? Do we need another good pair or is it more important we get someone who can help us fix our data layer and quick.&lt;br /&gt;&lt;br /&gt;Finding a good fit is a lot of work. If we spend the time to figure out what we want, we can figure out better questions and ways to find them.  I'd say its a good exercise, even if its not quite possible to create a systematic filtering process.&lt;br /&gt;&lt;br /&gt;Off topic, I'm in favor of speed dating style of interviewing: open house at your company, each team member gets 7 min with each person who shows up. Anyone with all yays moves on to the real interviewing. It may waste a day of everyone's time, but I bet it would be fun and if it worked, it would save a lot of money on recruiters, ads, phone interviews, code reviews and spending time figuring out what "questions" will help us find the best fit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-8179851247734166533?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2009/07/adding-to-team.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-7091809143028270076</guid><pubDate>Thu, 29 Jan 2009 20:54:00 +0000</pubDate><atom:updated>2009-01-29T15:59:35.306-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">fun</category><title>Can't seem to ever finish a post...</title><description>Between working and mommying, I can't seem to finish any of my blog posts -- this is bothering me...&lt;br /&gt;&lt;br /&gt;So, I signed up for twitter -- wundarous&lt;br /&gt;&lt;br /&gt;Maybe I'll get some ideas out...&lt;br /&gt;&lt;br /&gt;or maybe it will be random thoughts that make no sense..&lt;br /&gt;&lt;br /&gt;Either way, no excuses not to add a sentence here and there!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-7091809143028270076?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2009/01/cant-seem-to-ever-finish-post.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">8</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-4872944805049804474</guid><pubDate>Wed, 03 Dec 2008 14:44:00 +0000</pubDate><atom:updated>2008-12-03T10:49:48.303-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dev</category><category domain="http://www.blogger.com/atom/ns#">tdd</category><title>The need for speed</title><description>I say this a lot, but I love TDD. Besides the list of reasons about how it improves code or simplifies solutions, TDD is fast.&lt;br /&gt;&lt;br /&gt;TDD is fun because it goes so quickly.  Write a test, make it pass, refactor, run more tests.&lt;br /&gt;&lt;br /&gt;I love the flow. I love adding a new interface and using it without worry about implementation. I love knowing after I make a new test, something in the app is different and it works. I love living in the tests and only running the application before checking in.&lt;br /&gt;&lt;br /&gt;However, the moment the tests slow, the practices start to slip...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Writing code and verifying it works by launching the app, then creating the tests&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Making the test pass before verifying it failed.&lt;/li&gt;&lt;li&gt;Not running all the tests before check in.&lt;/li&gt;&lt;li&gt;Not refactoring because it takes too long&lt;/li&gt;&lt;li&gt;It stops you from working close to 5 because you don't want to wait for the build&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Not adding tests at all because you don't want to break the build and don't want to wait to find out&lt;br /&gt;&lt;/li&gt;&lt;li&gt;It ruins all the fun.&lt;/li&gt;&lt;/ol&gt;These things all lead to poor test coverage or tests that don't actually do what they say. Yeah, on paper your coverage may look nice, but there's plenty of code you can delete w/o breaking tests. Coverage makes sure a code path is followed, it does not verify the path was actually tested.&lt;br /&gt;&lt;br /&gt;So, how do we keep our tests running quickly?&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Mocking. Reduces the amount of time spent creating dependencies and their dependencies and the rabbit hole of dependencies that nobody can even see.&lt;/li&gt;&lt;li&gt;Use a one to one ratio of test assemblies to application assemblies -- don't waste time waiting for things to build that you're not testing.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Keep interfaces and implementations in separate assemblies. Dependents should only be recompiled if the contract changes, not the implementation. This allows you to complete the usage of a change, without worrying about the implementation. Sure, you can just resharper, but are you really going to add tests for a new method right now?? If you do, you break the rhythm, if you don't, you have to remember, somehow, that there is code that needs to be implemented somewhere that your tests won't pick up... you'll start thinking about the implementation or just forget and break the app without anyone knowing.&lt;/li&gt;&lt;li&gt;Simplify. Keep tests short. Only create items in setup that are used in all tests. Avoid factories for creating concrete classes because they hide dependencies and make it too easy to use real implementations instead of mocks. Avoid repeating yourself in tests, don't assert the same thing twice, it doesn't help to have the same failure twice but it does slow everything down.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;In general, follow the best practices of test writing! They're there for a reason. No point in experiencing the pain of the nice people who figured them out. Take advantage w/o having crappy tests, lots of pain and failure.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-4872944805049804474?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/12/need-for-speed.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-1670400999215287743</guid><pubDate>Wed, 26 Nov 2008 14:49:00 +0000</pubDate><atom:updated>2008-11-26T15:45:55.733-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">agile</category><category domain="http://www.blogger.com/atom/ns#">dev</category><title>When Agile Works</title><description>When I started consulting on an "agile" team back in February, my first thought was, "Hey! You guys lied! This isn't agile."&lt;br /&gt;&lt;br /&gt;The working practices were reminiscent of &lt;a href="http://jamesshore.com/Blog/The-Decline-and-Fall-of-Agile.html"&gt;James Shore's&lt;/a&gt; recent blog post.&lt;br /&gt;&lt;br /&gt;There was Scrum but they lacked visibility, risk mitigation and self management.&lt;br /&gt;There was a morning stand up, but it was a status meeting with over 20 people -- mostly watchers.&lt;br /&gt;There was a single product team, but members were broken up into domain groups with their own managers, politics and definitions of success.&lt;br /&gt;&lt;br /&gt;There were bad practices, communication breakdowns, over-commitment, over-time, half finished features, inconsistency and plenty of technical debt.&lt;br /&gt;&lt;br /&gt;Team members had all the stress and no power to change.&lt;br /&gt;&lt;br /&gt;But, there was hope.&lt;br /&gt;&lt;br /&gt;Within the first few months the company reorganized and moved towards product hierarchy eliminating the contention between groups.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;=&gt;Consistent goals and priorities.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The BAs, design and product owner worked closely with an agile coach to create a product backlog. They began having sprint reviews and retrospectives.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;=&gt;Visibility and reflection.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A few people became scrum masters. A few others scrum product owners. They started going to agile conferences and local meetings.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;=&gt;Engagement.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I left at the end of July to have Kaylee. Things were changing, but we were still far from a well functioning agile team.&lt;br /&gt;&lt;br /&gt;When I returned in November, I heard that our agile coach said this was the best agile team he's been on.&lt;br /&gt;&lt;br /&gt;I thought to myself, "I think he's been drinking some kool-aid..."&lt;br /&gt;&lt;br /&gt;However, when I came in for sprint review and planning, I was amazed.&lt;br /&gt;&lt;br /&gt;So much changed.&lt;br /&gt;&lt;br /&gt;Team members were involved.&lt;br /&gt;&lt;br /&gt;Practice improvements and innovations were made throughout the day.&lt;br /&gt;&lt;br /&gt;Charts and metrics were used, not shown.&lt;br /&gt;&lt;br /&gt;People were having the right conversations.&lt;br /&gt;&lt;br /&gt;The differences not only showed in the team and interactions, but the product.&lt;br /&gt;&lt;br /&gt;They had visible  success.&lt;br /&gt;&lt;br /&gt;I feel very fortunate to have the unique look into the evolution of this agile team.&lt;br /&gt;&lt;br /&gt;When you are on the team, it can seem like things don't change. Our retrospectives are a microscopic view compared to a projects lifespan. If I was working for the past 3 months, I may have not noticed.&lt;br /&gt;&lt;br /&gt;Maybe a periodic review of how things were/how things are would be a good motivator and illustration of how cool agile can be when its working.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-1670400999215287743?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/11/when-agile-works.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-1261088102106301679</guid><pubDate>Wed, 12 Nov 2008 15:44:00 +0000</pubDate><atom:updated>2008-11-12T11:13:17.040-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dev</category><category domain="http://www.blogger.com/atom/ns#">fun</category><title>3 Months Later...</title><description>Almost.&lt;br /&gt;&lt;br /&gt;Babies are challenging... Giving birth was easier... Forget about the note I was sleeping better after Kaylee was born, that didn't last long!&lt;br /&gt;&lt;br /&gt;Ah, but the human condition. We adapt. Disrupted sleep included.&lt;br /&gt;&lt;br /&gt;Now that I've adapted, I'm consulting again.&lt;br /&gt;&lt;br /&gt;Apparently, I really, really like to code AND its much, much easier than being a mommy! Not quite the same ROI...&lt;br /&gt;&lt;br /&gt;Since I do most of my work from home, I get the best of both. I'm quite lucky.&lt;br /&gt;&lt;br /&gt;I'm with the same company and working with lots of WPF and TDD. We just started using the &lt;a href="http://blog.typemock.com/2008/08/isolator-aaa-api-basics.html"&gt;Isolator AAA&lt;/a&gt; from typemock, which looks nice. I know &lt;a href="http://weblogs.asp.net/rosherove/"&gt;Roy&lt;/a&gt; was very involved with its creation and I usually agree with all his testing methodologies :)&lt;br /&gt;&lt;br /&gt;My heart is still with &lt;a href="http://ayende.com/projects/rhino-mocks.aspx"&gt;rhinomocks&lt;/a&gt;, but hopefully I'll find a place for typemock too!&lt;br /&gt;&lt;br /&gt;And being a mom, I have to include some newer pics of my lovely daughter! &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm4.static.flickr.com/3276/2963813803_b28dd3df01.jpg?v=0"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 500px; height: 349px;" src="http://farm4.static.flickr.com/3276/2963813803_b28dd3df01.jpg?v=0" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-1261088102106301679?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/11/3-months-later.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-7065491353128587357</guid><pubDate>Tue, 19 Aug 2008 14:47:00 +0000</pubDate><atom:updated>2008-08-19T12:14:51.174-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">fun</category><category domain="http://www.blogger.com/atom/ns#">kaylee</category><title>My Little Wunda</title><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_rRnWni9p4aU/SKrw2rszzhI/AAAAAAAAALk/LfXB16G5llk/s1600-h/kaylee.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_rRnWni9p4aU/SKrw2rszzhI/AAAAAAAAALk/LfXB16G5llk/s400/kaylee.jpg" alt="" id="BLOGGER_PHOTO_ID_5236262339005894162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm proud to say I'm a mom to a beautiful daughter born Saturday, August 16th. I'd like to thank my great birthing team of my husband, Vanessa (his sister) and my doula, Amy. Between them and &lt;a href="http://hypnobabies.com/"&gt;hypnobabies&lt;/a&gt;, I was able to have an incredible birthing experience!&lt;br /&gt;&lt;br /&gt;To keep up with the academic nature of this blog -- I'd like to share what I've learned so far in my few days of motherhood (note, I never picked up an infant or changed a diaper before Saturday)&lt;br /&gt;&lt;br /&gt;1. Giving birth was the most intense, satisfying and romantic experience of my life&lt;br /&gt;2. Its better to let your dog lick your infant than a person kiss their face&lt;br /&gt;3. There's all kinds of great feelings for your own child you could never imagine&lt;br /&gt;4. Wearing your baby is lots of fun and lets you do something while they're sleeping other than watching them sleep&lt;br /&gt;5. Its still early, but so far I've been sleeping better than I have in the past few weeks (my husband however, is learning the joys of interrupted sleep)&lt;br /&gt;6. Every person you talk to will give advice and everyone has different opinions on the same things (that goes for doctors, nurses, grandparents and strangers)&lt;br /&gt;7. Babies like loud noises, cry before they go to the bathroom, fart louder than you could imagine and produce incredible amounts of poop!&lt;br /&gt;8. If all you do is breastfeed, change diapers and sooth an infant, it can take you days to write a single email&lt;br /&gt;9. In a single day, your entire outlook, appreciation and viewpoint changes completely&lt;br /&gt;10. Every coo, cry, movement, poop and breath from your infant is precious&lt;br /&gt;&lt;br /&gt;Although I'm sure I'll have my hands full, hopefully, I'll get to write some of the posts I had been putting off for the last few months while I'm away from work -- I've had a lot of adventures in WPF and TDD I'd love to share!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-7065491353128587357?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/08/my-little-wunda.html</link><author>noreply@blogger.com (wunda)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_rRnWni9p4aU/SKrw2rszzhI/AAAAAAAAALk/LfXB16G5llk/s72-c/kaylee.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">10</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-256772244478555330</guid><pubDate>Fri, 06 Jun 2008 15:22:00 +0000</pubDate><atom:updated>2008-06-06T12:39:41.609-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dev</category><title>TechEd Pair Programing Session Overview</title><description>Since the session environment was different from our usual,  and the audience's agile experience varied greatly (mostly none or little) we decided to allow the audience to ask questions during the presentation. The most successful pairing environments leverage a strong agile environment, so much of our content relies on certain knowledge of other agile practices.&lt;br /&gt;&lt;br /&gt;Since we didn't limit questions we ended up covering the first 5 slides and lots of questions in the first 45 minutes of the class.&lt;br /&gt;&lt;br /&gt;Not exactly the definition of a breakout session.&lt;br /&gt;&lt;br /&gt;This made some people very happy and some people, well, not.&lt;br /&gt;&lt;br /&gt;If you enjoyed the session, I'm really happy it helped! I hope you gained some insight you can take back to your team and good luck!&lt;br /&gt;&lt;br /&gt;If you didn't, I hope you left early and gained interesting knowledge elsewhere you could take that back to your team and also, good luck :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.excastle.com/"&gt;Joe White&lt;/a&gt; has posted a &lt;a href="http://blog.excastle.com/2008/06/04/teched-2008-notes-the-gentle-art-of-pair-programming/"&gt;great summary&lt;/a&gt; of everything covered -- thanks Joe!&lt;br /&gt;&lt;br /&gt;Most of the questions we answered would have been covered during the lecture, so if you are worried you missed out on some important information, no worries, you just got it in a different order.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-256772244478555330?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/06/teched-pair-programing-session-overview.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-2285687412792919142</guid><pubDate>Fri, 06 Jun 2008 14:17:00 +0000</pubDate><atom:updated>2008-06-06T11:08:21.782-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dev</category><category domain="http://www.blogger.com/atom/ns#">tdd</category><title>Followup to Testing with Mocks</title><description>Thanks to everyone who came to the Testing with Mocks TLC session at TechEd.&lt;br /&gt;&lt;br /&gt;Here are some links of things we touched on during the class. Please leave a comment if I missed something :)&lt;br /&gt;&lt;br /&gt;Test Smells:&lt;br /&gt;&lt;a href="http://blog.james-carr.org/?p=44"&gt;TDD Anti Patterns&lt;/a&gt; -- Be sure to read the comments, there are some valuable smells there too!&lt;br /&gt;&lt;br /&gt;Books:&lt;br /&gt;&lt;a href="http://the.artofunittesting.com/"&gt;The Art of Unit Testing&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Working-Effectively-Legacy-Robert-Martin/dp/0131177052/ref=pd_sim_b_title_3"&gt;Working Effectively with Legacy Code&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/Test-Driven-Development-Addison-Wesley-Signature/dp/0321146530/ref=pd_sim_b_title_7"&gt;TDD by Example&lt;/a&gt; (Kent Beck's book)&lt;br /&gt;&lt;br /&gt;Rhino Mocks:&lt;br /&gt;&lt;a href="http://ayende.com/"&gt;Ayende&lt;/a&gt; (creator of rhino mocks)&lt;br /&gt;&lt;a href="http://groups.google.com/group/RhinoMocks"&gt;Google Group&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ayende.com/wiki/GetFile.aspx?File=Rhino+Mocks+3.3+Quick+Reference.pdf"&gt;Reference Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Other .NET Testing Frameworks:&lt;br /&gt;&lt;a href="http://www.nmock.org/"&gt;nMock&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.typemock.com/"&gt;TypeMock&lt;/a&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/moq/"&gt;Moq&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Test Runners:&lt;br /&gt;&lt;a href="http://nunit.org/index.php"&gt;nUnit&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mbunit.com/"&gt;mbUnit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tools:&lt;br /&gt;&lt;a href="http://www.jetbrains.com/resharper/beta/beta.html"&gt;Resharper&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.jetbrains.com/teamcity/"&gt;TeamCity&lt;/a&gt;&lt;br /&gt;&lt;a href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET"&gt;CruiseControl.NET&lt;/a&gt;&lt;br /&gt;&lt;a href="http://rubyforge.org/projects/cruisecontrolrb/"&gt;CruiseControl.rb&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;IoC Containers:&lt;br /&gt;&lt;a href="http://www.castleproject.org/container/index.html"&gt;Castle MicroKernel/Windsor&lt;/a&gt;&lt;br /&gt;&lt;a href="http://springframework.net/"&gt;Spring.Net&lt;/a&gt;&lt;br /&gt;&lt;a href="http://structuremap.sourceforge.net/Default.htm"&gt;StructureMap&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Community:&lt;br /&gt;&lt;a href="http://altdotnet.org/home/hello"&gt;Alt.Net&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-2285687412792919142?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/06/followup-to-testing-with-mocks.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-6595230257244412697</guid><pubDate>Wed, 28 May 2008 20:10:00 +0000</pubDate><atom:updated>2008-05-28T17:05:45.937-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">agile</category><category domain="http://www.blogger.com/atom/ns#">ript</category><category domain="http://www.blogger.com/atom/ns#">dev</category><title>I feel like I'm taking crazy pills..</title><description>Today, I was trying out a wpf grid control and couldn't figure out how to style or data bind or do anything with it in xaml.&lt;br /&gt;&lt;br /&gt;I sent the sales rep an email asking for some examples and I was told data binding, templates and styles were not currently supported (dependency properties it seemed too).&lt;br /&gt;&lt;br /&gt;With that, I thanked them for their time, and said databinding and styling were a priority so we could not consider their grid.&lt;br /&gt;&lt;br /&gt;I didn't expect to hear much after that, but I was informed that those "bells and whistles" were not as important as the other features only their grid supports...&lt;br /&gt;&lt;br /&gt;While I would argue these "extras" are a foundation of WPF, I don't think that should matter.&lt;br /&gt;&lt;br /&gt;Why are my priorities not valuable?&lt;br /&gt;&lt;br /&gt;When listening to user feedback on our applications and products, we can get defensive.&lt;br /&gt;&lt;br /&gt;We're all human and insecure, so I guess that could explain it.&lt;br /&gt;&lt;br /&gt;However, I would rather focus on a different issue -- what is guiding our decisions, priorities and emotional responses?&lt;br /&gt;&lt;br /&gt;Why is the response to user feedback a reason instead of thank you?&lt;br /&gt;&lt;br /&gt;All feedback is an opportunity to create a better product. It is great service your users provide (usually for free!).&lt;br /&gt;&lt;br /&gt;One of the greatest technical challenges in Ript was adding the ability to rip Flash. It took many, many spikes. I think most other companies would have put it aside -- it didn't add much value, wasn't going to make us money, isn't something that will make a person use the application and certainly cost time and money.&lt;br /&gt;&lt;br /&gt;So, why did Gerry make it a requirement?&lt;br /&gt;&lt;br /&gt;During user testing, we noticed people thought they were doing something wrong when they couldn't rip flash. They don't understand that some images are flash and some are images.&lt;br /&gt;&lt;br /&gt;Gerry could have said document how to determine if an image is Flash so users will know why they can't do something.&lt;br /&gt;&lt;br /&gt;But, she understood that it didn't matter if the behavior was documented. If a person thinks its broken, begins to lose trust or feels they are doing something wrong, they are alienated. They will not feel confidence in themselves or the usefulness of the program.&lt;br /&gt;&lt;br /&gt;Before working with Gerry I didn't understand this concept. I would have put flash aside. However, her decision is what made her a great product owner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-6595230257244412697?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/05/i-feel-like-im-taking-crazy-pills.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-4907447682800313704</guid><pubDate>Sat, 05 Apr 2008 11:30:00 +0000</pubDate><atom:updated>2008-04-05T08:21:48.016-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dev</category><category domain="http://www.blogger.com/atom/ns#">fun</category><title>Where I'm going, where I've been</title><description>I'll start with the where I've been:&lt;br /&gt;&lt;br /&gt;After NBC took over Oxygen, our lovely, little agile group got a bit... lost. We lost our product owners and inspiration and little by little, we found other opportunities and now, there is no more group.&lt;br /&gt;&lt;br /&gt;Next, I went on to an agile coaching role. While bad experiences can inspire the best writing, this was not the case. I decided to resign quickly.&lt;br /&gt;&lt;br /&gt;That leads me to my next bit of news -- I am 20 weeks pregnant. I want to spend every week before embarking on motherhood on a worthwhile and fun adventure!&lt;br /&gt;&lt;br /&gt;So, where am I now?&lt;br /&gt;&lt;br /&gt;I am consulting in NYC on a motivated and talented team working on WPF applications. Its great to be back in this space!&lt;br /&gt;&lt;br /&gt;Where am I going?&lt;br /&gt;&lt;br /&gt;No idea. From what I hear, into sleepless nights!  I plan on working after the baby, but nothing is official at the moment and I'm happy that way.&lt;br /&gt;&lt;br /&gt;What about the hot agilistas?&lt;br /&gt;&lt;br /&gt;No worries! Oksana and I will still be at TechEd in June. Pregnant women are hot too! Seriously, 7 months pregnant in June in Florida! Who plans that?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-4907447682800313704?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/04/were-im-going-were-ive-been.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-2860456987127813948</guid><pubDate>Wed, 12 Mar 2008 20:01:00 +0000</pubDate><atom:updated>2008-03-12T16:12:55.739-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">agile</category><category domain="http://www.blogger.com/atom/ns#">dev</category><title>Painless CI?</title><description>I recently started a new project and had the fun task of getting the build server up and running. Usually, I dislike the entire process -- creating a nant script, configuring cruisecontrol... so much xml... so little fun!&lt;br /&gt;&lt;br /&gt;Since its a new project, first order of business -- rake for builds! Something we experimented with at Oxygen, but didn't add to our practice. If you have the options of putting ruby on your build server, switch to rake if you are not already using it. Its easy to read, easy to build projects and you can reuse code. Such a nice change from the copy and paste nightmare of nant.&lt;br /&gt;&lt;br /&gt;After spending 1/2 a day working on cruisecontrol.net and trying to figure out what configuration I needed, I realized -- hey, you can use cruisecontrol.rb -- ruby is already on the build server and we're using rake. &lt;br /&gt;&lt;br /&gt;I'd post directions on the extra steps or setup I needed to do, but the directions from the cruisecontrol.rb site left me with a working build -- imagine that?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-2860456987127813948?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/03/painless-ci.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-5755688337506179582</guid><pubDate>Mon, 18 Feb 2008 21:50:00 +0000</pubDate><atom:updated>2008-02-18T16:54:35.122-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dev</category><category domain="http://www.blogger.com/atom/ns#">training</category><title>Tech Ed 2008</title><description>Oksana and I will be speaking about pair programming and using mock objects at Tech Ed 2008.&lt;br /&gt;&lt;br /&gt;Register for Tech Ed &lt;a href="http://www.microsoft.com/events/teched2008/default.mspx"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The conference is in Orlando in June, so bring your bathing suits!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-5755688337506179582?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/02/tech-ed-2008.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-2634679021362761480</guid><pubDate>Thu, 24 Jan 2008 17:42:00 +0000</pubDate><atom:updated>2008-01-24T12:49:26.164-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">women</category><category domain="http://www.blogger.com/atom/ns#">agile</category><category domain="http://www.blogger.com/atom/ns#">dev</category><title>Gerry Laybourne on agile</title><description>From an &lt;a href="http://www.portfolio.com/views/columns/the-world-according-to/2008/01/24/Interview-With-Geraldine-Laybourne#page1"&gt;interview&lt;/a&gt; with Gerry (&lt;a href="http://www.portfolio.com/views/columns/the-world-according-to/2008/01/24/Interview-With-Geraldine-Laybourne#page6"&gt;page 6&lt;/a&gt;, scroll about halfway down the page):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"...And through that, I really got to know them and decided that I really wanted to understand agile management—which is a very interesting way of managing. It's a very formal discipline that allows the team to own the work. And what happens in software development is that you can give an assignment to a software-development team, and then six months later, they deliver what the assignment was. And you look at it and say, "Oh no, that's not what I wanted." In agile management, you work on a two-week cycle. You're working. You have a "scrum master." You have priorities set. You agree on what the priorities are in the meeting. You review the priorities. You evaluate where you are, and you move to the next step..."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I love that she knows agile is a "very formal discipline."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-2634679021362761480?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/01/gerry-laybourne-on-agile.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-2131243699817031113</guid><pubDate>Thu, 17 Jan 2008 00:08:00 +0000</pubDate><atom:updated>2008-01-16T19:20:22.449-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">fun</category><title>Because laughter is good for you..</title><description>Human tetris anyone?&lt;br /&gt;&lt;br /&gt;&lt;table width="400" border="0" cellpadding="0" cellspacing="0"&gt;&lt;tr&gt;&lt;td width="5" rowspan="3" valign="top"&gt;&lt;img src="http://static.spikedhumor.com/images/vcleft.gif" width="5" height="300"&gt;&lt;/td&gt;&lt;td width="390" height="5" valign="top"&gt;&lt;img src="http://static.spikedhumor.com/images/vctop.gif" width="390" height="5"&gt;&lt;/td&gt;&lt;td width="5" rowspan="3" valign="top"&gt;&lt;img src="http://static.spikedhumor.com/images/vcright.gif" width="5" height="300"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height="273" valign="top"&gt;&lt;br /&gt;&lt;embed src="http://www.spikedhumor.com/player/vcplayer.swf?file=http://www.spikedhumor.com/videocodes/109928/data.xml&amp;auto_play=false" quality="high" scale="noscale" bgcolor="#000000" width="100%" height="100%" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height="22" valign="top"&gt;&lt;a href="http://www.spikedhumor.com/articles/109928/Human_Tetris.html" target="_new"&gt;&lt;img src="http://static.spikedhumor.com/images/vcbot.gif" width="390" height="22" border="0"&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-2131243699817031113?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/01/because-laughter-is-good-for-you.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-2590447503553606020</guid><pubDate>Tue, 15 Jan 2008 15:00:00 +0000</pubDate><atom:updated>2008-01-15T10:19:14.279-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">wpf</category><category domain="http://www.blogger.com/atom/ns#">training</category><title>Nothin but WPF</title><description>As you may have read on Boodhoo's blog -- in addition to Nothin but .NET bootcamp, he's introducing several new topics including Nothin but WPF, which I am teaching.&lt;br /&gt;&lt;br /&gt;The first Nothin but WPF will be March 24th - 28th in midtown NYC. This class is completely focused on WPF and XAML and will include DataBinding, Styles and Resources, Custom Controls and plenty of other topics to keep us busy :)&lt;br /&gt;&lt;br /&gt;You can register for the class &lt;a href="http://www.acteva.com/booking.cfm?bevaID=150216"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Go &lt;a href="http://www.jpboodhoo.com/training/CourseSchedule.aspx"&gt;here&lt;/a&gt; to see the current Boodhoo training schedule for 2008 -- he'll be adding more classes and an rss feed so check back for updates.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-2590447503553606020?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2008/01/nothin-but-wpf.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-1231577902468369170</guid><pubDate>Sun, 02 Dec 2007 14:19:00 +0000</pubDate><atom:updated>2007-12-02T09:20:45.886-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ript</category><category domain="http://www.blogger.com/atom/ns#">fun</category><title>Ript video</title><description>There is a funny ript promo available for your enjoyment. &lt;a href="http://blip.tv/file/513450"&gt;Check it out&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-1231577902468369170?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2007/12/ript-video.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">10</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-4582321049926658048</guid><pubDate>Wed, 21 Nov 2007 17:21:00 +0000</pubDate><atom:updated>2007-11-21T12:45:07.717-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">fun</category><category domain="http://www.blogger.com/atom/ns#">xbox</category><title>Mass Effect or Rock Band?</title><description>That is what I said to myself when I got home from the store yesterday.&lt;br /&gt;&lt;br /&gt;Decisions, decisions...&lt;br /&gt;&lt;br /&gt;I started with Rock Band -- we had a full band waiting to play (myself, husband, sister and brother-in-law). I needed to set everything up before they came over. (i.e. I wanted the drums all to myself)&lt;br /&gt;&lt;br /&gt;Having 4 friends rocking out is really a blast! My sister thinks we should dress up and do a show on Thanksgiving for our family. I'm not sure, will they appreciate our musical talent?&lt;br /&gt;&lt;br /&gt;Can someone tell me how to stop playing the same songs over and over again? If I have to sing In Bloom one more time...&lt;br /&gt;&lt;br /&gt;My sister and her husband went home after a few hours of rocking and it was on to Mass Effect. It looks great! Only problem...  How do I play? KOTOR is one of my favorite games of all time and so far this game feels more like Halo than role playing...  Need to work on using powers better...  I figured out the equipment screen though!&lt;br /&gt;&lt;br /&gt;I couldn't agree with &lt;a href="http://www.penny-arcade.com/comic/2007/11/14"&gt;Penny Arcade&lt;/a&gt; more :P (read all 3)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-4582321049926658048?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2007/11/mass-effect-or-rock-band.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-3075419760307323302.post-2706235111850681601</guid><pubDate>Wed, 21 Nov 2007 16:20:00 +0000</pubDate><atom:updated>2007-11-21T12:16:23.237-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">agile</category><category domain="http://www.blogger.com/atom/ns#">dev</category><title>Whatever happened to sustainable pace?</title><description>Who practices sustainable pace?&lt;br /&gt;&lt;br /&gt;Development is an art. Its a mental challenge (emotion if you pair). As a day goes by, an individuals definition of quality changes depending on their mood and energy.&lt;br /&gt;&lt;br /&gt;Over short periods of time a team can keep up long hours; especially if there is positive momentum or results in sight.&lt;br /&gt;&lt;br /&gt;But permanent hours to get more out the door? Does this really work with out sacrificing quality and practices?&lt;br /&gt;&lt;br /&gt;How many times are corners cut to meet a deadline? Was it ever too much to write that test first? Was code copied without refactoring to remove duplication?  Is there spike code in production cause it worked?&lt;br /&gt;&lt;br /&gt;Is that our risk to take?&lt;br /&gt;&lt;br /&gt;Can a person control burnout or realize the compromises they make? People have an amazing ability to adapt to any situation. In a bad situation, we forget, we lie (mostly to ourselves), we ignore and we accept things we shouldn't.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3075419760307323302-2706235111850681601?l=wundasworld.blogspot.com'/&gt;&lt;/div&gt;</description><link>http://wundasworld.blogspot.com/2007/11/whatever-happened-to-sustainable-pace.html</link><author>noreply@blogger.com (wunda)</author><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">7</thr:total></item></channel></rss>
