in

 

PhatBoyG

Coding from the Hood since '87

December 2007 - Posts

  • What I Do Is What I Do Is What You Do Or What

    Since I got tagged by more than one of my fellow Los Techies bloggers, I figured I better step up and throw down.

    While my job history is available on my LinkedIn profile, I'm going to focus on what I do today. The executive summary of the last 20 years spans from Turbo Pascal and dBase III Plus to C# and SQL Server.

    For the past six-plus years, I've worked at what is now known as RelayHealth. In various forms (the company, not me), I've worked for the same company since 1993 (except for a 5 year adventure with TV Guide and a startup company). The company provides electronic communication systems for health care providers (mostly hospitals) and insurance companies (payers). Our network is responsible for a majority of all health care insurance transactions within the United States.

    Yeah, big words, what but do I do?

    Our most recent project (and the reason I returned to the company) was to create a web-based replacement for our legacy client-server claims management system. The system uses a combination of C++, ASP, COM/ATL, SQL Server, and JavaScript to provide an interactive web-based experience for the users. It's a large application, and we have a large team (around 20 developers) working on it. In the past year or so, we've added some new features developed in C# and .NET 2.0, including some web-services for remote integration.

    In the past six weeks, we have adapted agile development as our mode of operation. Just this past Friday we completed our second iteration (yeah!) and are preparing to start our next iteration right after the new year. It's been challenging trying to keep up with all the new methods while making sure we continue to meet all of our compliance requirements (SOx, HIPAA, etc.). The holidays really impacted our velocity, as well as our ability to fill up the backlog. Hopefully after the first of the year we'll have better attendance and get some solid plans laid out. For now, a few members of the team are spiked on research for upcoming enhancements.

    My toolset includes the following:

    Visual Studio 2005, Subversion, Resharper, TortoiseSVN, SQL Server (2000/2005), WatiR, nUnit, CruiseControl.net, FinalBuilder, WISE, PHP, Ruby, and likely some small stuff I left out. Sparx Enterprise Architect on occasion, as well as Mindjet MindManager Pro. We also leverage VMware heavily for development, testing and quality assurance environments. Our application deploys on Windows Server 2003 using IIS6 and SQL Server 2005.

    At work, my official title is Software Architect. But I do spend a decent amount of time coding (no non-coding architect here), mostly to determine the feasibility of new technology and then train the rest of the team on how we can apply it to our product.

    Outside of work, I spend time with my family, enjoy driving my Subaru STI, and recently added an XBOX 360 for gaming entertainment. I'm a devoted Mac user, rolling on a 15" MacBook Pro for my personal development projects. I also enjoy movies, music, and Guitar Hero (now Rock Band as well). I continue to spend a great deal of time outside of work on open source projects, learning more about my craft (software development), and playing with technology.

    I hope to attend (and maybe even present at) several code camps, bar camps, tech fests, or other development meetings in 2008. I feel the software development community as a whole needs to work together (particularly the .NET community) to establish a solid set of practices for building great applications using the best tools available with the least amount of pain and misdirection.

    And me, I tag nobody, for I think everyone has been tagged and I'm the slo-poke.

  • Enterprise Service Bus using MSMQ in .NET

    Over the past couple of weeks, I have been working on nailing down some design for a service bus to add real-time capability to one of our applications. This has led to spending some time looking at nServiceBus as well as a few other examples. I've also been reading Enterprise Integration Patterns (Hohpe/Woolf) to understand some of the established patterns in the space.

    It's interesting to see the different approaches people take to things like transactions and message recovery. From my experience with health care transactions, there is no way to have a distributed transaction across the myriad of systems involved in a health care exchange. With no clear standards and hardly any real-time communication with insurance companies, auditing and electronic reconciliation are the only plausible methods of determining the state of each transaction.

    The discussion is lively at the nServiceBus Yahoo Group, so if you have an interest in that style of integration, stop in and join the conversation.

    Dru Sellers and I have started working on a simplified version of a service bus called MassTransit. It's an open-source project, Apache 2.0 License, and could use some comments and/or contributions. We're going at it with the simplified YAGNI approach to meet some specific needs for work-related projects. We're also focusing on an easy to configure, easy to code approach to reduce the difficulty of building systems using message-based communication.

    It's an ongoing project to find the right solution for a real business problem, so we'll see how it goes!

  • Blogging from the Relief Shelter in Tulsa

    When the ice storm hit Tulsa on Sunday, our home lost power early Monday morning. It wasn't long before the temperatures in our home dropped to nearly 60 degrees F. We initially planned to "tough it out" but realized quickly that with two young children (1 year and 5 years), it just wasn't a smart choice. So we packed up some blankets and drove to an area church where the Red Cross had set up a relief shelter for those without heat. I was a bit tentative at first, but our options were limited.

    Tulsa Ice Storm

    When we arrived, we were told that families with young children had the choice of staying in the common area or staying in the various classrooms in the church. The rooms provided a comfortable level of separation where we felt we could keep our children under control, so we chose a room that had one other family in it. After dropping off our things, we went out and bought two air mattresses (which we found out later they were having several dozen brought in that arrived shortly after we returned). Nonetheless, we setup our mattresses and took the kids down to the gym to play ball while we ate dinner. We talked to a lot of parents with kids who were happy to have something to do instead of just sitting in their cold dark home. Most of the people we met were just like us, stuck without power or heat and children that needed to stay warm.

    photo.jpg

    While having dinner, I flicked on the iPhone and was surprised to see full signal on WiFi. Yes, while most of the city was without power, cable, internet, and phone, we had broadband at the shelter. There were three of us with laptops, two Macs and a lone Dell. The connection was fast, steady, and a welcome treat for my Internet addicted lifestyle. The iPhone was a great stand-in and I was glad to be able to keep up to date, but it was obvious that AT&T's network was getting overloaded with EDGE traffic that sometimes fell back to GPRS.

    But we were minorities and likely the most out of touch. Pretty much everyone under 30 was keeping in constant contact with friends and family through text messaging. Yes, the generation of text messaging doesn't bother with e-mail or the mostly unavailable voice. They use text messaging like us old timers use instant messenger. If you have kids, might as well go ahead and plan on that unlimited family text plan, you're going to need it.

    By 9:30 PM, we had the beds setup, kids showered and in their pajamas, and were pretty much ready to lay down and get some sleep after two days with little to none. The phone rang -- our neighbor was calling to say that the power was back on at our house. I left my wife and kids to settle down and went and checked on the house. Once I was sure the right lights were on, the heater was set to bring the temperature back to normal, and the battery backups were recharged, I shut the door and returned to the shelter. The house would take hours to warm up, we had comfort at the shelter, and we slept the night away without interruption.

    As we left the next morning, they asked us to fill out a voluntary survey about our stay. We were grateful to have warmth on a cold night, grateful for a hot breakfast and clean, warm showers, and confident we had made the right choice for our children. I guess the take away from this post is always do the right thing for your children and leave your preconceptions behind. And next time you watch the victims of a hurricane in Louisiana, a wildfire in California, or an ice storm in Oklahoma, think twice before you dismiss those who chose to make those places their home.

  • Iteration One is a Wrap

    Over the past two weeks, my department has been working on our first iteration using agile practices. Yesterday, we wrapped up with a retrospective to go over our progress. We used a fish bowl to keep the conversation centered and focused -- a method that once again proved to be useful for controlling a discussion without controlling the discussion.

    We setup a whiteboard with columns for the following topics:

    Start
    Things that we should start doing on the next iteration.

    Continue
    Things that we should continue to do every iteration.

    Stop
    Things that we should stop doing.

    Debt
    Things that we did (or didn't) do that will contribute to our technical debt.

    We started with an introduction to the retrospective, a declaration of our goals, and a quick recap of how the fish bowl works. We also identified a remote advocate -- a single person who is responsible for coordinating communication with our remote team members. Our company uses Live Meeting for conferencing, so we explained how to use the seating chart and how to use the Raise Hand feature. The advocate also had their IM client up for any out-of-band questions or issues with the meeting client. Once that was up and running, we opened the discussion.

    Some of the topics discussed:

    • Start making sure the acceptance criteria are well defined before starting the story.
    • Start pairing throughout the development of the engineering tasks and not just at the end for review
    • Start keeping an audit trail of initials of people who worked on a story or an engineering task
    • Stop putting incomplete stories into the backlog
    • Continue the daily stand up meeting format

    There were many more, but you can see how the structure worked. In all, we identified around 20 items that we need to either start, stop, or continue.

    Once that segment of the meeting was over, we went over some of the methods being used to track things like burn down. Our project manager (whom we have yet to designate with a more appropriate agile title) went over the spreadsheet she uses to track story points, engineering task estimates, and actual hours worked on each task. She then showed some web sites from other groups in the company doing Scrum and how they had organized their Wiki, how they posted pictures of their planning board and burn down chart, and their honorary stuffed ScrumMaster.

    We did have a few bumps towards the end of the iteration with our test environment and the number of defects coming back from testing (which is why we want to start pairing earlier). We hope to improve with each iteration (of course) but for our first lap around the track I think we did pretty well!

  • Visual Studio 2008 InstallFest in Tulsa

    Tonight was the Tulsa installment of the Visual Studio 2008 InstallFest that is sweeping the cities this month. In a move to get people excited about VS2008, Microsoft handed out 150 trial copies of VS2008 to those that registered. As an encouragement to those that installed VS two-double-oght-eight on site, participants who demonstrated the post-install goodness were given a t-shirt to commemorate the event.

    This was by far the biggest turn out we've had outside of Tulsa TechFest at OSU Tulsa. Tons of food and drink were provided, including Mazzio's Pizza, Domino's Pizza, and Spaghetti Warehouse pasta trays. There was plenty to go around and everyone was talking and discussing anything and everything. Good times.

    Once we arrived, we camped out and provided the entertainment for the room. Chris Koenig provided several XBOX 360's for the event, one with Guitar Hero III and another with my new favorite game Rock Band. Rock Band absolutely kicks ass. We had 3-4 players all the time, and I even uploaded a few videos of people playing the game. The multiplayer on Rock Band makes the battle mode on GH3 look lame. Having a group playing all parts of the song is more fun than you could imagine based on the videos on the web.

    These videos were shot on my MacBook Pro and uploaded at the event using iMovie's YouTube export:

    http://www.youtube.com/v/ImLIoHjZyEU
    http://www.youtube.com/v/wMT4iy00bas

    Needless to say, I'll likely be getting an XBOX 360 and Rock Band sometime in the near future!

Copyright Los Techies 2007. All rights reserved.
Powered by Community Server (Commercial Edition), by Telligent Systems