Timeline of Dan Hickman Interview (28 July 2009)

TimeTopic / Quote
00:00Dan Hickman, CTO of ProModel Corporation. Bio
01:20ProModel introduced: "Predicting the Future"
02:40Automating the U.S. Army's predictions of troop supply and demand
06:40How the Army did it before and does it today
07:07They had spreadsheets, pen-and-paper, phone calls, one-on-one … there really was no standard way that everyone made these kinds of decisions. … What used to take them a week to do … one round … you could do six of them now with less people … in one day … just by putting software in place.
09:40How ProModel won the job
11:30Why the Army values ProModel: experience, technology, agility
15:00Started with WinForms application for rich functionality and productivity 80% code was ASP but 80% of customer time spent in WinForms (what does that say about ASP v. WinForms in value-per-line-of-code)
15:50ASP for raw data inspection
16:50Why Silverlight? Army pressured them to leave WinForms for the Web. IT staff resisted ClickOnce … any form of desktop install. "Put this in a browser; zero deployment"
17:40We tried to reinvent the WinForms app using AJAX. … The army thought they were going to lose too much productivity … they said … it just wasn't good enough."
18:05At same time Silverlight 2 was just about to be released. "We started exploring that in parallel with ASP R&D effort … By the end of I said … I think we can do this ….
18:40In two weeks we presented …to the customer … who said 'That's great! That's fantastic!'"
18:50Implemented WinForm-like module in SL 2 and deployed to production in 3.5 months using WinForms developers with no previous Silverlight experience.
19:45Generally speaking it seems that our ASP developers ramp up faster than WinForms developers.
20:20Showed to Army as it was emerging. They said: "We want this now. And this other WinForms module … can we have that in Silverlight?"
20:40Best of the web deployment and best of the WinForms rich experience.
20:50We're now in the process of revisiting other modules. … Let's go Silverlight.
21:20SL 3 is in the process of certification. "They've given us thumbs up to go ahead"
22:20[DevForce experience] has been fantastic!
Had used DevForce Classic to build the WinForms app
22:45We replicated the WinForms UI pretty well but it wasn't hooked up to anything. We felt the customer facing stuff we could reproduce.
23:15Exploration / experiments in how to get data
23:30REST vs. SOAP vs.WCF:
And we hit a point … we really hadn't committed yet … we had to get over the data hurdle … at that point I reached out to IdeaBlade.
24:10For me this was a saving grace because the estimates I was getting from the developers was … it was going to take AWHILE
24:20I was in panic mode … but you guys were able to get us a beta.
24:40Honestly we were up and running in minutes … We already had our database designed and well defined specs.
25:10WB: I would not have predicted minutes.DH: It honestly was … had database ready … it was really familiar to us … we could do CRUD and validation in no time.
26:00Biggest challenge for us is rapid change in requirements. We were porting at the same time we were reengineering
27:00DH: We have no fear of a change to the database.
WB: So when you have to change the db, that doesn't rattle your cage with DevForce?
DH: No … not at all.
27:10Describes briefly how ProModel manages schema changes end to end
28:40Journey from proprietary database, DAL, and SDK …
29:30… to Excel for UI and data store
30:10… to SQL Database and VB6
30:40… to VB.NET with ADO.NET and DataSets … overwhelmed by complex graphs
31:35Bugs due to logic spread across layers: db, stored procedures, Typed-DataSets, UI.
"That bug was in 10 different areas … there has to be a better way"
32:15Kicked off an internal debate on DataSets vs. Custom Domain Objects
32:40Discovered CSLA. "We were attracted to the idea of a book and a little community behind it and Open Source and a way to centralize the business logic."
33:20Our CSLA mantra: "Normalize behavior, not data"
33:30Went with CSLA for a couple years. "That was a huge improvement for us"
34:00But little pains started to show up:
"We were really scared to change the database because … at the time to change the database someone had to go through and manually change the code and we had to write and update all the stored procedures. … We started to have multiple people just dedicated to this area."
34:40Hired a guru who introduced a framework on top of CSLA.
"No longer had the benefit of a book, community, and open source … we were in the business of maintaining a custom version of this code."
35:40The turning point for me [was a dedicated SharePoint site for tracking defects and enhancements in this area.] We listed all the items and it was just huge … and in the dev meetings, instead of focusing on what [customers] wanted we were focusing on … how we were going to move bits and bytes around.
36:15"It was painful to me. I just felt the focus was all wrong."
36:20Decided to take a fresh look at everything … including commercial software. "I left nothing unturned.…
36:30Found DevForce: For me, it felt right. And now I can tell you it is very rare to have a meeting where we're talking about … that layer.
37:00It works for us … it just works … and my focus is back to the customer.
38:00I feel that I can point the finger at somebody else. I purchased your software. You [IdeaBlade] are accountable.
38:10One of the attractive things is how long [DevForce] has been in existence.
38:20Our biggest pain at this point is an educational one. Sometimes it's 'how do you use that API?' and sometimes it's more of … when to use business objects and when not to … [as in reports].
39:00WB: Not every problem is a business objects problem; when you have just data and no behavior you should question whether business objects are the right representation.
39:10That's probably the thing we've been learning the most and really starting to have a philosophy about that.
40:10It may be bad … but I kind of design the database first … and the team does. So code-gen'ing from a database was very attractive to us. … The ease-of-use of having a Visual Studio AddIn was an improvement.
41:20Performance: "We deal with a lot of data … The army inventory is 80,000 of something if you're making a lot of changes, you don't want to commit the whole 80,000 and you also don't want to fetch everything every single time" For this he leverages the DevForce client caching.
41:50IdeaBlade stability: "We weren't your Beta testers"
42:35WB: You can feel trapped with a home-grown framework. Did that happen to you?
DH: On the CSLA it absolutely did. It sucked when he went on vacation.
43:15WB: You had to decide 'Do I use a framework or do I write it myself?' How did you get comfortable with that?
DH: We had a lot of investment in that code. … The good thing was that we had complete visibility into that code. It was ours. … I was really scared. I actually delayed the decision. But when we did the deep dive … we felt we had the flexibility to change things.
44:35I'm happy to say that for us it is not much of a conversation. For me it was 'what do I want to focus on as a company?' The customer doesn't care how data gets moved around. They take it for granted … as they should … I obviously care … performance and all … But I wanted to take my guys and what we specialize in and put it at the customer-facing stuff. We'll lose a little bit but we'll gain more.
45:15WB: How many of your developers make use of DevForce?
DH: Put 2 1/2 guys per module. The 1/2 is the person focused on the Domain Model who supports more than one module.
45:55Every module has around 3 people: a UI person, a Domain Model person, and a jack-of-all-trades who does it all. The Domain Model person and the jack-of-all-trades know DevForce.
46:30Changing a DB Column Name:
DH: Sometimes acronyms change …You have a choice … regenerate so the Domain Model mimics real life or is it not worth it. In the old way, we would not change but now we do. Now our Domain Model mimics real life.
WB: That makes the conversation easier.
DH: Exactly, ProModel has been growing lately … [the new people] read the documentation … [and] … it's generally nice, looking at source code, if the words are the same.
47:40WB: What is your experience with getting people competent in DevForce?
DH: It hasn't been that painful … it really hasn't. They don't start out in that modeler role. Some people take to it right away too.
48:50Community's important, documentation is important, and it's really nice that I don't have to be the one doing that.

