On babies, entities, controllers and confidence votes


The Sharks Here in Israel, there’s a reality/documentary TV show called “The Sharks”.

It’s about people who have some kind of a business idea, and are looking for investors.

Each entrepreneur gets a few minutes to present their idea and business plan in front of 4-5 well-known Israeli businessmen, trying to get their support in return for percentages of their project.

One can differentiate the totally bad projects with possibly OK projects, simply on the basis of a proper preparations. Some projects are simply vague ideas that popped up on someone’s head, without any business plan of any kind.

Then you have the projects that comes with a detailed business plan, market research, pricing policies and what-not. These are of course the ones that the Sharks (potential investors) show interest in. The interesting bit is that most of the times, instead of asking strictly business related questions, they tend give more importance to the actual usability of the proposed product/service/whatever. They try to get in the head of the potential consumers and look for Achilles’ heels from the user’s point of view.

Solving consumer problems The point is, that you cannot create a product or service to solve problems that you think that people have. You have to solve actual problems that potential consumers are facing.

Paraphrasing DHH from a presentation lately, “It’s not Rocket Surgery”. You should simply solve people’s problems, otherwise they won’t be interested.

self consumer Who is the better consumer than yourself?

Example: There’s this person I know, who will sell you baby carriers. They look very simple in first glance, but then you see that it’s actually pretty useful - it’s adjustable, you can re-use the same carrier in several carrying positions (low, high, front, back), and it’s comfortable for parent and baby. The thing is - she didn’t wake up one day with a crazy idea, hoping it’d match someone’s needs. She made one for herself and her baby, making it better with time, and then thought - ‘hey someone else might like it’

Going back to DHH and his presentation, he states there clearly that the whole RubyOnRails thing was simply something he needed for his day job, so it became very useful, as the consumer (himself) was giving him direct feedback during the development process.

Same can be said on many OSS projects, like NHibernate, the whole Castle stack and many more.

I can testify on AspView, which I created to make my day job easier and more fun, as I disliked WebForms and my employer insisted on ASP.NET and C# all around - that was my best shot. I got immediate feedbacks from the consumer (myself and my team members) so it stayed focused on solving consumer needs.

Demonstrate trust in your tools You should be trustworthy. I evangelise the use of good tools, and I name the Castle stack, NHibernate, Rhino Commons, and more as good tools. I can do this whole heartedly since I use these very tools for my day jobs, on paid projects, not only for pet projects.

And if you are not a consumer Take ASP.NET MVC. This project is being internally run by a team of developers, who their day job is to build this tool, not to use it. On the surface it presents a major problem, no consumer feedback.

The way they chose to solve this problem was pretty simple. Expose as much as you can to the public. Push potential users to play with the API, experiment with use cases, build extensions, whatnot. Continuously grab community input, incorporate it in the product, and get new feedback. All that has started from the earliest stages by ScottGu, then Phil Haack. The while team seam to be everywhere, from mailing lists to ALT.NET conferences, getting consumer input and building around it.

The outcome is that they can focus on solving consumer problems, and the progress of improvements is amazing. It got to the point that I have no problem at all with using ASP.NET MVC, even though I’m an active member in MonoRail. Personally I prefer MonoRail, but I really see ASP.NET MVC as a viable option, and recommend it as a possible solution.

Opposite examples Take the Entity Framework. I’ve been hearing about this beast from 2005. However being able to get the feel of it took way too long. Meanwhile it appear that a lot of stuff has been introduced into it, that might not even be interesting to consumers, while rendering fixing the consumers’ problems more difficult.

And as for trusting your own tools - I’ve heard once that Visual Source Safe was never used internally for development within Microsoft. I also don’t really believe that there is a single public major website under Microsoft’s umbrella that uses SqlDataSource, heavily customised GridView components and other widely demo-ed Webforms stuff.

Confidence Technologies like Silverlight, ASP.NET MVC, not to mention the more experimental stuff like IronXYZ and F#, find their way into community review, and even to internal production use. Microsoft are voting confidence in these products, so do I.

ALT.Microsoft So as far for the notorious Vote of No Confidence in EF, I never have joined it as it simply make no sense imo. It simply does not interest me enough to even vote. They way I see it, EF belongs next to WebForms, while MVC/IronXYZ/F#/etc are legitimate ALT.NET

Cuz ALT.NET is not about opposing anyone. Definitely not MS - hey these guys brought us the CLR and BCL.

It’s also not about being the freedom guerilla fighters fighting the evil Corporate. Not at all.

I think that ALT.NET is a great idea, just like XP (Extreeme Programming), and like XP it has a bad name, as it implies ‘niche’, ‘alternative’, ‘scary’, ‘elitist’, ‘vane’.

It’s not.

It’s about good tools, built to help make us developers work better, and have more fun during. Parts of the DevDiv are as ALT.NET as it gets.

     Tweet Follow @kenegozi