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.
Lately there has been some noise around the lack of documentation on the Castle project.
I have expressed my view on the matter on the mailing list, and in short I’d say that having an undocumented feature is way better than not having that feature at all.
During the ALT.NET UK conference, one of the guys approached me and said that he has solid background in technical documentation, and that he is willing to put some effort to that end.
I’m terrible with names, so I forgot his (sorry …), but if it’s you dear reader (or if it’s not you, but you are willing to help with that) then please do contact me should you need any help in kicking it off.
Thanks a bunch,
Ken.
Given the following code:
public void UpdatePerson(int id, string name){ Person p = peopleRepository.Get(id); p.name = name; peopleRepository.Update(p);}
One answer would be (using a pseudo mocking framework):
Person p = new Person();
Expect.Call(peopleRepository.Get(0)) .Returns(p);
Expect.Call(peopleRepository.Update(p));
...
service.UpdatePerson(0, "MyName");
Other approach would be (using pseudo coding again):
Person p = CreateAndInsertToDB();service.UpdatePerson(p.id, "New Name");FlushAndRecreateTheSession();Person updated = GetFromDB(p.Id);Assert.Equal("New Name", updated.Name);
What would you do, and why?
(I’m tagging that also under altnetuk as it has been inspired by a session around test-granularity, mocking frameworks, etc.)
This weekend I’ve had to pleasure to attend the altnetuk conf in London. This has been quite an amazing experience. I have really liked the way it has ben organized into open-spaces, and I just wish I could’ve split myself to four, so I’d be able to be at all of the sessions (the F# one was greatly missed …)
I have met great people, have discussed exciting things, and had a lot of fun.
Most of the people referred to me as “the MonoRail guy” which was quite amusing, as I am only the creator of AspView (which in turn is a shameless idea-and-code ripoff from Brail), and I have very little to do with the actuall coolness and usefulness of MonoRail … I do hope though that I did manage to address pepole concerns regarding MonoRail, and the Castle Project as a whole.
Interesting (however not surprising) moment:
On the panel dealing with MVC frameworks for ASP.NET, about 25 people were around the table. When people who are actually using MonoRail/ASP.NET MVC for commercial production environment, only 4 have raised their hands. however, all the others said that they wish the could have done that, and the only reason they do not, is the reluctance from their bosses/clients.
After being told that MonoRail would not make his dreams come true, Dylan Beattie have answered:
“MonoRail would not make my dreams come true. It would however, make my nightmares disappear”
Brilliant.
Last Thursday I was informed by the organizers of alt.net UK conference that they have managed to squeeze me in, so I immediatly booked a flight to London, and have attendet.
I was superb, and I’ve written a few posts, but since I was not online during the last few days I had no chance of publishing ‘em. Hopefully they’ll get during the next few days.
A lot have also been piling up on my MonoRail and AspView “desktops” so I appreciate the patience of the users, and I promise to do my best to keep up with the requests and patches being sent to me …