If I had my own API I'd have to have document it and have a Concepts Manual and all the things that go along with supporting that library. I don't have to think about that. I expect you [IdeaBlade] to stay on the ball. You do your job well and you help accelerate that for me
49:30The Road Ahead:
We had to deliver something really fast in Silverlight 2. There wasn't a heavy focus on design patterns. Just "get 'er done." We looked at the WinForms app and said "Reproduce it".

Now we're over the R&D stage on Silverlight … not completely but we're asking 'how do we leverage this platform the best we can?'

I think w/ SL 3 we're going to be able to produce real value on the data visualization side for our LOB applications. Case in point: We're doing a deep zoom LOB project where we have large intense schedules … of collections of soldiers. We'll make it easy to see the entire 80,000 row schedule and zoom in on different areas. You'll get more charts to complement a specific [detail].
51:03I wish I had all the time in the world to sit and think of cool ideas but I've got to deliver software on time … I bet you it's not this release but our following release that will start leveraging some of the new things.
51:25WB: What about design patterns … Prism?
DH: We're just dipping our toes in it. Look, we all have a responsibility to keep up … Silverlight 3 is relatively new yet … I'll post on a forum asking about a best practice and it hasn't been established yet so I'm a little nervous to jump into new things yet but we're watching.
52:00It's important to me if it makes my code more maintainable more agile. I just started to dive into Prism, trying to get my head around that.
53:00WB: What are you counting on us to do?
DH: The thing that's attractive about going with someone dedicated to a space like you guys are … is that you stay on top of things. You're looking at what Microsoft's up to, looking at what the rest of the world is up to making life easy on us. Make life easy on me. Make it so that I can easily move data around and have that not be my focus.
53:30 I am overwhelmed with information. This was a huge year for Microsoft … I'm a small software company and it has been overwhelming trying to keep up with everything going on. If you can just filter out … find all the best blog posts or the material that might be relevant in that space … that would be extremely valuable.
54:45The Near Future and Focus of ProModel:
We're going to keep getting all the value out of our predictive technology.
  • Make it as easy as possible
  • Make it easier to model your complex systems
  • Make it easier for you to do your analysis on the back end
  • We'll keep innovating on the UI front …
  • Make it more collaborative and as shareable as possible