# Saturday, February 08, 2014

What do I mean “Mobile apps are dead???” When I first started out as a developer in the client-server era, things moved slow. We dreamed of doing things faster. Then came the Internet and “internet speed.” That was crazy fast. Now in the device + cloud era, I think things are moving at ludicrous speed.

Technologies come and go. Look at Flash on the infographic below. Devices come and go, remember how big the Palm Pilot was? Just 4 years ago the Blackberry was the number one mobile OS and the iPad did not exist! Standards are ever-evolving (remember the Blink tag?) and can die when you least expect them. What about the death of MS-DOS and MySpace? We barely remember them as we will barely remember iOS and Facebook in 10 years.

The Telerik Platform is designed to be future-proof, encompassing the entirety of native, web and hybrid universes and puts app requirements ahead of the development approach. It enables developers to create awesome experiences perfectly optimized for every app and every screen, today or in the future.

With the Telerik Platform, developers can focus on what an application should do first and then choose the approach that best balances cost, development time, reach and access to device capabilities. I’m happy to announce our new Telerik Developer Platform, which breaks down the silos of mobile apps. Mobile development will never be the same, check it out today at www.telerik.com it’s been 10 years in the making. ☺
Attend our keynote on Wednesday Feb 12, 2014, register here: www.mobileappsaredead.com

posted on Saturday, February 08, 2014 11:13:36 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1] Trackback
# Tuesday, September 03, 2013

In case you missed AcceleratorHK Demo Day 2, the videos are now live. The entire video roll is here (about 1 hour) and the individual team links are below the break. Enjoy!

Individual team videos:

Verybite

Gyaan Tel

DooD!

Sofly

iceVault

Captain Planner

posted on Tuesday, September 03, 2013 4:42:25 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Tuesday, August 13, 2013

Last night in Hong Kong was the cohort #2 Demo Day! Over 150 people braved severe Typhoon Utor to make their way to The Good Lab for Demo Day 2. We squeezed about 120 into the main theatre and about 30 or so in the live streaming in the kitchen area of the Good Lab.

 IMG_20130813_194340

The teams were hard at work but we all gathered at show time and did a shot of Port compliments of the Portuguese team. I tried to say something motivation and semimetal, but all I could say over and over was “I’m proud of you guys.”

IMG_20130813_190005

After a brief intro by Tony at the Good Lab and a photo slide show, I did a brief introduction. I fooled the audience into thinking that I made a typo on a slide with the wrong date, I had August 13 2012 on the first slide since one year ago to the date I began the Accelerator journey when my board approved the project. Quite fitting to have our second demo day on the one year anniversary.

IMG-20130813-WA0000

The teams did amazing! Here is the rundown:

  • Verybite: healthy home cooked food delivery service
  • Gyaan Tel: mobile data analytics for emerging market retailers
  • dood! Our 100% local HK team with a photo sharing app that turns your photos into gifts
  • SoFly: second screen and TV show tracking
  • iceVault: offline storage for your online assets. Starting with Bitcoin.
  • Captain Planner: online travel at the click of a button (really.)

IMG_20130813_191931IMG_20130813_193533

After the presentations we had a networking event and each team had their booths set up. Despite the looming T8 typhoon, I had to kick people out of the Good Lab after two and a half hours.

IMG_20130813_202402IMG_20130813_202844

Of course we had the all-important after party in LKF. By now the Typhoon had hit in full T8 force, at one point we took to dancing in the streets in the typhoon’s monsoon rain.

mmexport1376422029728IMG_20130814_003739

Stay tuned for the videos and interviews to be posted here in a few weeks.

My journey at AcceleratorHK ends here. I’ll be moving to Palo Alto and running an accelerator this fall in Silicon Valley. Stay tuned as Paul and I figure out how to make cohort #3 of AcceleratorHK!

posted on Tuesday, August 13, 2013 11:36:37 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, August 11, 2013

We have just completed the final week of AccleratorHK, the hardest week of them all. Last week was the week where the teams had to run their businesses, review and sign all of the investment paperwork from Telerik, and prep for Demo Day!

For prepping, we have two mentors come in this week and work with the teams. In addition we had three members of the past cohort come in and work on the presentations. Finally we had our last Friday check-in where I got to weigh in for probably the last time on the presentations. All in all, that was at least six practice runs with structured feedback. The teams are ready for Tuesday.

IMG_20130806_162528IMG_20130807_142621

Later in the week we had the Demo Day film team arrive and Gerard filmed each team’s interview. These interviews will be used by each team as they leave AcceleratorHK and take their businesses to the next level.

IMG_20130808_140520

Lastly, we had Charlie Sheng from TechNode some in and interview all six teams for two stories, one that will be a write-up for startupshk and one for a story about Demo Day, AcceleratorHK, and the startup ecosystem for TechNode. Stay tuned…

IMG_20130809_103946

posted on Sunday, August 11, 2013 4:53:20 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Saturday, August 03, 2013

This was the last “normal” week at AcceleratorHK, normal being that we have our scheduled program 1:1 meetings, mentor visits, Friday check-in, and other activities. The following week will be the final week to prep for Demo Day, which is on August 13th.

One more team released an MVP! Icevault, Offline storage for Online currencies. You can easily sign up: a bitcoin address will be generated for you right away - and the private key securely saved offline and encrypted for you.

We had a great mentor come in and visit us. Michele Leroux Bustamante came in and spent about an hour and half with each team over two days, plus sat in on the Friday check-in and provided valuable feedback to the teams on their presentations.

 IMG_20130801_110543IMG_20130801_125545

Michele had her original flights rescheduled due to a foul up in San Francisco so she extended her trip until Saturday and we all got to spend a little more time with her. That means she got to get down as the teams blew off some steam in LFK on Friday night. Smile

IMG_20130803_012009

This coming week is the last week of the program! We will have five different people come in to spend time with the teams practicing their Demo Day presentations, all while trying to continue to build their products! It is crunch time to say the least.

See you all at Demo Day on August 13th!

posted on Saturday, August 03, 2013 11:33:25 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Saturday, July 27, 2013

As the program is driving to the Demo Day finish line, we had an action packed week at AcceleratorHK! All six teams have an MVP that is up and running. You can check out three of them here:

We also had Hristo Neychev come in and spend a few days mentoring with the teams. Hristo works at Telerik as the PM for Icenium and has a lot of mentoring experience with startups at Launchub, an accelerator in Bulgaria. He spend an hour or two with each team as well as extra time doing customer development of his own with the teams and other companies in Hong Kong using Icenium. Hristo also mentors teams on startup presentations, so he worked with each team on their presentations for 30 on Friday before Prototype Day.

IMG_20130725_103510

On Friday we had our second (and last) “Prototype Day” when the teams make their Demo Day presentations to a group of mentors and have live Q&A on their business model. This is different from each of the Friday check-ins that we do when the teams may present on what they have done the prior week or practice their investor or potential customer pitch that they may be doing that week. We had five awesome mentors come on in to listen to the presentations and provide feedback:

IMG_20130726_151016

The teams made pretty solid presentations and got a lot of feedback. Demo Day is only 2 weeks away and the teams should all be ready! Unfortunately Friday was Paul’s last day at AcceleratorHK. Sad smile After Prototype Day we went out for a few drinks to wish Paul well in his new life in LA.

mmexport1374847436766

Demo Day is August 13th, register here! See you all there…

posted on Saturday, July 27, 2013 9:58:39 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Saturday, July 20, 2013

We had another action-packed week at AcceleratorHK this week. Early in the week one team released their PhoneGap based cross-platform MVP and they win the award for being the first team to have an app on my phone.

Screenshot_2013-07-15-18-28-56

Another team had their MVP launched this week as well, we are starting to really move along now.

Next we had mentor and angel investor James Giancotti come in and spend a lot of time with the teams. James has a large amount of experience advising early stage startups and was very helpful with the teams who are looking for funding (just about all of them Smile.)

IMG_20130718_164030

The Portuguese teams re-emerged from their near two week long code-fest to come by the Good Lab and, well, code.

IMG_20130718_164121

Paul did a going away farewell address to the entire Hong Kong Startup community. It was a complete sellout (standing room only!) and a great time.

 IMG_20130718_203459

Members of cohort #1 and several mentors showed up and also got their tee-shirts. Smile

IMG_20130718_202458

Paul also got several Hong Kong startups to commit to launch date, revenue, and other key deliverables in front of the entire community. Nothing like peer pressure!

IMG_20130718_212227

Lastly, we had a rooftop party at IFC for Paul’s sendoff. I used DooD!’s MVP to have some fun:

aviary_1374326629625

This week we have a week long mentor visit, two more MVPs to play with, and Prototype Day #2! Stay tuned….

posted on Saturday, July 20, 2013 8:06:36 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, July 14, 2013

AcceleratorHK is moving right along. We are just over 4 week away from Demo Day! The teams are hard at work with their MVP, prototypes, and betas.

This week we had William Liang: co-founder at Grabbit and Professor of Entrepreneurship at Poly U, come in and spend 30 minutes with each team mentoring. William always has great insights and this visit was no different than his visits to the past cohort and bootcamps.

 mmexport1373449909420

It was also a great week insofar as our long awaited tee-shirts have arrived! We had some AcceleratorHK branded “I go both ways” tee shirts as well as the Icenium logo shirt.

mmexport1373449702161

I ordered 100 of each shirt, so of course we have extra for our mentors, as well as for our past graduates, as shown here.

mmexport1373449706693

We are sure to have some left over at Demo Day if you come early. Smile

This week is a busy week with mentor visits and session by Paul about the Hong Kong startup ecosystem. We will also announce the logistical details for Demo Day later this week. Stay tuned!

posted on Sunday, July 14, 2013 4:29:47 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, July 07, 2013

Last week was our mid-program week of no program activities, just “get the hack out of the building” and do customer development. One team took that literally and traveled to India to test their app with their target customer base. They also had time to take in the Taj this weekend. Smile

nishantblogmmexport1373189661857

Another team is working on some pretty bleeding edge stuff so they decided to take over the inactive local meetup dedicated to the topic and hold an event. There was a great turnout with lively debate and lots of customer development.

MeetupRedBar027ce8

Lastly, while we had no mentors and meetings planned this week, we did have one optional mentor visit Saturday with Paul Harris, an American based in Manila, who has been working and developing deep relationships with a large number of Philippine based startups from idea to mentorship and funding. Since it was a low key week, Paul held court at one of our local bars and the teams came in and bought him beer and spend 30 or so minutes with him each. Then the rugby came on TV and that was the end of any business talk (it is a British bar…)

2013-07-06 17.32.18

All the other teams were hard at work, but Friday we had a BBQ to Celebrate the 4th of July. (Yes we celebrated it on the 5th, kicked off the weekend!)

Unfortunately I missed the BBQ as I was speaking at the Scrum Gathering Shanghai on Friday.

IMG_20130703_093304

Back to the normal program this week!

posted on Sunday, July 07, 2013 6:02:04 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, June 30, 2013

Can’t believe that we are halfway done! That means we are halfway to Demo Day! We are ready to announce that Demo Day is scheduled for August 13th at 6:30pm at The Good Lab’s main theatre. Mark your calendar.

Everyone recovered from our field trip on Saturday to Shenzhen, and had a great week at AcceleratorHK. We started off the week strong with a mentor visit from Jochen Kleef on Monday. Jochen has extensive experience in China and of course customer development and has always been a great supporter of the entrepreneurship ecosystem here in Hong Kong. Jochen held a round table discussion where he talked with the teams about his experience as well as had a Q&A. Then he met with the teams individually.

IMG_20130624_154925

We also had our last round of Pecha Kuchas on Tuesday. We had some great talks about life growing up in Indonesia, Malaysia, Indian mythology, and many  more. I did a pecha kucha on trekking to Everest Base Camp.

IMG_20130625_151706

One of the teams released a public MVP and some others are pretty close. Other teams were out speaking to potential customers and partners. Very good discipline in going out and doing customer development.

We changed up our Friday check-in a little bit. First the elevator pitches were only given 20 seconds, instead of the usual 1 minute limit. For the 5 minute presentation, we made a big deal on changing the presentations up so we had the teams submit the slides early. But we fooled them and had them do this week’s presentation with a white board, no slides, no projector. The results were pretty awesome.

IMG_20130627_160018

This week is “customer validation” week where we have no scheduled check-ins, 1:1s, or mentor meetings. Just the teams working hard on “getting out of the building” to talk with customers.

posted on Sunday, June 30, 2013 10:00:06 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, June 23, 2013

The intensity at AcceleratorHK is cranking up. This week was action packed and eventful. On Wednesday we had a trip to visit the offices of Hong Kong startup Frenzoo. At Frenzoo, founder Simon Newstead walked the teams through the early days at Frenzoo, its customer development process, and what it was like being in an accelerator himself. It was great going to visit a living, breathing startup in Hong Kong and “get out of the building.”

 IMG_20130619_094017

On Thursday, we had Roland Yi, director & General Counsel at Gilkron Limited as well as a law professor at HKU, come in and spend time with us on intellectual property (IP) rights and laws. We talked about patents (avoid!) and trade secrets, copy rights, and trademarks. Very informative stuff for the teams.

IMG_20130620_104510

On Thursday night we had a rooftop pool party to wish one of the team members well as he is headed back to the US.

IMG_20130620_203355

On Friday night I did a presentation about raising money for startups. We covered angel investment, stock options, vesting,  dilution, valuation, venture capital, liquidation preferences, and lots more. This session was open to the public and despite being on a Friday night, we had a great crowd (and lots of beer.) Of course it was a PowerPoint-less presentation!

steveforblog

On Saturday we had a big day. We got up early and traveled to Shenzhen, China and visited the component markets in Huaqiangbei. These are the component markets for the global supply chain and they are something to be seen.

IMG_20130622_123138

Here is a photo of some of the teams inside of SEG Plaza, one of the most famous of the component markets.

IMG_20130622_130702

After a few hours at the component markets and adjacent consumer electronics markets (lots of phone cases, batteries, chargers, bluetooth speakers were acquired…), we headed to an evening of teambuilding with the staff of Social Agent, who’s founder, Mike Michelini is a mentor at AcceleratorHK. We went bowling, played pool, and ping pong with the staff and had a great group dinner and drinks before heading home to Hong Kong.

IMG_20130622_174416IMG_20130622_174958IMG_20130622_184123

A great week and more to come next week. Stay tuned…

posted on Sunday, June 23, 2013 4:55:15 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, June 16, 2013

It is hard to imagine that we have already passed the one month point! After five full weeks at AcceleratorHK, most of cohort 2 is starting to move past customer interviews and into serious MVPs. Paul and I keep reminding the teams that they are still testing assumptions with the MVPs and not building “beta” releases for “feedback.” (The classic mistake that leads down the road to tradition product development.)

On Friday we had our first “Prototype Day” or when the teams make their Demo Day presentations to a group of mentors and have live Q&A on their business model. This is different from each of the Friday check-ins that we do when the teams may present on what they have done the prior week or practice their investor or potential customer pitch that they may be doing that week. While Demo Day is a full two months away, we want to get everyone started and get feedback on their business from more folks than just the cohort and Paul and myself. During the course of the program we have two Prototype Days, usually around the end of the first month and at the end of the second month. (Prototype Day #2 is July 26th.)

IMG_20130614_100749

We had four rock star mentors show up:

The six teams made their presentations and the mentors gave them tons of feedback. The mentors really challenged the teams to think through their models and underlying value prop. The most surprising thing to the teams was that they had the “curse of knowledge” since sometimes the mentors had no idea what the team’s value proposition was all about. Some mentors even provided feedback on the team’s logos. Smile It was great for Paul and myself to take a week off from providing all the constructive criticism.

IMG_20130614_105825

The teams soaked up the feedback and after a few hours of presentations and Q&A, most of us went to the local Japanese place for lunch.

After Prototype Day, we had a scheduled rooftop party, however, it had to be postponed due to rain. Instead Team Portugal and I went to a MVP dinner and got to play with an “Appcessory” or rather a device that turns your iPhone into a pinball machine.

IMG_20130614_204404IMG_20130614_204854

We have a big week coming up, two mentor visits, the last public class for the “Early Venture Survival Series”, and of course all the regular 1:1s and check-ins! Stay tuned…

posted on Sunday, June 16, 2013 7:23:42 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Saturday, June 08, 2013

We are four weeks in and the teams are progressing nicely. We had another week focused on Customer Discovery where the teams have been talking to a lot of potential customers and continuing to refine their segments. MVPs are getting built and several teams are moving into Customer Validation. One team flew to India to meet with potential customers for a few days and also dropped in on Telerik India!

mmexport1370266865146

We had two mentors come in this week, one was a talk by a local entrepreneur who decided to walk away from his business after his partner and investor changed the terms and would not negotiate. His only course of action was to walk away from the business and the story was very powerful. We also had Steven Kopec from Turner Broadcasting Asia come in and work with the teams 1:1.

IMG_20130607_140343

We also had the third installment of Paul and Steve’s “Early Stage Venture Survival” talk at the Good Lab, which was open to the public. Paul spoke for two hours on the value of metrics to a startup. (And how to avoid vanity metrics.)

IMG_20130606_204053

We also did our first batch of Pecha Kuchas, one team member even did one on Austrian Economics. Smile Paul has also started to pronounce Pecha Kuchas properly, giving up his futile attempt to change the native Japanese pronunciation of the word.

On Friday we did our weekly check-in and changed it up by having people do an elevator pitch for a team that they were not a member of!

IMG_20130607_112202

After our checkin we went to a BBQ hosted by one of the teams on the rooftop of one of our mentors.

IMG_20130607_1854042013-06-07-19-00-49_deco

Next week we start to take a look at the MVPs, and we have some mentors coming in for the +30. Prototype Day presentations. (Can you believe that we are at this a month already?!?!) Stay tuned…

posted on Saturday, June 08, 2013 5:49:44 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Saturday, June 01, 2013

Another great week for the teams at AcceleratorHK. This week at the 1:1’s Paul and I started to push for the teams to build MVPs around a core assumption or two. We also brought in technical mentor and Telerik customer advocate, Dhananjay Kumar (DJ), to talk about hybrid apps and also give an overview of Icenium and Everlive for the technical co-founders. DJ stayed a few days and worked 1:1 with several of the teams. (A team from cohort #1 even came up to visit DJ as well..)

IMG_20130528_151512

We also had some agile training with a session I delivered at The Good Lab. I talked how rule #2 of the “Customer Development Manifesto” by Steve Blank is to pair agile development with customer development. I told lots of stories how I screwed things up when I did my startups. That seemed to work well. Smile

BLWaYodCYAApj8C

We then went on a field trip to visit Makible, a Hong Kong startup that is building the Makibox, the world most affordable ($200 USD) 3-D printer. I bought a Makibox for the cohort to play with and we should have a beta version to play with in a week or two.

IMG_20130529_163158

We also had a great round table with Makible’s founder Jon Buford about startups, funding, and early revenue.

IMG_20130529_164226

From there we had the first outing to Happy Valley Racetrack!

IMG_20130529_211515

While we had some doubters in the house (Team Portugal), most of the cohort followed my winning strategy on horse betting. As usual I walked away a winner. Smile 

It was a super hot and sticky night in Hong Kong but we were able to have a ton of fun. Two of the local HK guys in the cohort had their first Happy Valley visit, it takes an Accelerator to get them to Happy Valley!

IMG_20130529_211539

The next day, the teams wanted to relax somewhat and they took advantage of the Good Lab’s awesome bean bag area. Looking at the guys in this photo you can tell that we are in a mobile accelerator!

 IMG_20130528_144846

As usual we had our founder talks and Friday Check-In. We also finished the week with a Friday afternoon mentor visit from Mike Michelini who worked with the teams on their social media strategies.

IMG_20130531_125503

We have another action packed week up ahead, stay tuned!

posted on Saturday, June 01, 2013 6:34:15 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, May 26, 2013

This week was “Get the Hell Out of the Building” week with a focus on Customer Development. Most teams went out and started to talk to potential customers about their offerings. We had a mentor, Joel Semeniuk, come in and spend all week with the teams to work on customer development and their business model canvas. He spent a few hours with each team working on how they can go out and do customer development.

IMG_20130522_142623

In addition angel investor Tytus Michalski came in to mentor the teams this week as well.

IMG_20130520_150308

After hours we had a social event on Thursday. The entire cohort attended the launch party of a cohort #1 team, SurroundApp. Earlier in the day, some teams got to meet with Remi Caron, a mentor, but also the CTO of SurroundApp.

IMG_20130523_201752

This was a lot of fun because most of cohort #1 was in attendance. When the drinking went late into the night, the cohort #1 folks started to warn cohort #2 of what happens when you come unprepared for the Friday Check in the next day. In addition as the night progressed (and the beers flowed) we had everyone come up and do their elevator pitch, even the guys from cohort #1. Always be prepared!

The team from Portugal, started to mingle with the locals. Smile 

IMG_20130523_205708

On Friday we had our first “Friday Check In”. At this meeting we have each team do an elevator pitch and we all evaluate it as well as give pointers. The group took the constructive criticism very well. We also did a “scrum” where each team spoke about the week behind and the week ahead as well as committed to the dates of their weekly mentor email.

IMG_20130524_162557

Lastly, each team did their 10/20/30 pitches. Yes, we do them starting on Week #2! (Now you will appreciate how much work goes into demo day!) We had two mentors in the room (Joel and Marcel) giving feedback as well as Paul and myself (and the other cohort members.)

IMG_20130524_170318

This week we have a technical mentor coming in, a field trip visit to Makible (a HK startup building the Makibox, a $200 3-D printer), as well as some agile training (which is open to the public). The week will continue to focus on customer discovery and validation. Stay tuned…

posted on Sunday, May 26, 2013 4:13:47 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, May 16, 2013

I can’t believe that after the months of the planning and reviewing of applications the Accelerator has already started up again. I also can’t believe that week 1 is already over! The next 13 weeks are going to just fly by.

We have a total of six teams doing cross platform mobile development. The teams are working in the following spaces:

  • Media/Second Screen Applications
  • Micropayments
  • Travel
  • Logistics
  • Social Media
  • Virtual Currency

Week one was great, we had orientation and discovered we have team members from four continents and born in the following countries: Argentina, France, Portugal, Malaysia, Indonesia, USA, UK, China, Canada, HK, and Russia.

After Paul’s overview of customer development, we broke up the teams into four groups and gave them a startup weekend style assignment to work on a business model and customer development exercise in the following four categories:  mobile health, language learning, dating, and fashion. We split up each team so no co-founders are on the same team. After two days or so of doing customer development we had the teams come in and make a presentation in front of a panel of judges (made up of four mentors of the program.) One team had projection problems so we made them “be agile” and present without slides. Smile

IMG_20130515_162325

The winning team won an expensive bottle of Sake and chocolate. (The only judging criteria was which team did the most customer development.) I kind of guilted the winning team to share the spoils with everyone. Smile

IMG_20130515_150730

After the mini-startup weekend/customer development exercise, Paul hosted a customer development seminar at the Good Lab. This was open to the public and some members of the previous cohort came by for the seminar as well.

IMG_20130515_202018

We also had our first mentor come in and visit us! Vinod Menon came in to speak with the teams today. As the founder of Knowledge Works, Vinod runs an Accounting as a Service (AaaS?) company and spoke about the ins and outs of incorporating in Hong Kong.

IMG_20130516_141159

Being a short week (Friday is a public holiday in HK-The Buddha’s Birthday!) we had our founder talks and Friday check-in on Thursday. We learned a lot about each other this week.

IMG_20130516_161222

We also all went to a local HK meetup, TDHK for our first social. It was suggested that we do the founder talks next week at a bar, to get better stories.

IMG_20130516_212809

Now time to get cranking on the projects! Stay tuned for the next update….

posted on Thursday, May 16, 2013 7:55:03 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Wednesday, March 20, 2013

Back in February, Accelerator HK cohort #1 had its Demo Day. As promised, here is the entire Demo Day video where the six teams made their presentations. Enjoy.

posted on Wednesday, March 20, 2013 2:08:51 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, March 15, 2013

Earlier this week we opened the applications for the second cohort of AcceleratorHK, a startup accelerator I co-founded here in Hong Kong. As I broadcast the information out into my network, some former colleagues who never really liked me replied back smugly: “oh you are doing an Accelerator too? I heard there is an accelerator bubble.” Even the guy who I talk to at the gym told me that there are “a million accelerators out there.” Businessweek ran a story today about how the Accelerator bubble is going to pop.

While there is a proliferation of accelerators, there is no accelerator bubble. According to Wikipedia an economic bubble is:

An economic bubble (sometimes referred to as a speculative bubble, or a market bubble..) is "trade in high volumes at prices that are considerably at variance with intrinsic values". It could also be described as a trade in products or assets with inflated values.

The .com era was a bubble. Crazed investors pumped tons of money into speculative companies and inflated their values to levels not justified by true market conditions. Ditto the US and European housing markets last decade. But accelerators? Not so much.

For starters accelerators are cheap to put together (compared to raising $100 million to start your own Venture Capital fund) and usually done with your own money. (Note, no investor money was used to start AcceleratorHK, it is 100% funded by its parent company, Telerik.) Maybe people are referring to the companies going through the accelerators, that the proliferation of accelerators is drastically raising the valuations of all those companies that go through them. The standard practice of an accelerator is to invest $15,000 for 8% of equity, making the book valuation of these early stage companies under $200,000. Far less inflationary to valuations than a “friends and family” round. Actually the proliferation of accelerators are driving down the valuations of early stage startups! Considering that all accelerators operate on the same terms, we are more of a price fixing cartel than a speculative security in a bubble.

A few weeks ago I was speaking at Hong Kong’s Barcamp on the topic of the New New Startups Economics. My thesis is that the cost of starting a new business is about 20x cheaper than it was 15 years ago. The cost of going from business plan/idea to your first paying customer is measured in the thousands of dollars, not the millions or hundreds of thousands of dollars. I argued that accelerators are starting to replace the early round of seed capital such as “friends and family”. Since it is less risky and cheaper to start a company and there are more people willing to jump in, the combination of education and capital that an accelerator brings to the table is really the superior model. We have lots of inexperienced, but passionate people out there wanting to start a business in all parts of the world. As Eric Ries says: entrepreneurship can be taught. Accelerators teach entrepreneurship by doing. The best way.

Then someone asked me if there are too many accelerators and if I see any contraction coming in the space. I said “No way! We need more, not less accelerators!” Accelerators are like startup entrepreneurship universities. The world needs more of them. More accelerators mean more startups which mean more disruptive technology.

Will some crappy accelerators start to pop up? Sure. But they won’t survive and the market will self-correct. Maybe someone should do a “Zagat for Accelerators.” Winking smile

PS, applications close on April 5th for AcceleratorHK.

posted on Friday, March 15, 2013 2:26:19 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, March 14, 2013

AcceleratorHK, the world’s only startup accelerator focused on cross platform mobile development with HTML5 and Phonegap, has opened its applications for cohort #2 to be based in Hong Kong. The 14 week program runs from May 13th until August 16th, with Demo Day the week of August 12th in Hong Kong.

The application is here and will remain open for three weeks, until April 5th. The short listed companies will be lined up for interviews in early April and the final selected companies will be notified by mid to late April. As explained in our “About” page, we will be making a $15,000 (USD) investment in each company in exchange for an 8% equity stake as well as be providing co-working space for the 14 weeks in Hong Kong as well as a program in Customer Development.

The best applications are teams of two co-founders, one “business” and one “technical”. The team should have an idea and be ready to do customer development on that idea-even be willing to start over if that is what the results of their customer development tells them.

Hong Kong is an awesome place to customer development and validate your mobile app. The place is mobile crazy and everyone has a smart phone.

The first cohort of AcceleratorHK graduated on February 6th at their Demo Day. Take a look at how much fun it was preparing for Demo Day. Smile

AcceleratorHK Demo Day Prep from Stephen Forte on Vimeo.

posted on Thursday, March 14, 2013 2:07:37 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, February 07, 2013

Last night the first AcceleratorHK cohort had its “graduation” Demo Day at the Time Warner Center in Hong Kong.

 demoday-flyer-02

An accelerator is meant to speed up a startup’s progress over what they would have done on their own. Studies show that accelerators double or even triple the progress you would have made on your own. The goal is that if you are in a 3-month accelerator you should accomplish what you would have done in 6-9 months. Our teams in AcceleratorHK did exactly that, working on their Business Model Canvas for weeks (specifically on their segments and value proposition) and starting to build out their offering.

After 14 weeks of the accelerator program, the teams were ready to show the world what they had accomplished last night at Demo Day. Some teams had a “demo” of their app, some were just getting started and showed off their progress and discussed next steps. This is because some teams took longer to refine their idea (perfectly ok, exactly what an accelerator is suppose to do.)

We were oversubscribed and about 175 people crowded into the Time Warner offices and we had to have an overflow room with live streaming. Paul and I kicked it off with a short introduction as to what AcceleratorHK is, how an accelerator works, and what Demo Day is all about. Then the teams started their presentations.

First up was Taxiwise with Jean-Marc Ly as the presenter. Taxiwise is an app that allows you to make advance bookings of taxis in Hong Kong. Today you can do this offline, but it is painful to deal with the dispatchers, especially if you only speak English. Their app is driver specific and it creates a great experience for the user (us riders!)

IMG_20130206_193540

Next up was PayAllies with Carlos Grajeda aka “Carlos 2” as the presenter. This was Carlos’ first presentation in English! PayAllies is from Mexico and is solving the unbanked problem since only 17% of Mexicans have credit cards and 34% have bank accounts. They are like a debit/gift card/Google Wallet meets the Octopus card for Latin America. PayAllies is AcceleratorHK’s first success story, immediately after graduation they are headed to the Chilean incubator, Startup Chile for six months.

IMG_20130206_194659

Our third presentation was SurroundApp with Jeffrey Broer as the presenter. Surround solves the problem of English speakers wanting to engage with Chinese social media (half a billion Weibo users!) What is pretty cool about SurroundApp is that they can even translate slang into its “street” or common usage.

IMG_20130206_195540

After that was  Dynamino Lau Kok-hwa aka “Special-K” as the presenter. Dynamino is a new marketing campaign creation app that allows people to spread their campaigns by word of mouth.  In their testing they found out that they were equally as effective as Facebook ads but 23x less expensive!

IMG_20130206_200548

The penultimate team was 100 Village with Nick Wang as the presenter. 100 Village is a social venture that is focused on the Reggio Emilia approach (REA) to early childhood education. Nick gave a very passionate and inspiring speech about how schools are killing our kids creativity and how something as simple as playgroups can make a huge difference with the kids’ development. 100 Village’s app is “meetup for moms” where it helps facilitate the organization of REA style playgroups.

 IMG_20130201_171908

Last, but not least was GOnnect with Furuzonfar aka “Foobar” as the presenter. GOnnect is an app that helps you find, make, and keep connections at an event. They solve the problem of who you should talk to at an event by matching you up with someone to network with and making it easy to connect with them later on via LinkedIN or something similar. Finally we can do away with business cards!

mmexport1360215793087

After the presentations, we had a reception for the audience to come and meet the teams at their booths. In order to force the audience to mingle and network with the teams, we provided cold beer at each of the teams’ table. In addition, each team had a drink and food from their home country. The teams were mobbed!

IMG_20130206_204908

Carlos Rivera aka “Carlos 1” had to head back to Mexico to get his visas for Startups Chile so he could not attend, but we Skyped him in all night. Here he is talking to potential investors.

mmexport1360215723562

I was surprised by the amount of investors, media, and government officials that attended. Maybe they just wanted the free vodka that Team GOnnect provided. Winking smile 

IMG_20130206_210210

We’ll be opening up the applications for cohort #2 in a few weeks with a start date slated for mid-May. Stay tuned if you want to apply. :)

posted on Thursday, February 07, 2013 4:22:55 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, January 31, 2013

As the AcceleratorHK cohort teams are rounding out their Demo Day presentations, I am proud to announce that Paul and I are running a new (semi) Virtual Accelerator focusing on Win8 App development.

The focus of the accelerator is early stage startups who are willing to work on their business full time.  As always our preference is for a two person (or more) team that has at least one techie and one business co-founder and is willing to work on the project full time.

image

The selected company will receive a $30,000 (USD) investment (for 4%-8% equity) from Telerik and be put through a 14 week program starting with an intense week onsite in Hong Kong alongside the next AcceleratorHK cohort working on customer development. (We’ll pay your airfare and housing for the week in Hong Kong in addition to the investment.) After the week in Hong Kong the team will return home (or decide to stay in Hong Kong, but it will have to come out of the $30k Smile) and do the customer development process with guidance from the Accelerator virtually. At then end we will help you launch your product to the world and have your business take the next step.

The application is here, apply today! The deadline is March 15th. The world famous Robert Scoble is helping determine the company that is accepted.

---

Update 04 Feb 2013

Originally I wrote that there was no equity taken, that was my mistake, we take between 4% and 8% equity for the $30,000 investment. Sorry for the confusion.

posted on Thursday, January 31, 2013 8:15:33 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, January 30, 2013

During the past two weeks, the AcceleratorHK cohort has been hard at work finalizing their offerings and building their Demo Day presentations. Paul and I have been meeting with some teams two or three times a day working on everything from the their MVPs to their slides and presentations.

 IMG_20130129_151756

We had a lot of mentors come in including Tytus Michalski, Richard Campbell and Remi Caron. The mentors were helping the teams out during the “crunch time”.

During all of this excitement, we had a visit from Telerik! Three of the four co-founders of Telerik came in to visit the accelerator last week as well as a number of VPs and BizDev folks. The teams got some awesome advice from the group and one even challenged the CEO of Telerik to ping pong (and lost!)

IMG_20121220_181649

Lastly, the cohort and 18 people from Telerik blew off some steam at Happy Valley Racetrack for a social. I won $500! Smile

IMG_20130123_211532

Next week is Demo Day and the end of the formal part of the program. Stay tuned for an update on Demo Day!

posted on Wednesday, January 30, 2013 10:29:09 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2] Trackback
# Saturday, January 12, 2013

After two weeks off for the holidays, the cohort at AcceleratorHK was back at work this week. We started the week off right with the 1:1 meetings. The teams are starting to spend more time building the apps and preparing for Demo Day, which is going to be held on Wednesday February 6th. Less than 4 weeks away!!

We also had a great visit by mentor Jochen Kleef. Jochen has vast experience as an entrepreneur as well as an investor so the questions asked to Jochen were vast.

IMG_20130109_150620

We also had a social where we went for Korean BBQ and raced the taxi team to the restaurant on an overcrowded tram.

IMG_20130110_190304

The tram team won. Smile 

IMG_20130110_192834

We rounded out the week with the first attempts at Demo Day presentations on our Friday presentation day. The teams are starting to get the format down and the message that they are trying to deliver.

I walked them through the flow of a prefect presentation for Demo Day: one that has contrasts (between what is and what could be or between good and evil, etc) as well as a clear start, middle, and finish (call to action)  with clear turning points. This is called a sparkline of a presentation. We had the whole room try to guess each presentation’s turning points as well as their call to action (last part). The presentations are getting there. Smile Stay tuned…

posted on Saturday, January 12, 2013 5:46:27 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, December 21, 2012

We are already at Week 7 at AcceleratorHK! The teams are hard at work building their MVPs and doing Customer Validation before we take a two week break for the holidays. All the teams are staying in Hong Kong over the holidays and are continuing to work, there are just no scheduled Accelerator programs. The clock is ticking until Demo Day on February 6th!

We started off the week right. On Monday we had a great mentor, Viresh Bhatia, come on in and spend a lot of time with each team. Viresh is an experienced entrepreneur as well as the chair of the Telerik Board of Directors. Viresh was also impressed with the mobile adoption in Hong Kong as well as Samsung’s market share in Hong Kong (specifically the popularity of the SIII and NoteII).

37660c86482111e2b41b22000a1f9a15_7

We continued our 1:1s on Monday and Tuesday as most teams are now building prototypes and MVPs. Two of the teams apps are already on my phone!

Screenshot_2012-12-20-17-47-00

We had an additional mentor, Peter Burton, come in on Thursday. He only had a short amount of time and met briefly with a few teams and made some connections to people they all should talk with. We also convinced Peter to flash his old Samsung Galaxy S to Cyanogen Mod 10.1 and Android Jelly Bean 4.2.1. He proved his geek cred by coming in the next day with his flashed phone.

Note: A lot of the cohort members, including Paul and myself, run Cyanogen MOD. If you are in a mobile app accelerator, you may as well be flashing phones! Smile 

In addition to all of the hard work we also had a little bit of fun exploring Hong Kong cuisine. One day at lunch we got to see the Mexican team use Chinese chopsticks for the first time.

IMG_20121217_135341

We had a social dinner one night where we trekked over to the the other side of town and had HK clay pot rice dishes. This was a crowd pleaser. Smile

IMG_20121219_192156

Lastly, we had our elevator pitches and 10/20/30 presentations on Friday. We decided to have our own AcceleratorHK Christmas party complete with cookies, cake, hot wine, beer, and of course tequila.

IMG_20121221_152112

See you in 2 weeks!!

posted on Friday, December 21, 2012 8:04:03 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, December 18, 2012

Last week marked the halfway point in the program at AcceleratorHK. All teams have progressed nicely and most are now doing full fledged Customer Validation complete with MVPs and prototypes. I even have one Icenium built and deployed app on my phone! One team took their app public and tested their MVP at a real live event in Hong Kong.

This was a “working” week that was light on meetings and mentor visits, however, we did have two very important events this week. The first was the HK Startup Bootcamp Demo Day. Bootcamp is also run by Paul and has 7 teams that pay for startup coaching and a three month program. The program is structured very different than an accelerator, but has some similarities, the most important being Demo Day.

IMG_20121212_210016

The cohort got to see what a Demo Day is all about; the excitement and buzz at Demo Day was amazing. Hopefully the cohort is now less nervous. Smile

In addition to Demo Day we also had mentor Patrick Lee, the co-founder of Rotten Tomatoes, come on in and talk to the teams about building a business in Hong Kong.

CoCoon Entrepreneurial Series: Patrick Lee- Co-Founder of Rotten Tomatoes

This week is the last week before we take a Christmas break. Stay tuned for more updates..

posted on Tuesday, December 18, 2012 8:42:52 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, December 13, 2012

On Monday I spoke at Open Web Asia held on beautiful Hainan Island in Mainland China. The event, in its third year (year one was held in Korea and year two was held in Malaysia), was organized by Gang Lu of technode, a popular tech blog in Asia.

IMG_20121210_092532

I was asked to speak on two panels, one on “The Golden Age of Mobile” in Asia, where I made the argument that it has always been a golden age for mobile in Asia, Japan and Korea led the world in mobile a decade ago and the NTTDoCoMo iMode phone was the hot hop must have phone in 1999-2001 that lead the world in innovation. Hong Kong’s very own Yat Siu made some great points about WeChat (200m users) and Weibo (400m users) explosion due to the migrant workers in China needing to stay in touch with family and friends back home.

I also spoke on an investors panel about the startup investment situation in Asia. I was asked what was the #1 criteria when selecting the companies to invest in for the AcceleratorHK program and I said the team. All the other panelists agreed, I was glad that I was asked first. Smile 

In addition to other great panels, there were startup pitches by 10 hot Asian startups. We had startups from Korea, Japan, HK, Singapore, and Malaysia presented. I loved a team from Malaysia, however I was still a little biased towards the Hong Kong startups.

IMG_20121210_094332

Lastly, the best part of the day was when the community leaders from 9 Asian countries did a presentation about the startup ecosystem in their home country then had a panel discussion. They represented very diverse countries at different stages of economic development: compare Japan to Vietnam to Indonesia to India for example. What was fascinating was that while each country was different and had unique challenges and opportunities, they all wanted the same thing: more entrepreneurs. I think we may be entering the golden age of Asian entrepreneurship!

The community leaders where:

Lastly, what would a conference be without a party and what would a party be in Asia without a Gangnam Style dance. Here is Daniel, James (from Korea!), and Casey getting down:

posted on Thursday, December 13, 2012 8:20:36 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1] Trackback
# Monday, December 10, 2012

Last week was Week 5 at Accelerator HK. I can’t believe how fast it all is going, before we know it, it will be Demo Day! The teams last week worked hard at Customer Validation and have been narrowing down their segments and value propositions. They have been starting to develop MVPs of various shapes and sizes. Some of the developers have been hacking away at PhoneGap and have sent Telerik feedback on Icenium and KendoUI. We had two mentors  with specific skillsets come in to spend time with two different teams as well.

In addition to Customer Validation, we had the opportunity to attend a Pecha-kucha night in Hong Kong. We were lucky enough to have the founder of the global phenomena of Pecha-kucha nights, Mark Dytham, in town to MC. It was an interesting night complete with arguments over how to pronounce Pecha-kucha, two Macs crashing in the middle of presentations, and topped off with someone in the audience fainting. Despite all of those setbacks, the night was a great learning experience for the cohort.

IMG_20121205_201051

On Thursday most of the cohort was at the SME Expo in Hong Kong doing customer validation interviews and MVP inspection. After the long day at the event, we had a Hot Pot social diner.

IMG_20121206_193253

Friday was our typical elevator pitches, Friday check-ins, founder talks, and our very own Pecha-kucha talks. Then on Saturday we went up to Shenzhen to the massive component markets to see how hardware startups operate. Since we are a hybrid mobile accelerator, two teams bought their first Android phone at the gadget markets.

IMG_20121208_115000

We then chipped in and bought Paul some jeans. Next step, tee-shirts…

IMG_20121208_150905

We caught up with some friends in Shenzhen and the cohort went to late night Karaoke as well as some more customer validation on Weibo.

IMG_20121208_233910

Stay tuned for news from Week 6!

posted on Monday, December 10, 2012 12:55:20 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Sunday, December 02, 2012

This past week was the 4th week of the Accelerator HK program. We are already 1/3 of the way through the program!

This week we had mentor Michael Michelini, founder of Weibo Agent come in and speak to the teams. Mike is an American living in Shenzhen, China and working on his own startup called Weibo Agent. Weibo Agent is a graduate of the accelerator Chinaccelerator in fall 2012. Mike came in and talked Social Media strategy and about his experiences in an accelerator.

IMG_20121127_151312

Later in the week we had Cory Kidd, co-founder of Intuitive Automata come in and speak to the teams. Cory is an American living in Hong Kong and running a startup that is building a robot to be used as a weight loss coach. It is always awesome for me to listen to Cory speak since he runs a hardware company and I think hardware is the new software.

IMG_20121128_150703

Cory also took advantage of some Hong Kong government grant money for startups and explained how to take advantage of those.

This Friday at the Friday check-in we worked on presentation skills with many presentations and demos going on. We even challenged members to deliver the 1 minute elevator pitch for other startups in the cohort! Now that most of the cohort have done the “Founder Friday” talk about themselves, Paul and I were able to give everyone feedback based on the skills we saw them demonstrate in their personal speeches.

Paul of course was dressed down again for Friday Hoodie Day (where we channel our inner Zuckerberg). Smile We will see if he buys a pair of jeans this weekend.

IMG_20121130_135744

Lastly, most of the cohort attended the Agile Tour Hong Kong all day seminar on Saturday. We had five speakers from around the world talking about DevOps, Scrum, Distributed teams, Agile Estimation, and TDD.

IMG_20121201_101751

Week 5 is also a busy week, stay tuned for more progress.

posted on Sunday, December 02, 2012 5:46:14 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, November 27, 2012

Last week was our third week at AcceleratorHK and the teams are starting to really get the hang of Customer Development, specifically Customer Discovery interviews. A lot of the teams have taken the feedback that they got on their customer discovery interviews and started to build MVPs and prototypes to do the next round of customer discovery (and some are thinking about moving to Customer Validation soon.) Even though it is early, it is exciting to see the early stage prototypes. (I can’t help the application developer inside of me.)

One team treated some of their interviewees to a Hong Kong Hot Pot dinner. What better way to get a captive audience? Smile

IMG_2152

We also focused on presentation skills at our Friday meeting. We had some founders give presentations about themselves and some do a Petcha-kucha.

 Carrie Founder FridaySoren PK

Lastly, we finally got our program director, Paul to loosen up and started a brand new Accelerator HK tradition, Friday Hoodie Day.

Paul dressed up2

This week is a big week with mentors coming in, demos, and more customer discovery/validation. Stay tuned.

posted on Tuesday, November 27, 2012 7:03:05 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1] Trackback
# Wednesday, November 21, 2012

Last week was our second week at AcceleratorHK and things are starting to fall into a good cadence. On Monday, we had our first of the weekly 1:1 meetings and Paul and I worked directly with the teams on the issues that they face. We also had two amazing mentors come in:

First was Salim Virani, the creator of Leancamp. He talked to us about Customer Development and took a lot of time out of his vacation time in HK to spend with the teams on how to ask the right Customer Discovery and Customer Validation questions.

 IMG_20121113_160618

Later in the week we had Mikaal Abdulla, co-founder of 8 Securities, a Hong Kong startup success story, come in and tell us the story of leaving a well paying secure job and going out and starting a new business in Hong Kong, along with the war stories of raising money and some secrets to their brilliant marketing campaigns.

 IMG_20121115_150506

On Friday we did our first Friday all-hands meeting and was able to have an update by each team on their progress, practice their elevator pitch (next week I am going to put some of them in an actual elevator to practice), and ask the cohort for any help. We also gave out some Telerik tee-shirts. Smile We have a strict attendance policy, so one member had to phone in via Skype who was home sick. (Notice we gave him his tee-shirt anyway.)

IMG_20121116_140435

On Friday night we went out for some beers after a long week at the Accelerator doing Customer Development. The teams are still focusing on Customer Discovery and Customer Validation and will be in Week 3 as well. Stay tuned…

posted on Wednesday, November 21, 2012 6:50:02 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, November 15, 2012

I am happy to be part of the organizing committee for the Agile Tour in Hong Kong on December 1st. I also convinced Telerik to send me 30kg of Tee-shirts for attendees of the event. Smile Details are below, register today, space is limited (only about 30 seats left)!

EventBrite Link to register: http://agiletour2012hongkong.eventbrite.com

AGILE TOUR 2012 COMING TO HONG KONG DECEMBER 1, 2012

Welcome all,

Agile Tour is finally coming to Hong Kong! We organize a full day with international and local expert speakers on a variety of Agile topics:

Title : How to suck less with distributed teams
Speaker : Emerson Mills
Abstract:

We all know that distributed teams suck. ( Don't we? ) They perform much worse than co-located teams. Unfortunately for places just starting to move to Agile methodologies, it's often a impediment that has to be worked around or removed. In this session we'll discuss some of the illusions about distributed team productivity and how to get around some of the problems before you can move to co-located teams.

  1. Why did we even use them?!
  2. Distribute teams not people
  3. Giving teams ownership of features and not tasks
  4. Sharing a product development culture

Title: Inject start up spirit
Speaker: Wang XiaoMing
Abstract:

During the past a couple of years I heard many complains from CEOs and senior management that there was unavoidable bureaucracy and large company problems which were their big pain. Many teams suffered unclear project goals, small team but many management layers, ineffective meeting, tons of reports and unstable products. Those problems caused project failure or delay. In this presentation I will lead you to experience a real project in a large company who saved themselves from failure and transferred to a team with start up spirit and doubled their velocity in 4 months.

  1. A real project, double velocity
  2. The pain of founders
  3. Inject start up spirit
  4. Lightweight Agile.

Title: Test Driven Development
Speaker: Ian Lucas
Abstract:

In this session we will explore Test Driven Development (TDD) utilizing XQuery, the XML Query Language. TDD helps facilitate higher quality software solutions, and the modular nature of XQuery lends itself well to the practice.

  1. TDD in context
  2. Defining Success criteria upfront (i.e. Test Cases as requirements specifications)
  3. Practical examples of TDD with XQuery and XQunit

Title: Agile ate my Project Plan!
Speaker: Michael Mallete
Abstract:

Among the biggest reasons for the reluctance of organizations in adopting Agile is their belief in the effectiveness of traditional models in estimation and planning. The fear of losing their perceived predictability through their conventional techniques. Agile erases these all and leaves you with a chaotic view of what is to come. But is that truly the case?

We will first explore the assumptions behind traditional estimation and planning techniques
We will then counter that with the assumptions behind Agile estimation and planning
We will show the different features of traditional estimation and planning
We will then show the different features of Agile estimation and planning
We then compare what we actually lose and what we gain when we move toward Agile estimation and planning

Title: Introduction to DevOps (topic to be confirmed)
Speaker: TBD
Abstract:

DevOps is a response to the growing awareness that there is a disconnect between what is traditionally considered development activity and what is traditionally considered operations activity. This disconnect often manifests itself as conflict and inefficiency.

You will have a chance to meet and talk to international and local Agile experts!

Intended Audience

  • IT professionals already experienced in Agile or thinking about moving to Agile (Developers, Testers, Business Analysts, Project managers, Scrum Masters, Product Managers / Owners etc.)

  • Managers responsible for Agile Development or in future likely involved in Agile

  • Anyone interested in Agile

How to register

Through EvenBrite. Register Early to avoid disappointment.

Regular: 75 HK$

Price on day self – provided there are still seats: 100 HK$

EventBrite Link: http://agiletour2012hongkong.eventbrite.com

Date
Saturday, December 1, 2012, 9am – 5pm, with lunch break from 12-1:30.
There will be time to meet speakers after 5pm.

Location

Cocoon, Causeway Bay, close to MTR and various lunch locations with local or international food.

http://www.hkcocoon.org/en/index.aspx

Transportation

  • Tin Hau MTR Exit A2 (10 mins walk)
  • Fortress Hill MTR Exit A (7 mins walk)
  • From Hong Kong Island, take Route 5X or 5 Bus straight to the final station
  • From Kowloon, take Route 118 Bus, get off the bus at Gordon Road station (3 mins walk)
  • From Airport, take Route A11 Bus, get off the bus at Gordon Road station (3 mins walk)

Supporting Organizations

posted on Thursday, November 15, 2012 8:53:13 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, November 14, 2012

This past weekend was the 3rd Startup Weekend in Hong Kong and I was lucky enough to return again as a judge. This year it was huge with 14 teams competing!

 2012-11-10 16.49.13

As usual, I was very impressed by the ideas, hard work, and execution. They stared on Friday night with lots of pitches and team formation. The group worked all day Saturday and Sunday at the CoCoon co-working space in Hong Kong (the same co-work space AcceleratorHK is using). A few AcceleratorHK cohort members as well as program director Paul Orlando were helping out as mentors.

2012-11-10 18.35.38

On Sunday night we all gathered to a different venue where we heard all of the 14 pitches. Myself and four other esteemed judges listened to the 5 minute presentations and lead the 3 minute Q&A session.

 2012-11-11 17.23.48

The teams came from all walks of life as well as had ideas and teams that were in a variety of domains including: social, conference networking, kitchen rental, shopping, car sharing, film location scouting, and creative ways to use your free time. After the deliberation, which was close, we choose “FilmScout” as the winner. FilmScout was a team that built a solution for filmmakers and film students to find film locations to shoot in. While a niche market, they were a 100% solution to a market segment and demonstrated that they followed the Customer Development process over the course of the competition (which accounts for 1/3 of the judging criteria).

After the event there was some networking and I was interviewed on local Hong Kong TV about the startup scene in Hong Kong, AcceleratorHK, and of course my role as a judge in Startup Weekend.

2012-11-11 20.47.49

posted on Wednesday, November 14, 2012 8:49:55 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, November 13, 2012

Last week was the first week of the AcceleratorHK program. We have six teams that make up this cohort coming from: Hong Kong, Silicon Valley, Mexico, and Malaysia. The teams are just starting out but are in the following domains: social, location based, and community.

We started out with an introduction to Customer Development by program director Paul Orlando and then broke up the teams and gave them a Startup Weekend style assignment : go out and work on project for 48 hours with new teammates with a focus on Customer Development. The results were…interesting.

We had two mentors come in and work with the teams. John Bristowe came in from Australia and spoke about HTML5 and Phonegap (since we are a mobile accelerator) and then provided technical training on KendoUI and Icenium.

2012-11-08 10.18.00

Shanghai based, Spanish investor Oscar Ramos also came in and did a great mentoring talk on Visual Thinking and how to use it as a tool in your customer development process.

2012-11-08 17.16.26

We even had time to hit the racetrack at Happy Valley on Wednesday night for Oktoberfest night for a cohort social.

1352294791184

On Friday we had our first check-in to see how the teams were doing and each team did their elevator pitch. (One team included their winnings at Happy Valley as their first revenue. Smile)

A great start to the Accelerator. Stay tuned for more updates.

posted on Tuesday, November 13, 2012 8:35:09 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, October 11, 2012

On Tuesday night I visited and delivered a talk to the cohort at Launchub, Bulgaria’s first software startup accelerator. Launchub is financed by a seed fund made up of private and EU money. Launchub is hosted at a great co-work space, betahaus, in downtown Sofia. It was great visiting betahaus and meeting the teams. I quickly noticed that the Bulgarian accelerator is the exact opposite of AcceleratorHK; in Bulgaria, the teams are engineering heavy, while in Hong Kong, the teams are business people/designer heavy. Too bad we are too far away for a merger. Smile

I delivered a talk titled: “Lessons Learned From a Career in Startups.” I spoke about raising money, how a business partner is like a wife/husband, how to align staff’s expectations with your own, and then some general customer development (pivots, mvps, and all the current popular lingo.) My bosses at Telerik are involved in the accelerator and are mentors, so I told some jokes about them too.

At the Q&A time, Lyuben Belov, the program director, wanted me to put a team on the spot and have them do their pitch. I turned the tables on him and first asked Lyuben to pitch to me to invest in Launchub. (One of the lessons was to be ready to go now!) Lyuben did a fabulous job and then we picked one team, Useful at Night, to pitch. (It is also cool since this team also applied to the AcceleratorHK, but they are already in Launchub. I invited the team to come to HK for a week and spend time with the AcceleratorHK cohort.)

photo

Evelin Velev from the team did a great job with absolutely no prep time.

To round out the evening, I put one of my Telerik colleagues on the spot when asked about the future of hybrid development. Hristo Neychev is the director of BizDev for Icenium, so he best be able to do this. Smile He did not disappoint and we had fun, I was making slides on the fly for him.

IMG_8370

After the talk and lively Q&A session, we went to a downtown bar and had some food and drinks and talked all night long about startups, technology, and why I joined a Bulgarian Startup when I came to Telerik many years ago.

posted on Thursday, October 11, 2012 5:28:45 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Tuesday, September 25, 2012

I often get the question, “why the focus on hybrid development for your accelerator?” This question has come up more and more as Mark Zuckerberg said that Facebook’s focus on HTML5/hybrid development was a mistake.

As I argued over a year ago on this blog, it is mistake to bet exclusively on native or hybrid since some Apps will call for a native approach and some will call for a hybrid approach. Projects that need maximum performance and hardware interaction will require a native approach (medical scanning/rendering apps and some games come to mind) and projects that require larger reach and very fast time to market require a hybrid approach. Each approach has its limitations and trade offs.

If I advocate both approaches in a developer’s toolkit, why would I be starting the world’s only Hybrid Accelerator? The reason is that a startup should never, ever, go native. The very nature of a startup is that you have no money and require a super fast time to market. Just last week at a startup networking event in Hong Kong two super cool startups showed me their native apps on their iPhones. They then asked me what I thought of the app. I said: “your app sucks since over 75% of the smartphone market can’t use it, myself included as an Android user.” They countered: “we have no money, so we choose one platform to build the prototype on.”

My advice for them and most startups: For your prototype and V1 release you should go hybrid. You will have a much broader reach and won’t have to maintain two or more codebases (and double the programmer staff.) You’ll save time and money. Once your company matures and you have lots of users and the money to spend on the development, then you should consider going native if you are bumping into the limitations of hybrid development (chances are only a small percentage of apps ever will).

What about a company with 1 billion users, over $1b in profits post-IPO, and a super slow API in the first place? Yes, Mark Zuckerberg proves my point, hybrid development helped Facebook get to market fast with its hybrid mobile app. It was not a mistake for Facebook to go to market fast and cheap with a hybrid app. The mistake Zuckerberg made was not deploy some of those profits to build a better hybrid or go native years ago.

posted on Tuesday, September 25, 2012 2:07:22 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [4] Trackback
# Thursday, September 13, 2012

As Paul and I are starting to review the first batch of applications to AcceleratorHK, we have stressed that you can’t apply for the accelerator program with only one founder. The optimum team make-up is two people: one “business” co-founder and one “technical” co-founder.

The most frequent question that I get from potential applicants is: “Why do I need a technical co-founder?” The question alone tells you something since it is not: “Why do I need a business guy co-founder?” This tells me that there are TONS of excited non-technical people willing to take the plunge and start a business, but not enough techies. This is a problem.

image

I answer this question by saying that first you can’t do it all alone. Very few tech companies today were founded by one business guy. Second, at such an early stage (and by definition if you are applying to an accelerator you are an early stage), you will be doing a lot of Customer Development, MVPs, and “pivots.” It is critical in this early stage that your tech lead is part of the Customer Development process. If your tech lead is not a co-founder, at best, they will not understand Customer Development and want to do product development, and at worst, they will resist the process every step of the way. Only by constantly meeting with potential customers, doing Customer Development, and “having skin in the game” will a programmer be able to deliver on the vision of the company.

I’ve witnessed quite a few early stage companies enter an accelerator with a hired gun (consultant) as the “technical co-founder” in order to satisfy the two co-founder rule. The founder and the consultant have an agreement that the consultant would build the MVP and prototype and get the company to demo day in exchange for some equity. Never have I seen this work out; most have had disastrous results. In just about every case the consultant “co-founder” is in consulting mode and complains that “all those Accelerator meetings get in the way.” By forcing the startup into product development mode, the consultant negates all the benefits of the accelerator, since all accelerators are built around the Customer Development methodology. This also shows the level of disengagement, an accelerator cohort is for the entire team, not hired guns. I have seen one company recently lose their technical consultant “co-founder” halfway through the accelerator when he got a better gig. He used the first pivot as an excuse to bail. (At least he returned some of the equity.)

Usually, the non-technical founder is held hostage by the development team’s schedule and often times, the development progress is slower. Since the same level of passion is not there, the consultant just chugs along doing what he is told, leading to a misallocation of total work. You have founders working 16 hour days sleeping under their desks and the programmers pulling some overtime grumbling that they are losing money on this gig.

The only exception I have seen to this is a founder who had a team of guys in another country as full time developers lined up. He applied to an accelerator and was told he needed a technical co-founder, so he brought the lead developer to the accelerator for the duration of the program. While this worked out well, the company already had enough cash on hand to lock up the development team, so this is probably not the case for most other early stage startups.

image

If you are thinking of doing a startup, remember you can’t do it alone. If you are non-technical, you can’t outsource your core intellectual property. Besides if you can’t convince a techie with a well paying and stable job to quit and work at your high risk venture for free, then well, you probably don’t have enough sales skills to convince customers to buy your revolutionary new product. Smile

posted on Thursday, September 13, 2012 9:21:32 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Wednesday, September 05, 2012

Over the past year I have been a mentor at an accelerator called Haxlr8r. Haxlr8r, based just north of me in Shenzhen, China, is a unique accelerator since it is the only accelerator to focus exclusively on hardware startups. The targeted hyper-focus of the cohort paid dividends as everyone is in the same space and learned from each other and shared their experiences.

That got me thinking, why not do the same for software!?!? Over the past few months,  I’ve been helping organize the first ever early-stage startup accelerator in Hong Kong. This accelerator is not like any of its kind. It is the only accelerator to focus exclusively on startups doing hybrid mobile development. Why the focus on hybrid? Gartner predicts that by 2015, 80% of all mobile applications developed will be hybrid or mobile-Web-oriented. Just like at Haxlr8r, the laser beam focus of the cohort on hybrid mobile development will only enhance the experience. Why Hong Kong? There are two mobile phones for every man, woman, and child in Hong Kong. In a country of 7 million people, there are 7 independent 3G mobile phone providers with coverage everywhere, even in the subway and on top of the tallest mountain. Facebook penetration in Hong Kong is one of the top per-capita in the world. Hong Kong is not only all over Twitter, but Weibo as well. This is one mobile crazy town, the average taxi driver even has 2 phones. Hong Kong is a great place to validate your mobile app and one of the top places in the world to do business.

image

The accelerator runs from Nov 5th to Feb 8th and we are going to to provide mentors, investment ($15k USD), lean startup education, co-work space, demo day with investors, just like the gazillion other accelerators out there. In addition, we will also add a little on software development best practices, provide access to free developer tools (Telerik’s Icenium and KendoUI), do agile development training (I think accelerators forget about item #2 in the Customer Development Manifesto), and include free Pluralsight subscriptions.

I think that this represents the next stage of accelerators; laser focused with a little extra love for the tech team.

Want in? Apply today, we close out the cohort applications in a few weeks.

posted on Wednesday, September 05, 2012 7:21:32 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, August 30, 2012

Last week I traveled up to Shanghai, China to speak at the 10x10 event: bringing in 10 tech “pioneers” to speak for 10 minutes each to a crowd of entrepreneurs. I put pioneers in quotes, since there were 9 pioneers plus me speaking.

It was a great way to connect with the startup scene in China. The event was sponsored by Chinaccelerator, an early stage startup accelerator that has 10 companies in a cohort right now. I met with most of the 10 companies and was very impressed; most, but not all, were doing mobile or social media startups. People in the West understand that Facebook and Twitter are banned in China, but forget that there are local (but censored) alternatives.

The home grown Chinese versions of Facebook and Twitter are booming. The most popular being Weibo, which is the “Chinese Twitter.” There are just as many Weibos as there are Tweets and most of the companies in the accelerator are trying to leverage that. (Just a side note, my Weibo account is: SteveForte.)

Some of startups consisted of only Westerners, some were only local Chinese, and some were a mix. I am mentoring one company that has a local Chinese co-founder and an American co-founder.

2012-08-24 14.33.46

The sessions were great. One of the speakers said that Silicon Valley is about making money and that China is about acquiring users. While there may be 500 million internet users in China, most don’t have a credit card and only access the internet on their mobile phone or at an internet café. I find the similarity in the rush for users in China to the thinking of the startup and investment community in the USA in 1999 striking. That said, it is great to see so much action going on.

I did my talk on the “New New Startup Economics” which was about how it costs much less to start your business today than it did a few years ago and an order of magnitude less than 10 years ago.

Here are my slides:

 
posted on Thursday, August 30, 2012 4:35:33 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, August 17, 2012

While I was in London last week, Telerk’s UK Country Manager and I took some time to visit the Google Campus, a massive co-working and startup incubation space. There are six floors of co-working space where you can apply to be a resident if you are a startup based in London and an awesome cafeteria/coffee shop where anyone can come in for the day. On the top floor is Google’s offices. Even though Telerik has a London office, we registered online and spent a day working at the co-work space, mostly to get a feel for the co-work space and check out the scene. (Also, Telerik’s KendoIU was featured at Google I/O 12, so we figured we should give Google some love.)

IMG_20120730_102408

The co-work space was very cool. From the moment we walked in there was a buzz of energy. Lots of meetings going on, people nose down doing work, and of course playing fuzz-ball.

IMG_20120730_103159

Besides the co-working space, Google is also deeply engaged and helping build a startup community in London by providing mentoring programs, speaker series, networking events, and all other types of startup support, open to the public. It is great seeing a large tech company helping build a startup community, I hope to see more companies do the same. (Hint Hint Google, Microsoft, Apple in Hong Kong. Smile )

If you a startup person and are passing through London, make sure you drop by. My favorite thing: the Android “Player.”

IMG_20120730_122106

posted on Friday, August 17, 2012 3:36:59 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Tuesday, July 24, 2012

Yesterday I blogged about using a spreadsheet in your Agile Estimation efforts. We left off after the first sprint and had an estimated time to completion of 15.14 weeks. Now let’s take a look at how this works after another sprint.

image

The spreadsheet is the same, however, now we have data for sprint 2. Cell C2 represents the backlog size in story points after sprint 1. In this case if you remember from the blog post yesterday, our backlog is 106 story points. The team is going to commit to 8 story points worth of work (cell C3) and completes 8 (cell C4, told you the team gets better. Smile) This makes our Team Velocity 7.5 (cell C5), which is just the average of the total story points completed in sprints 1 and 2 (cells B4 and C4) or B4+C4/2.

The users added 4 story points worth of work to the backlog (OBTW, cell C6) and the bugs were 2 story points worth of work (C7). No items were removed (C8). Now time for the math. If you remember from yesterday, it looks like this:

Total Backlog/Team Velocity

or

((C2+C6+C7)-(C4+C8))/C5

or

((Total story points at sprint start  + OBTW in points + Bugs in points)- (Total points removed from backlog + Total Story Points Completed in This Sprint )) / Team Velocity

or

((106 + 4 + 2)-8) / 7.5 or

104/7.5= 13.87

This means that it will take approximately 14 sprints to complete this project, fairly consistent with the 15 in the last estimation. But what about allocating time for OBTW and bug assessments as well as rework. Meaning, we have to allocate time to asses the bugs and OBTWs and estimate the ones that we decide to add in the backlog. This takes time, usually in the first sprints you work overtime and your Team Velocity goes down, however, we don’t want that to happen for the rest of the project. The way to work some of that time back into your estimate is to discount the Team Velocity and redo the math. Let’s take a look at our spreadsheet again, this time discounting the Team Velocity.

image

What we are doing here is providing a second estimate (C11) that will take into account the time added to the project for assessment of bugs, OBTWs, research spikes, etc, and the time it takes to estimate them. If you remember that we got an estimate of sprints to completion as 13.87 by 104/7.5= 13.87 where 7.5 was our cumulative Team Velocity.

Now we will discount that 7.5 by 5% and recalculate. Why 5%? Gut feel, you will eventually replace that 5% with a more precise number, but in absence of any real data, I just discount by 5% up front. You could either discount the Team Velocity by an additional 5% every 1-2 sprints, or you can try to calculate your bug rate/OBTW rate and replace the approximation by a different number. To be honest, it is easier to just use the sliding scale of –5% every 2nd or 3rd sprint to get started.

So the new math looks like this:

104/(7.5 * .95) or 104/7.125= 14.60. Almost 15 sprints, slightly more than our original estimate at the end of this sprint of 13.87 or 14 sprints. Our new, more accurate estimate takes into account the time that will be added to the project for new items, bugs, and R&D spikes.

The second discounted or “Weighted Sprints to Completion” (C11) is optional, however, it is more accurate. I like using that number since it attempts to account of the unknown. While it is impossible to predict the unknown, it is a scientific way to at least acknowledge that there will be bugs, OBTWs, and lots of other unaccounted for stuff.

Lastly, let’s take a look at how this progresses over more sprints.

image

As the screen shot above shows, as you progress to the next sprint, you are going to do the exact same thing, except that over time you will discount your Team Velocity by a larger percent, for example, in sprint 4, we reduce Team Velocity by 10% and 15% in Sprint 5. You increase the discount rate to account for more uncertainty in your project, the longer the project goes on, the larger the bugs and OBTWs get. Again, it is up to you how to adjust the percent used.

Hope that this helps everyone out there looking for some guidance on the spreadsheet.

posted on Tuesday, July 24, 2012 4:34:15 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, July 23, 2012

During the recent conference season, I did a lot of presentations about Agile Estimation based on my Pluralsight course of the same name. At the end of the sessions I showed an Excel spreadsheet that shows how to take the concept of Agile Estimation one step further by measuring what actually happened and using that as part of your estimation.  I am assuming that you know something about Agile Estimation, however, at BarCamp Hong Kong, I got a request to further explain this spreadsheet in a blog post. As promised, here it is. Smile 

Let’s take a look at the spreadsheet after your first iteration (Sprint 1). Let’s assume that our iterations (sprints) are two weeks long. To keep things simple, let’s say that our product backlog had only 100 story points worth of work in it. (Remember this can represent 10 or 25 user stories, doesn’t matter.) This is shown in cell B2.

image

I like to track everything. Cell B3 shows how many story points the team took out of the product backlog and put into the sprint backlog. This is what they committed to do during the sprint. Remember for Sprint 1 the team will always over commit and under deliver. Who cares? We care more about what they can do averaged out over time (the Team Velocity.) After two or three sprints, the team will start to commit to the correct number and Team Velocity (the average of the total story points completed) will even out. But let’s not get ahead of ourselves.

Cell B4 shows us how many story points the team actually completed in the sprint (in this case 7 story points) and cell B5 shows us the cumulative Team Velocity, which in this case is also 7 since it is the first sprint. After the next sprint we will start to average this number.

Now it gets fun. Cell B6 shows how many story points of work were added to the backlog during or after the sprint. This is what the users forgot or got inspired to add by looking at your work in sprint 1. I call these affectionately OBTWs, for “oh, by the way..”

Cell B7 shows us how many story points worth of bugs were added to the product backlog. (More on bugs in Part II.) Cell B8 show us how many story points worth of work were removed from the backlog during the sprint. (This *does* happen but not usually on the first sprint.) Cells B6-8 assume that the team had time to do an assessment and estimation in points (planning poker, etc) of the new items/bugs during or immediately following the sprint.

Now for the estimate. At the end of each sprint you have to re-estimate the duration of the project. You do this by dividing the total backlog size by the cumulative team velocity. This is done by:

Total Backlog/Team Velocity

or

((B2+B6+B7)-(B4+B8))/B5

or

((Total story points at sprint start  + OBTW in points + Bugs in points)- (Total points removed from backlog + Total Story Points Completed in This Sprint )) / Team Velocity

or

(100 +10 + 3) – (0 + 7) / 7 = 15.14

Noticed that we had 100 points in the backlog and completed 7, bringing our backlog down to 93. However we added 13 points worth of work (OBTWs and Bugs), bringing our backlog up to 106 (93 + 13). So the math is factored down to:

106/7 = 15.14

What this means is that after the first sprint, our estimate is that the project will take 15.14 sprints to complete. Since our sprints are 2 weeks long, the project should be completed in 30 weeks. We also know that due to the cone of uncertainty and future bugs/feature requests, that this number is not super accurate (more on that in Part II tomorrow). That is ok, as you know from the theory of Agile Estimation, our estimate for the project completion will only get better over time and after about 5 sprints, it will be pretty dead on.

In Part II tomorrow, we’ll look at how this works over a few more sprints.

posted on Monday, July 23, 2012 6:41:46 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [3] Trackback
# Friday, July 13, 2012

I’m a software guy. While I am more than comfortable rooting and flashing a custom ROM onto my wife’s Galaxy S III, I need help setting up a printer. Lucky for me, my career’s arc also coincided with the rise of software.

Back when I graduated university oh so many moons ago, software was literally rocket science. I entered the industry at the cusp of the transition from the mainframe/minicomputer eras to the client/server era. When I started coding at a Wall Street firm in the early 1990s, software was controlled by “men in white coats” in the mainframe room. I use to send jobs to CICS via JCL (not a Java class library for anyone under 40) and had to wait for approval, then for execution time. Software was complex to build, expensive to produce, and had way too many moving parts. In short, software sucked and only NASA and big banks invested in custom software development.

Lucky for me, that quickly changed and the client/server era, followed by the .COM era liberated millions of software developers like me. The last twenty years have seen a revolution in the ease of building software and the economics of software development, changing the lives of just about everyone on the planet. Software’s liberation from the men in white coats in the Mainframe room has made entrepreneurship far easier (and cheaper) as I have described here.

Over the past few months I have realized something, just as I thought that the software revolution was only catching its stride after 20 years of liberation, I noticed that everyone around me was building something physical. Maybe this is because I live in Hong Kong and the high tech manufacturing center of the world is a 30 minute train ride away in Shenzhen, China. Or maybe it is because my mentor is obsessed with 3-D printers and has had a 3-D printer the size of a washing machine in his basement for a decade. But no, something else is happening: Hardware is the New Software.

My eyes started to open on a day trip to Shenzhen earlier this year to the Huaqiangbei Electronics market. My friend who brought me to the market made it sound like a giant Frys or even Best Buy, however, what I encountered was astonishing. This is how I describe Huaqiangbei to people: imagine the largest shopping mall you have ever seen. Picture it filled with just a single component of motherboards. Then picture an identical one next to it containing just the internals of a USB port. Then picture an identical one next to it filled with just WiFi radios. Then one for cell phone screens, wires, LED displays, etc, etc. The place is enormous and supports the supply chain of the large contract manufacturers in Shenzhen, like Foxconn building your iPad.

The side effects of the radical growth of consumer electronics and its suppliers ecosystem are huge. Hardware has gotten cheaper and componentized. Hardware has been liberated!

Earlier this year I was helping out and mentoring a company in an accelerator in China. This was no ordinary accelerator, it was the first ever hardware accelerator, HAXLR8R. HAXLR8R took in a cohort of ten companies and had them spend three months in Shenzhen building their prototypes and had the final “demo days” in Silicon Valley. The company that I helped mentor put their project on Kickstarter and raised the required $200k in less than a week and have raised well over $350k in three weeks.

Earlier this week, I was judging the Imagine Cup, an international software competition for university students. After well over 200 teams from 75 countries was narrowed down to six finalists, here was the breakdown:

  • 3 teams were a hardware solution that was supported by custom software that they wrote
  • 1 team built a piece of hardware and connected a Kinect to it
  • 1 team was a software solution that had a Kinect component to it as well
  • 1 team was a pure software solution

Five out of the six teams incorporated hardware, and four of those built their own hardware! For a software competition! By students!

Just as software was once hard to build and expensive to prototype years ago, as recently as three years ago, hardware was difficult and expensive. Just as software was liberated 20 years ago, hardware has been liberated, thanks to componentized supply chains, the economies of scale, and open hardware facilitation co-work spaces in many cities such as Dim Sum Labs here in Hong Kong and SEED Studio in Shenzhen.  Now just about anyone can rapidly and cheaply prototype their hardware solution and seek a first production run by an eager factory in the developing world funded by putting the prototype up on Kickstarter. The DIY (do it yourself) revolution has begun!

The software revolution changed the world in some pretty dramatic ways. The hardware revolution will be even more dramatic.

posted on Friday, July 13, 2012 3:45:24 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Friday, July 06, 2012

The Imagine Cup is a worldwide software design student competition sponsored by Microsoft. Students are given a theme at the beginning of the school year and form teams in their university to build a project that is they can bring to market. The competition is about business viability as much as using the latest super cool technology. So students have to be the right blend of entrepreneur and geek. The competition has students compete in regional competitions and then have to win the right to represent their country in the worldwide finals. Last year the winner was “Team Hermes” from Ireland and they went on to start a business based on the project. The Imagine Cup is truly a transformative thing for those who participate.

This year there are 350 finalists from 75 countries on 106 teams. The finals start today in Sydney, Australia, and I am lucky enough to be one of the 56 judges evaluating the teams. I spent the afternoon Friday at the venue with the teams and fellow judges and attended the opening ceremony and am equally excited as the students. I’m even more excited since I was a judge at the first ever Imagine Cup ten years ago in Barcelona, Spain.

IMG_20120706_124054

The first Imagine Cup was a truly inspirational event. The excitement of the students was amazing. Since the Imagine Cup was very small back then (only 15 finalists), it was held the day before TechEd Europe, so the students attended TechEd as well.  I got to know them well during the week at TechEd and always wonder how many of them stuck with entrepreneurism. I always look back and say that Imagine Cup 2003 was the single most rewarding community event I have ever volunteered for.

In the past 10 years a total of 1.65 million students have participated from 194 countries. I wonder how big it will be 10 years from now (and if they will ask me to be a judge again. Smile )

Let the competition begin!

posted on Friday, July 06, 2012 8:01:50 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Thursday, June 21, 2012

I’m very lucky to have the opportunity to talk with entrepreneurs all the time. There are tons of brand new startups here in Hong Kong and around the world. Entrepreneurs take me out for coffee all the time to pick my brain and seek advice.

Many founders mock up a few screen shots, cobble together a proof of concept, go to town in PowerPoint, then have lots of meetings with people like me asking: “do you like my idea?” and “how do I get money?”

As I said last week on this blog, the economics of a startup have changed, yet again. Since it takes less and less money these days to get a venture off the ground, my advice has been consistent to new entrepreneurs: don’t spend any time in the early stages looking for money.

Startup founders who spend most of their time meeting people and looking for money before they write a single line of code are wasting their time. This is precious time that could be used building a prototype and then going out and validating that prototype with potential customers. What Steve Blank famously calls “Get the hell out of the building” and doing Customer Validation. We all know that almost all startups go through the proverbial “pivot” and the faster we get there, the better.

Alternatively, if the startup got money right away, we all know what would happen, they would be nose down building their product and trying to sell it. The problem of course is that the idea would not be properly vetted and validated. It would take longer to “get out of the building” and eventually pivot, wasting your investors money in the process.

My advice is to scrimp, save, work nights and weekends, give away sweat equity and don’t go for any seed funding until well after your second or third prototype was validated by potential customers. Once you’ve done that, you’ll find that funding is much easier to obtain anyway.

Good luck.

posted on Thursday, June 21, 2012 3:08:56 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, June 14, 2012

While speaking on a panel last week at the BizSpark European Entrepreneurship conference in London, I mentioned how in 1999 we raised $36m of Venture Capital at Zagat in order to get from idea (expressed in PowerPoint) to paying customers. I asserted that back then in the stone ages, you had to: buy lots of servers (usually at overcapacity if you had some peak and valleys in traffic), hire lots of expensive people, and spend a ton on marketing to reach the masses.

Then I asserted that how those numbers started to change due to the cloud and the infrastructure around it (Skype, outsourcing, etc). I talked briefly how I started a successful company in 2002 for only $300k of investment and another in 2007 for only $100k of investment. I also recently invested in a company where the total raise was only about $25k and in less than six months went from idea to revenue generating customers.

The panel moderator, David Rowan (Editor, Wired UK), then asked another panelist, Bernard Dalle a longtime VC from Index Ventures, if his fund is seeing a slowdown in investment. He mentioned his recent investments in Path and Flipboard raised millions of dollars. Is there a disconnect between what Bernard and I said?

Another panelist, Rob Fraser, CTO of Microsoft, mentioned how the cloud does change everything. Rob, Bernard, and I went on to explain that you still need to spend a lot of money, but the big, game changing difference is that you don’t need to spend it all up front.

At Zagat in late 1999, I spent well over a million dollars on infrastructure (server farm, switches, priority based load balancer, etc, etc) in order to be able to “scale” when we hit the millions and millions of users when we launched a few months later. As I “scaled” from 100 simultaneous users to 1000 simultaneous to 5000 simultaneous users over the course of a few months, I was still running on the multi-million dollar infrastructure. Since we had a spike in traffic at lunch and dinner times (go figure) and after Super Bowl ads, etc, we had to have a large server farm. It took us a year to start adding more servers to the farm to accommodate the nearly billion monthly unique page views.

Contrast this with today’s startup economics. Today everything is cheaper and better. You can augment your staff with programmers in far away places and keep in touch via Skype, etc. But most importantly, with the cloud, you only have to pay as you go with the server infrastructure.

In order to get started today, it is virtually free. Just sign up with one of the incubator programs at AWS or Azure and you are ready to go live. Once you grow out of the simple startup incubator phase (and you will pretty quickly), you start to pay only for the bandwidth/compute cycles that you need (and can peak and valley as you like.) You can start out with only a few thousand dollars and slowly increase your infrastructure spending over time as you grow.

Our point on the panel is that you may well wind up spending the same amount of money as I did in 1999, but not all at once, most likely over the course of several years. This drastically changes the economics of startups: you no longer need to go to VCs for lots of money in order to get from idea to customers. Now you can get to idea to at least beta testers on your own dime (or a small amount of Angel Investment) and go to the VCs later on. If you never get to that later stage, you never would have had to spend that $20-$36m in VC.

Welcome to the new new startup economics.

posted on Thursday, June 14, 2012 12:31:34 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, May 10, 2012

On Monday, Mark Zuckerberg showed up to pre-IPO roadshow investor meetings wearing his signature hoodie. Wedbush Securities managing director Michael Pachter commented on Bloomberg news yesterday that Zuckerberg should show the investment community some respect by ditching the hoodie in investor meetings and wearing it is a sign of immaturity.

Pachter’s comment:

"Mark and his signature hoodie: He’s actually showing investors he doesn’t care that much; he’s going to be him. I think that’s a mark of immaturity. I think that he has to realize he’s bringing investors in as a new constituency right now, and I think he’s got to show them the respect that they deserve because he’s asking them for their money."

Predictably the tech elite attacked Pachter; Pacther was even called a “doofus” by Kara Swisher of All Things D. To his credit Pacther is taking it well, even suggesting on Twitter that Mark wear an executive pinstripe hoodie.

As a guy who proudly wears jeans and tee shirts to formal events, you would expect me to attack Pachter as well. While I don’t completely agree with Pachter, he does have a point.

Founders represent the heart and soul of a company. They set the company culture and lead by example. The problem with founders is that they sometimes forget that their company has grown up and they are still acting like the company is a small upstart. This disconnect between the company’s size and maturity and the founder’s attitude and behaviors can cause problems, sometimes major ones.

As startups start to mature, their founders have to mature along with it. As the company moves from startup to challenger, to market leader, the founder has to make adjustments along the way. Behaviors and policies that were appropriate for a small startup may not be appropriate for a company that is public.

For example when Bill Gates rallied the troops by saying that they were going to “cut off Netscape’s air supply”, Bill was guilty of acting like Microsoft was the tiny underdog when in reality it was a huge publically traded market leader and Netscape was the tiny upstart. Gates’ comment became a major piece of evidence in Microsoft’s anti-trust trial.

I’ve made this mistake many times as well. Zagat went through several phases while I was CTO in the dot com boom and my playful behavior that worked so well in the pre-IPO/VC dot com environment of late 1999 did not go over well in the post-crash/layoff environment of 2001. We had brought in a new CEO after the dot com crash and my enthusiasm was misinterpreted by the CEO as not being serious. Unfortunately this reflected poorly on the entire IT staff. I was guilty of forgetting that the company had changed and it was time to keep the same spirit but change some tactics and behaviors. Once I did, things picked up nicely.

Founders also make the mistake of thinking like a startup when larger company decisions are needed. For example, it took Microsoft something like 20 years to buy a corporate jet, Google and Facebook had to get sued to start acquiring patents, and Yahoo! turned down a lucrative offer from Microsoft since they still thought of themselves as a Silicon Valley rebel instead of the blue chip big media company in the trouble it was in.

At Telerik, our founders have had to make adjustments over the years. When I met them Telerik was a scrappy 30 person company. Now we have teams that are larger than that and over 600 people worldwide. The founders have scaled and adjusted their behavior accordingly, all while keeping true to themselves and the company culture. They wear jeans and tee shirts to the office, collared shirts to board meetings, and suits and ties when accepting the Red Herring 100 award.

I’m not saying the Mark Zuckerberg should ditch the hoodie and wear a suit to work everyday. However, he should realize that going public requires some behavioral changes, not just in financial accounting, but also in his leadership style.

The techie rebel in me applauds Zuckerberg for standing up the the man and wearing his hoodie on Monday. The experienced MBA side of me also cringes knowing that Zuckerberg is bound to make several Bill Gates style mistakes, mistakes that could cost Facebook dearly.

posted on Thursday, May 10, 2012 8:21:39 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, April 16, 2012

Last week I wrote about communication struggles at startups and small companies. Since Telerik is the largest company I’ve ever worked for, I’ve asked my sister, Caroline Forte, to write a guest blog post. Caroline has worked at large companies for a long time and is also responsible for several aspects of corporate communications in her current role. Take it away sis:

I’ve worked in communications at a large company for longer than I’d like to publically admit. During that time I have supported many different facets of the business, yet the communication challenges seem to be very consistent. No matter how much information you try to provide there are always two camps – the “you must be holding some information back” camp and the “I don’t have time to read this” camp.

As a divisional or departmental communicator you are competing with the corporate messaging – intranets, memos from leadership, electronic newsletters, messages from HR, internal blogs, message boards and …well you get my drift. How do you prevent your leader’s voice from getting lost in the shuffle? Now throw in the global perspective of language, culture and time zones. And the icing on the cake was when I supported manufacturing where more than half of the audience did not have a dedicated pc.

Basically as a communicator you are always competing - competing with the employees’ time and interest, competing with how the external media skews your internal news, competing with the internal message blogs where employees get to rip apart your messaging.

Readers are fickle – especially the younger workforce. If you don’t grab them in the beginning, tell it to them straight and answer the WIIFM then you’ve lost them. I’ve read somewhere that communications is one of the most stressful jobs – right up there with air traffic controllers. Scary thought, eh? Maybe I’ll try that on for size when I retire.

A few quick tips:

  • Communicate when there is new information - be timely
  • Don’t hide behind corporate jargon
  • Mix it up – experiment with different communication vehicles
  • Open the door – let the audience respond and seek out if the messages resonate

So why do we even bother, other than the fact that most of us are a bit quirky and we enjoy the insaneness of the job . Because knowing that each day you have answered someone’s question, pointed them in the right direction, clarified an issue and increased transparency then you can go home thinking, I guess I can do this all over again tomorrow.

posted on Monday, April 16, 2012 9:01:15 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, April 12, 2012

I’ve spent my entire career at start-ups. I’m use to small. I once worked at a big table with everyone else employed at the company, resulting in pure bliss. One company that I started with three other guys got up to eight people before we were sold to a company with close to 7,000 people in 40 countries. I am most comfortable working side by side with my colleagues; unfortunately over the last 10 years it has not really worked out that way.

Ten years ago I started Corzen with my partner Bruce. Our first office was the Starbucks on 6th and W 57th street in Manhattan. We got geeky pretty quickly and moved to meeting in my apartment so we can huddle around my desktop (this was before Starbucks had free WiFi). A few months later we took up space in what was probably the first (and at the time only) co-work space in Manhattan down in Union Square.

Very quickly we hired Bob, our sales, marketing, production, ops, product, project manager, and all around nice guy. Overnight we went from Bruce saying “Steve, the web site should have more blue over here and here it should be more red” to “let’s have a meeting and discuss this with Bob.” We went from one communication interface to three.

As you increase the number of people you work with, you increase the number of communication interfaces pretty quickly. As you increase the number of communication interfaces, things start to get bogged down, since the human brain can only keep track of seven things at a time. So the optimal size of a company is apparently four, since there are only six communication interfaces. (You can calculate the number of interfaces by taking the square of the total number of people minus the total number of people divided by two.) You are not going to build the next billion dollar business with only four people; even Instagram had 13 people, with a communication interface of 78.

In year two of Corzen things expanded rapidly (it didn’t hurt that we were mentored by the future rocks stars Fred and Brad over at Union Square Ventures.) We hired some programmers in New York with five more in Pune, India. After another year we had added a few more people in Cairo, Egypt. Altogether the company was around fifteen people, not only having 105 communication interfaces, but also multiple locations in three time zones.

A tiny company of fifteen people had some of the same communication problems of a global conglomerate. We had to learn on the fly. What did we do?

  • Every Friday the whole New York office went to lunch together. Even though we all worked at the same co-work space, it gave us time to clear the air on any issues and then talk about whatever was on our mind. Was also a great way to catch everyone up on your last trip. We also talked about non-work stuff too. (Usually baseball, politics, the attractiveness or whoever new started to work at the co-work space, etc.)
  • Monday morning New York staff meeting. We did not do many meetings at the company, however, we did do one staff meeting once a week.
  • I traveled to Pune and Egypt. A lot. I went to Egypt so much I was put on the TSA watch list. I learned a lot about doing business overseas, other cultures, and a distributed environment. For example I had three young, Muslim, female programmers working for me in Cairo. I had to have multiple meals with each of their families before I made any progress. (Lucky for me, the food was delicious and their families would try to “force feed” me.)
  • We did a tremendous amount of on-site, customer visits. We sometimes brought everyone in the office. We shared the results with the remote teams.
  • We instituted Agile methodologies, since Agile, and Scrum in particular, stresses communication.
  • Skype, Skype, Skype. More Skype.
  • Any document that we created was shared on Google Docs
  • We had an intranet and internal Wiki about many things (and posted funny photos of co-workers)
  • Stressed the importance of face to face meetings as part of our culture

While we still had some communication issues, we did pretty well as we continued to grow. A few years later, we were acquired by a company based in the French part of Canada with about 50 people. Overnight our communication interfaces went from 105 to 2080! (Plus I don’t speak French.) Luckily for me, the acquiring company was impressed with what we did both with Agile development as well as with our remote offices (the buying company was all located in one office), so they put me in charge of leading this effort during the transition. After about six months and going to Quebec City more often than any American should have to, eating too much poutine, and countless meetings and sessions, we all were very happy with the new combined company’s communication.

As you start your new business, or are working at an established company, big or small, make sure communications are part of your corporate strategy. You’ll be better off for it.

posted on Thursday, April 12, 2012 5:28:25 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Tuesday, April 10, 2012

The news today is buzzing with the announcement of Facebook’s acquisition of Instagram for $1billion.  Instagram co-founders, Kevin Systrom and Mike Krieger, literally had a billion dollar idea. The idea for Instagram was also Systrom and Krieger’s Plan B.

Kevin Systrom and Mike Krieger raised $500k of seed funding from Baseline Ventures and Andreessen Horowitz while working on Plan A in early 2010. The original idea for Instagram was called Burbn, a check-in app that competed with Foursquare and allowed you to check-in to locations and add photos and videos to your check-in. Burbn’s focus was suppose to be a mash-up of Foursquare and Mafia Wars (where the name Burbn came from.) Burbn (Plan A) did not really take off and after a lot of minimum viable products, several months later Systrom and Krieger pivoted, and released Instagram (Plan B) as we know and love. The rest, they say, is history.

Instagram’s story of pivoting is a great reinforcement for anyone starting a new business today. I’m sure that Systrom and Krieger loved their first idea (Burbn), but they did not fall in love with it and keep sticking to it. This happens too often when a founder keeps hacking away at a bad idea over and over without pivioting. The truth is that most great companies today are the result of a Plan B, or even Plan C, or Plan D. So when starting your business, don’t fall in love with your idea, accept that fact that you will most likely have to pivot and get to Plan B. It just may be a billion dollar idea…

posted on Tuesday, April 10, 2012 6:27:04 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Monday, April 02, 2012

Over the past few months, I’ve judged both the Startup Weekend and ServiceJam in Hong Kong, attended pitch nights, and spoke at some start-up networking events. Almost all aspiring entrepreneurs who I talked to at these events struggled with when was the right time to release V1 of their product. One guy even told me that he was sitting on an idea, an idea that he thinks can be bigger than Facebook, for almost 12 years waiting for patents!

My advice to each all of these entrepreneurs is the same: start small and start now. Your best bet if you are thinking about something is to just do it. Many people think that they can’t do it or that their project is too big. No problem! Start small and test your theory out. We’ve all heard about MVP or minimum viable product, but my advice goes even deeper: minimum viable idea (MVI).

What is a minimum viable idea? It is the smallest version of your idea that you can test and get meaningful results. If you are unsure of your idea or want to validate your idea, you have to build the minimum viable product of your minimum viable idea and compare the results against your assumptions and expectations. Then as the saying goes iterate or exit.

For example someone recently came to me with a social networking idea. They had a big grandiose plan to build their own platform with all the bells and whistles. The idea was good, but would it fly? I just don’t know if their assumptions are valid. They complained that they had to wait a few months for their first MVP to be built so they can start testing and validating their assumptions. I told them why months? You can build a super small version of the idea as a Facebook app, share it with some friends/testers, and gather the results. A minimum viable idea’s minimum viable Facebook app would probably take a HKU student one or two weeks to put together.

Another friend wanted to build an elaborate social media powered electronic display in a drab public place, requiring government approval. (The goal is to increase happiness as well as make some money.) What would be a MVI? Ask for permission to paint the drab public some happy colors with a painted easy to remember link for people to +1 or “like” or comment and display those comments as an RSS feed. No difficult software to build and a much easier conversation with the public works department. (Or maybe this can be accomplished just by buying advertisement space, no need for any approval!) The results that come back will help validate the idea!

The best way to get started is to actually get started. Go out there and find a fast, cheap, and creative way to test your idea (MVI) before you even start to think about the MVP of your true offering.

Good luck.

posted on Monday, April 02, 2012 5:02:32 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Wednesday, March 28, 2012

Twenty years ago when I entered the high tech industry, every aspiring young entrepreneur dreamed of building the next Microsoft and being the “next Bill Gates.” News articles told us that the next Bill Gates would probably come from Eastern Europe rather than from Silicon Valley (or Seattle where Microsoft is located). Ten years ago when Google got big and went public, every new entrepreneur wanted to be the “next Larry Page.” News articles told us that the next Larry Page would probably come from India or China rather than from Silicon Valley. As Facebook eyes its IPO next month, today young entrepreneurs hope to be the “next Mark Zuckerberg”. News articles now tell us that the next Mark Zuckerberg will come from Brazil, rather than from Silicon Valley.

While I am generally optimistic that the environment for entrepreneurship will only get better all over the world in the coming decades, it is important to realize that there are a number of things that make Silicon Valley unique and for that reason, it is more likely that the next Gates/Page/Zuckerberg will come from the Valley.

There are many things that a location needs in order to support entrepreneurship and its startups: access to capital, awesome infrastructure, a large talent pool, a world class education system, rule of law, contract enforcement and property rights, transparency/free media, tax structure, modern labor laws, and an underlying geopolitical system that supports all of the above. You can’t have a successful startup if the local government is going to tax you too high, can’t enforce a contract, or is unstable and about to be overthrown in a revolution (though a revolution is probably good for entrepreneurship in the longer term!)

Most of the places in the world today are moving in the right direction. Some developing nations support all the items above in my list. Unfortunately, that is only the entrance ticket to a startup culture.

Many places that meet the above criteria have a startup community, but lack a startup culture. A startup community is just that, a community of lots of startups who help each other, have regular meet-ups, co-work spaces, pitch nights, and even attract capital. What is lacking is the startup culture.

What is a startup culture? A culture that celebrates failure, a culture that encourages people to take risks, an ecosystem of startup support that will work on equity only or super reduced rates that range from office space, legal services, accounting services, design, advertising, PR, and so on.

Most importantly, you need a talent pool that has had several generations of people who have been through an “exit” or acquisition or IPO. These people serve as both the inspiration for new local startups (“I can’t believe that Bob from the neighborhood made it big at that local startup!”) but also as their mentors and even Angel Investors.  The second and third generation folks are willing to work for equity/reduced wages and inspire others who have not had an exit to do so too. This includes not just the founders and developers, but every position in the company. The more people in your location that has been through an exit, the easier it is to build a new company.

My beloved home town of New York and my adopted home town of Hong Kong both have vibrant startup communities, but are years away from building a proper startup culture. Why? They are both very expensive cities to live in and all the money is in the finance or real estate industries. So if you are starting a new business in New York or Hong Kong you are competing with the banks for not only your developers  and marketing people, but also for office space, accountants, and lawyers, etc. Only after several generations of startups reaching the exit will the floodgates open and the ecosystem will form.

Silicon Valley is one of the few places in the world where this ecosystem exits. I am watching as other locations are trying to build this ecosystem prematurely. Unfortunately, it will take time, potentially decades in some places.

Will the next Mark Zuckerberg come from Silicon Valley or somewhere else? I hope that he or she will come from somewhere else, however, my money is on Silicon Valley. Does this mean you should move, that your startup is doomed unless you are in Silicon Valley? No! All it means is that the odds are stacked against you, but with entrepreneurship the odds are always stacked against you anyway.

The company where I work, Telerik, started almost 10 years ago in Sofia, Bulgaria. At the time (sorry guys!) Sofia was an European backwater that was known more for its corruption and mafia than high-tech entrepreneurship. Telerik has defied the odds and has “made it” and has been selected as a Red Herring Global 100 company. How? By changing the culture and consistently earning the best place to work in Bulgaria award. The odds were stacked against Telerik too.  

posted on Wednesday, March 28, 2012 5:17:48 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Monday, March 19, 2012

After a successful TechDays Hong Kong the week before last, I am off to Bangalore today to speak at Tech Ed India 2012! Besides the usual running around and talking with customers, partners, attendees, and MVPs, I’ll be doing three breakout sessions:

Wednesday @ 12:15 : Beyond Scrum: Kanban and Software Kaizen

This is a slight modification of my Introduction to Kanban talk, here are the slides for that one:

On Wednesday afternoon at 2:15, I’ll be doing a session on Big Data Processing with SQL Server 2012 and Hadoop. I don’t really have any slides for this one besides a few from MS DPE, I plan on using all my time in demos. I’ll be talking about Hadoop on Azure, columnstore indicies, data warehouse improvements, and other things that will help you deal with large amounts of data like table partitioning (I know, I know, “Big Data” does not always mean “Big” data. Smile ) This will be a fun session, come see me screw up some live demos. Smile

Lastly, on Thursday at 4:30, I’ll be doing a session on Agile Estimation. I’ve done this one in India a few times before, but my first time at TechEd India. Here are the slides:

If you can’t make that session, I did it last year at TechEd North America and it was live streamed, so the recording is here:

See you all in Bangalore!

posted on Monday, March 19, 2012 2:52:59 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Thursday, February 09, 2012

It’s time for all .NET Ninjas to sharpen their skills! Winking smile

Blog_Image-ninja

The latest Telerik release is just around the corner and we have tons of new stuff to show off. If you are eager to see the new bits and sharpen your .NET skills, be sure to sign up for Release Webinar Week. This 3-day event is packed with hour-long webinar sessions on the coolest new features shipping with the Q1 2012 release. Release Webinar Week will be held on February 20 – 22, so mark your calendars. One lucky winner from each webinar will leave with a Telerik Ultimate Collection license worth $1999. To enter the drawing and participate in the Q&A session, you must attend the live webinar.

Registration Link: http://www.telerik.com/support/webinars.aspx

posted on Thursday, February 09, 2012 3:50:38 AM (Eastern Standard Time, UTC-05:00)  #    Comments [1] Trackback
# Monday, December 05, 2011

If you are a member of the Scrum Alliance you should have gotten an email asking you to vote for a new member of the board. Please vote! I am one of the three people who are standing for election, below is my candidate summary statement that I submitted to the Scrum Alliance.

Scrum Alliance Board Candidate Summary Statement:

I am honored to stand for election as a board member of the Scrum Alliance. If elevated, I feel that my education (MBA) and past industry experience as a developer, venture-backed entrepreneur, consultant, CIO, and senior management at an ISV will bring a unique perspective to the board.

Having managed both a P&L at an established firm as well as my own self-funded startup, I think my business experience will contribute to the financial and legal health of the Scrum Alliance. I understand what it is like to sit on a board of a high profile industry organization: I have served on the board of similar organizations and take the role very seriously. During the “.com” era, I was on the board of the New York Software Industry Association (NYSIA) from 1998-2004, and served as vice-chairman from 2001-2004. (NYSIA has now merged with the NY Tech Council.)

I am motivated to serve on the Scrum Alliance board since as a professional, I have implemented Agile and Scrum at the places I have worked. I would consider my experience very diverse. For example, I have implemented XP at Zagat (venture backed consumer site) during the “.com” era, as well as Scrum at Telerik (an ISV) in the post- “Lehman” economy. I have also implemented Scrum at my startup that was acquired by a larger non-Agile company and had to re-implement it as part of the merger. Additionally, I visit several Telerik customers in Asia who are bumping into some of the limits of Scrum and are implementing some of the “Lean” practices such as Kanban and “Software Kaizen.”

While my experience with Agile and Scrum comes as a practitioner, not a trainer, I do speak on Agile and Scrum at several industry events a year worldwide, so understand the educational and certification side of the organization. In 2011, I have spoken about Agile several times in many countries, reaching thousands of practitioners.

As a Certified Scrum Master (#37679) and member of the Scrum Alliance’s insiders “Agile Leaders” Google email group, I feel that I know the organization well and can contribute to its mission. I am familiar with the Scrum Alliance’s 2010-11 Strategic Plan and Certified Scrum Professional Program (I volunteered as a beta tester of the exam and passed, so I am now a CSP as well). I also feel that the Scrum Alliance’s goal of larger community outreach fits in with my experience as a conference speaker and user group leader.

While based in Asia, I am a New Yorker, and am an executive at a European company, so I have a truly global reach. I speak about Agile, Scrum, Lean, and Kanban all over the world. My company, Telerik, makes Agile tools and also has a global reach. (This year I helped Telerik open offices and launch new business in the UK, India, and Australia.) I’ll bring a global perspective, and if desired, I can also help the Scrum Alliance expand outside of its core markets.

I have a long history of volunteering and giving back to the community. I have been running user group events since 1996 and have been awarded an “MVP” award from Microsoft for my community outreach. I also am heavily involved with charity, helping raise money and organize a charity, Education Elevated, dedicated to building schools in remote villages. I lead treks to Mt. Everest Base Camp each year to raise money for the school.

I can wear jeans and a tee shirt (preferred) and speak to developers about deep technical and process issues and then turn around and put on a suit and talk to a CEO about business models, strategy, and macroeconomics. It would be an honor to bring my experience and creativity to the board of the Scrum Alliance. I have a passion for Agile and Scrum since they truly have changed the way I do business, and I want to help spread the word and adoption of Scrum worldwide. Lastly, I want to “give back” to Scrum by volunteering my time on the board since I feel Scrum has given me so much over the course of my career.

Thank you for considering me; it is an honor to even be considered for the board of directors.

posted on Monday, December 05, 2011 7:10:15 PM (Eastern Standard Time, UTC-05:00)  #    Comments [1] Trackback
# Tuesday, November 01, 2011

Today I will be speaking at the 1st World CIO Forum held in booming city of Shenzhen, China sponsored by the International Federation for Information Processing.

image

My talk today is on Lean Manufacturing's influence on Agile methodologies: The Past, the Present, and the Future. I talk about how XP was a reaction to Waterfall’s “batch” mentality and heavily influenced by Lean’s notion of units of work v batch and reducing lead time (which heavily influenced iterations.) Then I talk about how Scrum and Kanban come directly from Lean, but with modifications for software development. I stress how lean is about eliminating waste by reducing the quantity of what is produced at one time (translations: very small iterations, if at all) and building a culture of continuous improvement. Sessions are only given 25 minutes, so I had to to this at a high level. I’ll work on a longer more in depth one for TechEd and the speaker circuit in 2012.

posted on Tuesday, November 01, 2011 10:52:19 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, October 31, 2011

This week I will be attending and speaking at the 1st World CIO Forum held in booming city of Shenzhen, China sponsored by the International Federation for Information Processing.

image

The theme of the World CIO Forum is: Globalization and IT Innovation. Topics include: cloud computing (of course!), mobile innovation, green IT, CIO Leadership, “manufacturing 2.0” (my track), and e-government.

The night before the conference started (Halloween!), I had the pleasure of spending an hour with Li Ming, the deputy mayor of Shenzhen and ten fellow speakers. It was all very official; we were in a big room with name cards and we sat in big chairs drinking Chinese tea. Joining me at the meeting and then at dinner were very prestigious speakers, including a member of the board of directors of Microsoft and the CTO of Toyota (Info Technology Center). There were many toasts, something you can’t avoid in China. I feel that Telerik has made it to the big leagues.

I give a talk on Wednesday: “Lean Manufacturing's Influence on Agile Methodologies: The Past, Present, and Future.”

posted on Monday, October 31, 2011 10:11:32 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Tuesday, October 18, 2011

In the past, most developers’ approach to code is that you should write it once and hopefully never have to debug or revisit it again. This stems from the traditional waterfall approach of software development where we were trying to completely describe the entire system up front perfectly. Change was bad and bugs were not accounted for and left for the end.

The Agile movement ushered in the first change to this mentality. Agile introduced the concept of refactoring, or writing your software once and then revisiting it (often if needed) and restructuring its internals for improvement (without changing its external outputs). Refactoring is a core tenant of test driven development, where you are encouraged to refactor each method you write at least once.

The Lean Manufacturing movement is built around the concept of Kaizen, or Japanese for “improvement” or “change for the better.” Last week at the first even Lean and IT summit in Paris, France, I heard once or twice about the concept of writing code as a Kaizen event. Software Kaizen goes a step further than refactoring.

The Lean guys were talking about Kaizen as the removal of waste by the improvement of your own work. It is about understanding waste derived from your own decisions, looking at the unnecessary costs created by our wrong assumptions and decisions. The Lean guys spoke about how Kaizen is cultural shift that gets people thinking.

While refactoring addresses each individual method, Software Kaizen takes a much broader approach and looks for waste in your entire work. A lot of time we developers build features and stuff that are not needed. Where did you create a library that you only call once in the name of “maintainability?” Where did you make something unnecessarily complex in the name of “extensibility?” Where where your assumptions incorrect and caused problems or ambiguity in your code? When have you over engineered a feature? Refactoring only partially addresses this, we’ll go in on a regular basis and refactor a few complex methods, but we rarely ask ourselves if we need that entire method in the first place, or an entire feature. Software Kaizen asks us to look at our code and asks us why did we do it this way, with a “cut first” mentality. It challenges the assumptions we made at the time we wrote the code.

Traditional waterfall approached code as something you should write and be perfect the first time and only revisit it when you find bugs. Agile encourages refactoring your methods for improvements in the way it runs and reads internally. Software Kaizen encourages looking your system and looking at the choices you made in the name of maintainability, extensibility, etc, and ask yourself where you were wrong. Software Kaizen focuses on approaching your code knowing you are going to change it often. In the past we fought change, Software Kaizen embraces change as part of the process.

Give it a try, it is harder than it seems. (“Of course I need that really really complex method, I may one day port this code to a Mainframe!”) Good luck and happy coding.

posted on Tuesday, October 18, 2011 2:36:57 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Monday, October 10, 2011

A lot of people have posted tributes to Steve Jobs over the past week. I’ve seen him called the CEO of the Decade (something I agree with) and also compared to Henry Ford (I sort of agree with). I’d like to call attention to four lessons we can learn from Steve Jobs’ Apple, two positive and two negative. First the good:

Apple avoided falling into the trap of the Innovator’s Dilemma

Apple avoided falling into the trap of the Innovator’s Dilemma. In a nutshell, the Innovator’s Dilemma says the following (I am paraphrasing): when you invent something, first you are trying to penetrate a new market and convince people to buy your invention. At this stage you will do anything to get noticed. After a while, your invention becomes mainstream.  Your profits predictable. Your investors complacent. Then a new disruptive technology is starting to show up here and there. You ask your customers (who are all mainstream consumers or businesses) what they want and you build that for them. Pretty soon, you go out of business (or drastically lose share) because the new disruptive technology overtook you. You failed because you made good management decisions (focusing on profits, listening to customers, etc), hence the dilemma. Henry Ford is credited with saying:  “If I listened to my customers, I’d have built a faster horse.”

Apple constantly churned and churned out new products, defining new categories. The pace of innovation was breathtaking, as soon as a new iPhone was released, there were rumors of a newer and faster one. Some would say that Apple was going to cannibalize their older products with the new, but they forged ahead anyway, with the profits to show for it. Apple embraced the disruptive technologies, not fought them.

Apple worked to create an experience, not just raw technology

When you buy an iPad, you are buying an experience. With the integration with iTunes you can download Apps, books, movies, magazines, and of course music. There is a whole ecosystem around Apple and the iPad, that is why they don’t OEM iOS to other vendors to build a device, Apple wants to control the experience.

Android on the other hand has no such ecosystem. They build the OS and let the OEMs build the hardware. There are phones running Android that are much better than the iPhone and there are tablets that are just as good as the iPad, but don’t sell well. Why? There is no ecosystem. I went into the local electronics shop here in Hong Kong and played with the Lenovo and Samsung tablets and there was no true “feel” to them, it was just a screen waiting for you to configure stuff on. Good for geeks, but not for consumers. My mom needs the simplicity of an ecosystem and an integrated experience. 

Google and by extension their OEMs, figured that slick and cool technology was going to be enough to win. Apple realized that good technology was not enough, users demanded an experience, and Apple gave it to them.

Now some lessons from things that Steve could have done better:

Apple suffers from the “Curse of the superstar CEO”

When I was in business school, I read a case study called “Curse of the superstar CEO”. The article stated that recently we have looked to leaders (CEOs) who have a lot of charisma and we tend to worship them like a religious figure. The curse of the superstar CEO is very problematic, it leads to leadership succession problems as well as exaggerates the impact that the CEO has on the company they are leading.

Steve Jobs was larger than life, the black turtle neck shirt and jeans (which I liked) became a cultural icon. No matter how great a CEO Tim Cook will be, he will always be compared to Steve Jobs and will always disappoint simply for not being Steve. (If you don’t believe me, just ask Steve Ballmer how he is doing not being Bill Gates.)

Apple Took secrecy to an extreme

I understand how you want to keep things secret in a competitive marketplace. I also understand the value of trying to control the message. That all said, Apple took this all to an extreme. They shut down fan rumor sites (by suing fans who were kids!), sent the police to people’s homes to look for a lost iPhone prototype, and never talked to the press.

While this creates a tremendous amount of buzz, it also leads to misaligned expectations. When the MacBook Air and the iPhone 4S were announced, their reviews and reception were not that great as people were holding out and expecting something more. While the secrecy worked to generate buzz, it did not always work out as a positive. When secrecy is taken to such an extreme, it can work against you. While Apple is still super positive, they can get away with a lot, but not forever.

posted on Monday, October 10, 2011 11:43:59 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [3] Trackback
# Wednesday, September 21, 2011

Today is day 3 of running the Windows 8 Build tablet. Apparently I am the only person in Hong Kong with the Build Win8 tablet and everyone I  know in Hong Kong wants to play with it. Some Telerik customers read my blog post from yesterday and asked me if they can play with the tablet too. I set up a meeting at a local pub in Hong Kong to allow some Telerik customers to play with the tablet. So today, the tablet went into the wild. Smile

Stop 1: Starbucks

I was a little early to meet our customers, so I hung out at Starbucks. Just about all of the PCs in the Starbucks were Macs. I whip out the WinPad and it turned a lot of heads. One guy even came up to me and asked me what type of tablet I had. I did an impromptu demo since I was in the middle of a tweet war with some Telerik colleagues back in Bulgaria. Passed the tech elite/Starbucks test. SMS from our customer, so time to meet at the pub.

Stop 2: The Pub

When the Telerik customers showed up at the pub they went to work with the tablet. They liked the desktop mode option and we got into a long discussion on Metro only vs non Metro only devices.  Played a little with Visual Studio and looked at the references for a native XAML app. Spent a lot of time on Metro. We all agreed that if Win8 delivers as promised, Apple has a ton of completion on its hands. After an hour of playing and talking, I can say that it passed the enterprise customer test. We’re late for a networking event, so it is time for the next pub.

Stop 3: The Next Pub

There is a monthly networking event in Hong Kong called Web Wednesday where the techies and social media types gather around and talk shop. When we walked into the pub, I bumped into Furuzonfar (Foo-bar for short), a buddy of mine who is a student in Hong Kong University. Furuzonfar is an avid WP7 user and took the tablet for a test run. Pretty soon there was a circle of people around him and they where playing for a long time. Passed the college kid test.

A guy from Intel came by and played with it for a while too. He was happy that it was running an Intel chip. Smile Then some other WP7 enthusiasts came by and I had to snag a photo. Suddenly WP7 is a lot more compelling.

2011-09-21 19.20.10

Furuzonfar was generating so much attention that a reporter from the Financial Times came by and wanted to know what was going on.  I wrestle the tablet away from the college kids/Intel dude and do a demo for the FT reporter. She particularly liked how you can snap an app to the side of the window. As a mac user, she was impressed, so it passed the reporter test.

Finally it was time for the tablet’s field trip to end and I headed home. All in all, a lot of activity for a tablet in one evening.  I head home to New York for the weekend and will see if it passed the hardest test of all, the Mom test.

posted on Wednesday, September 21, 2011 11:33:51 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Tuesday, September 20, 2011

Yesterday I blogged about using my Windows 8 tablet as my main machine for work and device for play. Today I will share my experience in using the device for building a Metro app.

The first application that I ever wrote was 19 years ago for the Timex Sinclair 1000. (I can’t believe that I am that old!) I’ve come a long way now writing for a touch enabled device (but the TS 1000 was about the same size of an iPad.). Keeping with tradition, I will write a simple “Hello World” and see how it goes.

Step 1: Load Visual Studio

Sounds easy, right? Remember this is Windows 8, so we have to tap Visual Studio in the Metro start screen and then wait for it to load in “desktop mode.”  Ok, it was pretty easy. I’m using Visual Studio 11 Express Edition, the one that came with the machine. (I have not downloaded the Ultimate edition yet, I will do so shortly and get back to you.)

Photo1VS

Step 2: Create the Project

When you load Visual Studio, you will notice that there are only Metro project templates. I select Visual C# and the most basic type of project an “Application.” This is a blank container for a Metro application.

Photo2ProjectType

Step 3: Write Some XAML

I could not seem to open the project in Expression Blend 5 Preview, so I had to code the XAML by hand. I inserted a Button and a TextBlock. I’ll do the classic “Hello World” using a tapped event.

<UserControl x:Class="SuperCoolMetroApp.MainPage" ...>    
    <Grid x:Name="LayoutRoot" Background="Green">         
        <Button Name="MyButton" Content="Metro Button" Tapped="Button_Tapped" 
                HorizontalAlignment="Left" VerticalAlignment="Top" 
                Width="166" Margin="338,106,0,0"/>
        <TextBlock Name="MyTextBlock" HorizontalAlignment="Left" 
                   TextWrapping="Wrap" FontSize="20" Text="" 
                   VerticalAlignment="Top" Margin="535,106,0,0" 
                   Height="74" Width="391"/>
    </Grid>    
</UserControl>

Step 4: Write an Event Handler

After fiddling around for a while, I realized I was thinking way too much like a Silverlight/WPF developer and not a Metro developer. I quickly discovered the “Tapped” event and wrote an event handler for it.

//my first C# code for WinRT!
private void Button_Tapped(object sender, Windows.UI.Xaml.Input.TappedEventArgs e)
{
    //Hey, it's a start ;)
    MyTextBlock.Text = "Hello Touch!";
}

As I looked over the new events and properties, I realize the power of .NET. While I was using something familiar (XAML and C#), I was also using something new (a touch based API). The .NET framework abstracted away the WinRT API for me into something I can deal with and understand. Very quickly I was able to come up to speed with the object model for XAML touch enabled controls. (You can also do checks to see if they are touch enabled and provide a classic “click” event for example.) I think people may pass over this point too quickly, we are finally getting the true promise of the .NET framework: we are using the CLR and C# on top of a NEW platform/API for the first time (unless you are a MONO developer.)

Step 5: Running your App

Time to run the app. I hit F5 and took a video for you to enjoy. Notice that I swipe to get back to the desktop mode after I am done using the application. Cool.

That’s it! In just a few easy steps, I became a device/tablet developer. Try that in Objective-C.  Winking smile

posted on Tuesday, September 20, 2011 5:48:45 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Monday, September 19, 2011

Today was my first day back in the office for my job at Telerik and I decided that I would try an experiment. I would use only my Windows 8 tablet that I received at the Build conference last week for both my work and play. I put away my Lenovo laptop (for work) and my iPad (for reading in bed) and decided I would use only the tablet for the next few days.

The tablet came with a Bluetooth keyboard and dock, so I put that together and started to play around.

 IMG_20110919_172548

The first thing that I realized is that the traditional Windows “Start” menu is gone, completely replaced by the Metro UI. Cool. Then I installed the imperative items:

  • Evernote
  • Dropbox and Live Mesh
  • Live Writer
  • Skype

I had to install them in “Desktop” mode and they showed up in the Metro Start menu. Cool.

My day started with doing regular emails back to the Telerik offices around the world, so I did that through Gmail and Outlook Web Access in Internet Explorer 10 in the Metro mode. Quickly I realized that I don’t need a mouse, but have a USB mouse nearby very handy.

Telerik’s CEO popped up on Skype to talk for an hour about Build and other things. Worked just great, I forgot I was on a prototype machine. Skype only worked in Windows Desktop mode though. It would be great when Skype is a “live tile” and gives me notifications and messages.

I then went into Visual Studio 11 Express that came included with the machine. Built a few simple Metro applications with XAML and C# and .NET 4.5. I felt like I was building Silverlight or WPF applications, it was pretty straightforward. (More on this in the next blog post.) I tried to share a screen shot of the application on Facebook via Socialite (the built in Facebook app for Metro), however, there was a bug there.

After a few more hours of editing documents, emailing and skyping, I called it a day for work and went out for some dinner. I used the device in “slate” mode and dealt with it touch only and no keyboard/doc. I was able to consume most of the content I like to consume (Facebook, Twitter, hacker news, TED videos, RSS newsfeeds, etc) while eating as if it was an iPad. Obviously there are no apps available yet so I had to do this all via the browser. To be honest, the experience was just fine. (I am not a heavy iPad user, if you play a lot of games, etc, on your iPad, you will miss them until Microsoft opens the App Store.)

I played some Sudoku with my Twitter feed docked on the side, great for my ADD! Smile 

IMG_20110919_174330

The key thing that I realized after one full day with Windows 8 is that the new Metro UI is the main experience. Even if you are going to use Windows 8 in an enterprise with just the “Desktop” mode, you will interact with the Metro UI as your “Start” button and application launcher (I played around with a mouse and keyboard for a few hours and the Metro UI worked fine with a mouse and keyboard). I am thinking about in the future if you are using a Win8 PC at work and you also have an ARM based Metro-only Win8 tablet/pad at home. The UI and experience are exactly the same for most of your operations. That is pretty compelling.

Lastly I wrote this blog using Windows Live Writer. Time to call it a day. Tomorrow I will post my experience using the Visual Studio 11 Express edition.

posted on Monday, September 19, 2011 5:56:42 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Thursday, September 15, 2011

The Microsoft developer ecosystem has been alive with buzz about Windows 8 all week at the Build conference. What everyone is talking about is the new Metro user experience and interface and the new WinRT API that supports it.

I was one of the lucky ones who got a ticket to Build before it sold out and received the developer prototype hardware tablet running the early preview of Windows 8 (I’ve never had prototype hardware before!) After playing with it for a few days, I can say that while the app store is not open yet and it is obvious  that the software is pre-alpha (there is no Metro mail client for example) running on prototype hardware, I can tell you that the new Metro UI experience is awesome. The iPad will have true competition.

While the iPad ushered in this form factor and paradigm, with Windows 8 Metro, Microsoft has taken it to a new level.  Windows 8 Metro uses the same immersive app concept pioneered by the iPad, however, the desktop is alive with data via “live tiles.” Instead of boring icons like the iPad, Metro gives you a truly interactive experience. The live tiles are live updates from the apps, everything from RSS feeds and Twiter to stocks and weather. You have full control over this experience and can customize the notifications or even turn them off (but not sure why you would want to do this.)

As I have played with Windows 8 all week, I never found myself going to “Desktop” mode on the tablet. As I interacted with the Metro tiles, I found myself doing all of the “tablet” things I normally do on my iPad. When I had to “work” (like write long emails and blog posts), I found myself using my laptop.

Windows 8 gives you the ability to have the “best of both worlds” where you can use the Metro style UI and then when you need to, dock your tablet into a station and use it in “desktop” mode using traditional Windows with a mouse and keyboard. This is a great feature that will undoubtedly be used by millions of people.

That said, Microsoft needs to OEM a version of Windows 8 to tablet hardware developers that will only run in Metro mode. While I fully expect that my next laptop will have a touch screen and I will interact with Windows 8 Metro mode often on it, my experience on the laptop will mostly be running in traditional desktop mode with a mouse and keyboard (try writing this blog post on a tablet today). At the same time, I would also want a (cheaper) Windows 8 tablet where I only interact with the Metro UI. Just like how I have a laptop PC and tablet iPad today, I use each in different scenarios. In short, laptop for work, tablet for play.

When people buy a tablet like the iPad, they want the immersive experience and that experience only. I have argued before that people don’t want a tablet that is a laptop replacement, they want both devices. When using a tablet, I don’t need to go out to the desktop mode and use Outlook, I just want to use the touch UI and a lightweight app for my mail. When using my laptop, I don’t want the constraints of a tablet. They are different devices that have different uses.

With a Metro-only SKU of Windows, the tablet vendors can build truly awesome experiences that don’t have any of traditional Windows running. They can build lower power devices that run on ARM and hit the $500 or below price point. It will be clear that this is a “tablet” and not a PC. People love the experience of the iPad, they like how they are constrained and can’t do the things they do on their PCs. These constraints force the consumer to interact with the iPad differently, and that has led to its success. If Windows removes those constraints, allowing the tablet users to shell out to Windows, then it will most likely confuse the customer and ultimately fail. Just like all of the Android tablets trying to add “laptop” features and have failed so far.

I asked a Microsoft executive point blank yesterday if they were going to have a tablet Metro-only SKU of Windows. While he said my question was “insightful”, he said Microsoft has made no SKU decisions at this time. At least he did not say no. Winking smile

posted on Thursday, September 15, 2011 12:59:40 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [3] Trackback
# Thursday, September 08, 2011

I have argued before that the Android tablet market is a mess and can’t compete with the iPad. I said that the Android manufacturers were developing a tabletized laptop while Apple was developing an “experience” centered around their integrated services.  I made the claim that only Amazon can really take on the iPad with its integrated experience and books, music, video service as well as its own AppStore. Last week it was leaked that Amazon is nearly done with a 7 inch Kindle branded Android tablet. It should sell for about $249 and hit the markets in October or November.

While it is true that Amazon will be taking on the iPad and giving the iPad its first real competition, the real game-changer is for the Android tablet market. Analysts are already saying Amazon will sell 5 million units-this year. (That means in 2 months!) Except for maybe the Galaxy Tab (before Apple sued Samsung due to patents), not a single Android tablet was able to penetrate the market.  If they could not stand a chance against the iPad, they will stand absolutely no chance against both the iPad and Kindle-pad.

Another loser in all of this is Google. Since Android is Open Source, Amazon took a pre 2.2 version of Android, forked it and customized it for its own needs-without any interaction from Google. No Google apps, no Goolge Marketplace, all Amazon branding and Amazon services. So the best selling Android tablet will have nothing to do with Google!

posted on Thursday, September 08, 2011 5:49:51 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Tuesday, September 06, 2011

Back in January, I argued that AppStores are not necessary as mobile economics mature and start to mimic web economics. Why do I need to download Skype from the AppStore when I can just go to Skype.com and do the same?

appstore

Apple changed the rules and suddenly the AppStore looks like it may die a toddler. Back in February, new rules for advertising revenue and media content were implemented by Apple. If your app is in the app store and you generate revenue from a new customer, you have to give Apple 30% of the revenue of everything you sell.  As per Steve Jobs:

"Our philosophy is simple -- when Apple brings a new subscriber to the app, Apple earns a 30% share... When the publisher brings an existing or new subscriber to the app, the publisher keeps 100% and Apple earns nothing."

Talk about a finders fee! Take the Kindle for example. If a new customer downloads the Kindle on the iPad and buys a book for $10, Apples gets $3 from Amazon, killing its margins. The same for the New York Times, Economist, Financial Times, and other magazines. What particularly vexed those publications is that Apple would tell the publisher absolutely nothing about the subscriber (Apple owns that data!), reducing any ability to personalize marketing to their own subscribers!

Content Producers Strike Back

The content producers started to fight back. Amazon was the first to strike with its web based Kindle Cloud Reader. It is a web application that uses web standards (HTML5) to allow users to read (online or offline!) their books. You can install a link on your iPad home screen making it look like an app, but it is not. It is just a web site and you completely bypass the AppStore, allowing Amazon to keep 100% of the revenue and customer data.

Another popular content producer struck an even deeper blow to the AppStore. The Financial Times, the winner of the Apple Design Award in 2010, has done the same as Amazon and released a cloud based version of their popular iPad app. Then in a move that can only be described as insurrection, the Financial Times has pulled its (award winning!) iPad and iPhone apps altogether from the AppStore!

With such moves by industry leaders Amazon and the Financial Times, the floodgates are open for others to follow. Apple can’t block the web in its devices, so it is the end of the AppStore as we know it. Even if Apple comes back and says, “ok ok, we will only take 3%, not 30%”, why would Amazon give Apple 3% when it can keep 100% for itself? Tasting freedom, publishers will never come back.

It was nice knowing you AppStore. RIP.

posted on Tuesday, September 06, 2011 5:51:05 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [7] Trackback
# Thursday, September 01, 2011

If you and I were at a local Starbucks drinking coffee and plotted a criminal act (say robbing a bank), would Starbucks be liable? Is Starbucks a co-conspirator since they provided a platform for us to plan our illegal act? In short, no.

If you and I email back and fourth about that same criminal activity, is GMail/your ISP liable? In short, no.

If we do rob the bank and FexEx someone the contraband, is FedEx liable? In short, no.

If I illegally download MP3 music and upload it to Amazon Cloud Storage, Microsoft Skydrive, Dropbox, or some other similar service, are they liable? A judge last week said no.

While this seems like a small thing, it is huge. By providing the Cloud providers legal immunity, the same immunity terrestrial providers enjoy, the legal system has validated the business model of the entire cloud computing industry and guarantees an entire industry will not suffer legal limbo.  It is still illegal to download unlicensed content, however, the liability is on the person doing the downloading, not the company providing the service. (The person would also be in violation of the terms of service as well.)

This allows the Internet Economy to work. Google is not liable for someone searching for illegal things, Microsoft is not liable for someone using Excel to plan something illegal, Dropbox is not liable for what it stores, and Telerik is not liable for someone using our software for something illegal.

Score one for the lawyers today.

posted on Thursday, September 01, 2011 3:38:18 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, August 26, 2011

Love our products? Think our support rocks? Love the .NET Ninja? Attended a User Group sponsored by Telerik? Do us a favor and let the world know about it.  Vote for Telerik in this year’s DevProConnections Awards.

image

posted on Friday, August 26, 2011 3:44:59 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Friday, August 19, 2011

A few days ago in Part I of this blog post, I described how we are moving into a new era in application development, the Device+Cloud (D+C) era. I mentioned how just like 15 years ago we had the “Windows or Web” debate, we are now having the “Native or HTML5+JS” debate. Just like 15 years ago, the answer is that we should take a hybrid approach. Some projects will require the reach of HTML5 and others will require the tight OS integration and custom experience of a native app. Some companies will build a HTML+JS version of their app for broad distribution and then choose to build some native apps on popular devices that they are specifically targeting. Think of Amazon’s Kindle Cloud Reader built in HTML5 and its native Android tablet app.

I know many developers that are throwing their lot behind either HTML5+JS or Native. They should be learning and supporting both. If you believe the rumors about Windows 8, they take a hybrid approach where you can write apps in either a “native” XAML or HTML5+JS approach. That said HTML5+JS is a technology that is here to stay. This leads us to the problem with building HTML5+JS applications today.

The problem with building HTML5+JS Applications 

Building an HTML5+JS application will undoubtedly involve using jQuery due to its ease of use and near ubiquity. That said, you have to wire up a lot of different components to get your application up and running. Depending on your application, you may need things that are not part of the core jQuery libraries, including:

  • Templates
  • Data Binding
  • Data Source
  • Localization
  • Validation
  • Drag-and-Drop APIs
  • Universal touch support
  • UI widgets

Here lies the fundamental problem with HTML+JS development with jQuery today: there is no underlying framework or “base class library” that provides all of these services. Many libraries/plugs-ins/frameworks exist for each of the services I listed above, however, you have to search Google for the best one to provide the service you need, then learn, master, code, and distribute it. Each will work similarly, but have subtle differences, especially when you integrate them with your application. You may spend a long time learning a popular framework for localization, however, on your next project at a new company, find that it is either incompatible with what you are doing or not the preferred framework at that shop.

A new, modern, one-stop shop for HTML5 plus JavaScript development

At Telerik, we saw this problem and decided to build a complete framework to address this issue. We recently released a beta of Kendo UI, a HTML5, CSS3, and JavaScript-based framework for building modern HTML apps. As we said when we launched, it, Kendo UI combines the best of emerging HTML5, CSS3, and JavaScript technologies with robust, cross-browser techniques to deliver a framework that is both powerfully rich and broadly compatible with older browsers.

Kendo UI combines everything that a developer needs to build a rich JavaScript app, eliminating the traditional challenge of manually researching and combining all of the needed plug-ins, frameworks, and libraries needed to build apps. Kendo UI includes rich UI widgets, a JavaScript DataSource, fast Templates, cross-device Drag and Drop API, Build in Touch support (great for mobile development!), and more.

image

Just to prove that I am not all talk, check out our live demos here. You can also download the beta and to get started all you need is a text editor, nothing else.

Telerik: Our Strategy has NOT Shifted

If you know a bit about Telerik, you would know that we are famous for our user interface components and developer productivity tools on the Microsoft .NET platform. You may be thinking, “Telerik’s strategy has shifted, they are now offering non-Microsoft technology.” While Kendo UI is our first developer product not reliant on .NET and truly cross platform, it fits right into our core competency and sweet spot: making developers more productive. At Telerik we have a passion to make the developer’s life easier. Why? We are a company made up of developers! Smile

If you are a long time Telerik customer, you may be thinking that we are abandoning our Microsoft product lines or we are taking sides in the Silverlight v HTML5+JS debate. As our CEO said last week, our strategy has not shifted and we will continue to innovate and release our industry leading .NET developer components. We will continue to innovate and release everything including “older” technologies such as Windows Forms. As Microsoft evolves its XAML tools, including Silverlight, we will continue to innovate and evolve our XAML tools as well.

As Kendo UI matures and gains traction, expect to see some tight integration with Kendo UI and some of our existing products. In the future as a Telerik .NET customer, you can have the best of both worlds, choosing to use Kendo UI as the front end on some of our existing platforms. If you come from a non-Microsoft background, you can use Kendo UI independently.

We are not taking sides in the “Silverlight vs HTML5+JS” or “Native v HTML5+JS” debates. At Telerik, we hold the view that I spoke about in Part I of this blog post: modern developers will have to take a hybrid approach and build some applications using HTML5+JS and some with more rich technology, such as our XAML tools. This is clearly the direction that Windows 8 is taking, allowing you to build applications with both HTML5+JS or .NET/XAML. As the modern developer evolves, so are we at Telerik. I hope you enjoy Kendo UI, let us know how you like it, your feedback will determine its roadmap.

posted on Friday, August 19, 2011 2:50:39 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [5] Trackback
# Tuesday, August 16, 2011

Roughly speaking, we have had four “eras” in the computing industry, each era defined by the dominate platform at the time. The eras were:

  • Mainframe
  • Minicomputer
  • Client-Server
  • Web

I believe that we are now entering a 5th era: the Device + Cloud era. Simply said, the Device + Cloud (D+C) era is defined by users having multiple devices and running thin applications that share data via the cloud on each of them. As your use of the devices goes up, you rely on the applications more and more.

I have five devices that I use and travel with: a Zune HD, a Kindle, an iPad, an Android 2.3 Nexus One Phone, and a Lenovo Laptop computer running Windows 7. Since my Zune and Kindle are dedicated devices for one purpose (even though that they try to be more), I use my Nexus One Android, iPad, and Lenovo as my primary computing devices. I use similar apps on all three devices, apps that use the cloud for execution and storage. Examples of apps that I use on all three devices that I can’t live without are TripIt, GMail and Evernote. These apps represent the future of software development: cloud storage, cloud “logic” engine exposed via an API, and multiple native clients.

Applications in the Device + Cloud Era

While email, social networking, and travel apps were the early adopters of this paradigm, I consider Evernote to be one of the “killer” apps of the Device + Cloud era. (There are several other killer apps, but I will focus on Evernote for this discussion.) By looking at how I interact with Evernote, the Device+Cloud paradigm will become more clear.

I interact with Evernote in one of four ways. For my job at Telerik, I spend a lot of time in front of my laptop. At any given time I have four applications open: Chrome, Skype, Evernote, and Tweetdeck (as well as a VPC with my development environment). I use Evernote as my main “writing” client, writing out memos, keeping lists of stuff to do, blog post drafts, and archived PDFs of important documents, etc. I share notebooks with my wife that lists of the wines we have tried, what songs we are going to play at our wedding party, and of course the grocery list. My interaction with Evernote is with its native Windows client. It gives me the ability to copy and paste, use rich formatting, drag and drop, right click menus, and all the things you would expect with a Windows application.

image

Later in the day when I am out and about, I use Evernote on my Android. This too is a native Android app and it takes advantage of the Android operating system, giving me tight integration with the OS and a live widget to sit on my home screen. It is touch integrated as well its UI is tailored to take advantage of the Android system. When I am at the store, I look at Evernote for the items I need to buy as well as look up the passcode to my apartment buzzer. As I cross off items on my to-do list in Evernote, I update the note on the fly. Also when I see something and want to remember it for later (like a friend telling me the name of a good book or movie), I make a new note.

I also interact with Evernote on my iPad. I use my iPad mostly for reading the newspaper, Flipboard, Hacker News, and email or watching TED videos while lying in bed. (I know Steve Jobs had a grander vision for the iPad, but that is my reality.) The iOS also has a native Evernote client. The client there is visually stunning and multi-touch enabled, but slightly behind the other clients, not allowing rich text and media editing. I usually jot down notes while reading in my Evernote iOS client.

Lastly, I also interact with the Evernote Web app. Usually when I am trying to log onto Telerik’s VPN from an Internet Café in some far away place like Nepal and I need to look up my VPN password stored in an Evernote note (please don’t tell the Telerik Admins this!)

Evernote is a productivity app, not a Facebook client, so it is no longer easy for the “mainstream” to ignore the new era. To be fair, they have not, I interact with native clients on my devices for my bank, credit card, airline, brokerage account, the Hong Kong public transportation system, local TV station, as well as “official” apps from my favorite sports teams, etc. The D+C paradigm may have been started by social media, embraced by start-ups next, but it is now going mainstream.

Application Development Complexity in a Device + Cloud World

Building an application is no longer so simple in the D+C world. Evernote is making use of several different technologies to build its client natively on each platform. This is not a huge problem since most of Evernote’s core is in the cloud. Evernote has backend storage, upload, synchronization services, and user authentication and authorization services in the cloud. They also have APIs to expose all of this so most of the logic of the application is pushed to the cloud. (As a bonus, they get to expose their API to 3rd party developers who get to build on top of the Evernote API, but that is a benefit of the D+C era that we can talk about in a different blog post.) Evernote then has to build a thin client for each platform that it targets, the clients are mostly UI components that call the services and APIs in the cloud.

While Evernote chose to build native clients for each platform in order to get the richest experience and best performance, they could have chosen to have a single client written in HTML5 using JavaScript to call the back end services and APIs. This is a popular route taken by many these days due to the cross platform nature of HTML (every device these days supports HTML5+JS) and developer familiarity with HTML and JavaScript.

Native v HTML5

Building applications in the D+C era will come down to two choices: Native v Web (HTML5+JS). Each has their own advantages and disadvantages. Native gives you the most fidelity, platform flexibility, tight integration with host OS (think of status bar notifications), and the best performance. However, you have to maintain separate code bases for each device you target as well as master multiple platforms (and languages). Web/HTML5+JS gives you one code base to use across multiple platforms. HTML5+JS will give you a faster time to market. HTML5+JS is also a “one size fits all” approach, where the app may not “fit” well with the native OS. (Just look at any Web app that was built with the iPhone in mind on an Android of WP7 phone, it just feels wrong.)

I am not going to take any sides in this debate since I feel that there are needs for both approaches. Companies will weigh the pros and cons of each approach and sometimes choose to go native and sometimes choose to go HTML5. They may also choose a hybrid approach like some other popular apps have done where they have both an HTML5 application and a native application (see the Kindle and BBC news on the iPad for example.)

Developers today will find themselves working on a project that requires a Web/HTML5+JS approach and on their next project having to brush up on objective-c and Java and take a native approach. Just like if you were a developer in the late 1990s, you had to have solid Windows client/server programming skills as well as solid Web skills.

I have seen many blog posts indicating that you should forget native and only build cross platform web apps. I have seen many blog posts saying the opposite. I think both are wrong, you will have to embrace both in the D+C era. In my next post I will take a look at the state of building applications with HTML5 plus JavaScript.

posted on Tuesday, August 16, 2011 9:27:17 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Monday, August 08, 2011

When people think about Kanban, they usually get the impression that Kanban is either an inventory control mechanism or a system to manage an assembly line of workers. This is due to Kanban’s historical roots as part of Lean Manufacturing and the Toyota Production System.

When I talk about Kanban, especially in reference to using Kanban with software development, I stress the importance of flow; how you pull items through the production system while limiting the work in progress. My favorite thing about Kanban is the Kanban card itself. Kanban gets its name from the card; Kanban translated from the Japanese means “signal card”. According to Lean definitions a Kanban card contains information about a part used in production. It is a signal that tells someone upstream to order more of that part, or move more of that part (from inventory to a production queue for example), or build more of that part. In essence a Kanban card is a visual signal that triggers an action to happen in the workflow.

Kanban has evolved to be used outside of the manufacturing world and has started to gain acceptance in software development. Kanban is also being used in operations outside of manufacturing and software. In his book, Kanban, David Anderson described how Kanban is used to do crowd control at the Imperial Gardens in Tokyo, limiting the inventory or “work in progress” (visitors.)

IMG_20110806_123850I had a similar experience this past weekend in Japan. I was on a short weekend vacation in Tokyo with my wife. What had started out as a trip to watch some professional Japanese Baseball, slowly was evolving into a shopping trip for my wife. Hot, tired and trying to avoid shopping for shoes, I suggested we duck into the local Starbucks. As my wife snagged us a table, I tried to order by pointing, smiling, and hand jesters. Somehow I was able to order my old reliable a Tall Soya Chai. After I paid, I was handed my receipt (never walk away in Japan without first taking the receipt) and a strange looking card.

I did not really know what this card was for, but it did say “Soymilk” in English as you can see from the photo. I was intrigued and figured that maybe it was information about the Soya Milk that they use or maybe it was something about the organic certification.

 

Then I figured that it was probably some rock star Japanese targeted marketing, the Soya Milk company probably paid Starbucks to place an advertisement for their soya milk so you can buy it for use at home. I decided to flip it over since, this being Japan, I figured that there was probably a bar code for my Android phone to scan and I can see the ad. I wanted to see if there was a link to buy it, with a discount, with one click. (I’m sorry, but this is how my mind works.)

To my shock, when I turned it over, I realized that I was holding not a marketing ad, but a real-life Kanban card! The back of the card read in both Japanese and English: “Please hand this card to our Barista at the hand off.” It went on to say at the bottom: “We sincerely serve our soymilk beverages to our customers by using this card to prevent milk allergy incident.”

IMG_20110806_123858

Wow! As someone with a milk allergy and someone who teaches Kanban, I was blow away. I have been drinking Soymilk Chai for almost 10 years and have been to tons of Starbucks around the world and never have been given anything to signal to the Barista that I received the correct beverage. (Actually I find that the Barista’s in New York consistency screw up my order.)

Now you may be thinking, “Steve, this is a stretch. Kanban is about work in progress and just in time delivery, not coffee.” At the surface you are correct, but Kanban is about using a physical visual signal card (Kanban Card) to trigger an action in a workflow. Usually this trigger is to order more inventory. Sometimes that inventory is car tires (as in the assembly line in Toyota) and sometimes it is people (as in David Anderson’s visit to the park.)

In this case, Starbucks in Japan (I went to several other Starbucks to be sure), uses Kanban to manage the ordering, making, and drink pick-up workflow by verifying (or limiting the work in progress) inventory of Soya beverages made. In the “Soya” case, the cashier starts the workflow by processing the Soya request and gives the Kanban card to the customer and alerts the Baristas to the order. When the customer hands the Kanban card back to the Barista, one Soya beverage is removed from the queue; the number of Kanban cards must equal the number of Soya beverage inventory at the counter. In essence, the Customer “pulled” the work (the Soya beverage) through the system and the Kanban card is ensuring quality.

Remember, a Kanban card is about a visual signal that triggers an action in a workflow. The Soya Milk Kanban card signals to the Barista that they must remove one Soya drink from the inventory of drinks in front of them. (If you have ever been to Starbucks, you know that the Barista may have 5 or even 10 drinks in front of them in “inventory” at any given time.) When you look at this system as a whole, it is pretty simple, yet brilliant. Maybe we can start to use visual signal cards as part of the QA process in software development. I left Japan inspired by Starbuck’s embracement of Lean manufacturing and Kanban for quality!

PS: I tried to bill my employer, Telerik, for the drinks I consumed in Japan this weekend on an expense report, saying it was “market research”. When my expense report was rejected, they told me that the accounting department is now using a Kanban system to maintain quality and my expense report was flagged. Winking smile

posted on Monday, August 08, 2011 3:33:04 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Tuesday, July 05, 2011

A few weeks ago I was in the Telerik cafeteria at our world headquarters in Sofia, Bulgaria, and a colleague walked up to me and asked: "Is Silverlight dead?" I replied: "No, but it has seen better days."

Since Silverlight's absence from last year's Professional Developers Conference (PDC) in Redmond, WA, the infamous "our strategy has shifted" comment made by Microsoft Server and Tools Division President Bob Muglia, Scott Guthrie's move out of DevDiv, and the recent reorg of the XAML team, the community has been in an uproar assuming that Silverlight is dead. So the community has voted, Silverlight is dead and HTML5+JavaScript is the future.

First a few words on HTML5 + JavaScript

Many people in the IT industry assume that HTML5+JS is the future of software development. While it would be easy to say HTML5+JS is the absolute future of software development, HTML5+JS still has its limits coming from its roots as a rendering platform with some scripting, communication attached. While I feel HTML5/JS will be huge and have a place in every developer’s toolkit (just as HTML4+JS (AJAX) does), to build true LOB applications, you will need more power, just as you do today.

HTML5+JS is finding its sweet spot with media, interactive content apps on the web (think Google Maps) and cross platform apps for mobile devices. While Microsoft is fully embracing HTML5+JS, I can never see them making it their main development strategy; Microsoft would never cede its development strategy to a standards body or a 3rd party. Realizing this, Microsoft is going to have a development platform that embraces and extends HTML5+JS, just like .NET/ASP embraced and extended HTML5+AJAX.

I think that all of the recent focus on HTML5+JS by Microsoft is to hook the non-Microsoft developers who know nothing about Silverlight or .NET on the Windows 8 Tablet and get them building apps to compete against Android and iOS. I believe that what will evolve is that for the developer ecosystem is that HTML5+JS will primarily be used for building "apps" on the Tablet, but not for "real" line of business applications on the Web, “native” Windows, and XBox. 

Is Silverlight Dead?

I will admit, when Steven Sinofsky and Co were showing off the new Windows 8 operating system and all of the HTML5+JavaScript developer hooks, I was tempted to join in the "Silverlight is dead" chorus. After some deep thought, I realized that rather than killing off Silverlight, Microsoft may have something else in store for us. If you read in-between the lines and take with a grain of salt what the blogs say, it is possible to draw some conclusions about the future of XAML and Silverlight. 

One popular blog talks about a new native user interface library, DirectUI, that builds on top of the native Direct2D and DirectWrite APIs that were introduced with Windows 7. According to the blog, a new platform code named "Jupiter" is part of Windows 8 and is a "Native XAML" runtime that runs on top of DirectUI.

If the blog about the Native XAML and DirectUI/Jupiter project is true, then re-org of the XAML team makes complete sense. In case you missed the leaked news, the XAML runtime team at Microsoft is moving to join the Windows team, the XAML runtime team for Windows Phone 7, Xbox, and browser plug-ins is moving to the Windows Phone 7 team, and the XAML tools team will remain in the Microsoft developer tools division. 

To me, this looks like Microsoft doubling down on its XAML strategy, not abandoning it. By putting the XAML runtime team under Windows, Microsoft is making XAML part of the core operating system. This is huge. Anything included as part of the Core OS is treated as royalty inside of Microsoft. It also means that any XAML based application (either in WPF or Silverlight) will run natively as part of Windows, opening up the door to even faster performance.  (History buffs may recall that this was the original vision of XAML, aka Project Avalon, that was presented at PDC 2003. Better late than never? ;))

The Future: Native XAML

I see XAML as a native part of Windows 8, Internet Explorer 10, Windows Phone 7, and Xbox- the common thread that unifies development for the Microsoft stack, even more so than .NET (which does not fully run on all of these platforms) If HTML5 gets fragmented, as it surely will, I can one day even see a native, hardware accelerated runtime of XAML being released for the Mac (there already sort of is one), Android, iOS, and maybe even Linux sometime in the future. 

Notice that I have not been saying "Silverlight" or "WPF,” but instead “XAML.” It is more than possible that WPF and Silverlight will merge into "Silverlight+" or something like that, but XAML is the star. Since the XAML runtime has moved to Windows core and is no longer part of .NET, a "Silverlight" app that is deployed on the web, can run natively on Windows and take advantage of the local system and hardware, blurring the difference between WPF and Silverlight. It’s a natural evolution since the WPF and Silverlight teams at Microsoft were really one big team at this point. 

Since the Silverlight brand is popular and has a cool name (something Microsoft never seems to do), I have a feeling that Microsoft will leverage the Silverlight brand when releasing "Jupiter". I expect to see one native XAML runtime and development environment ship as part of Windows 8, effectively merging WPF and Silverlight. 

I don't see Silverlight as being dead, but rather reborn bigger and better. Instead of being its funeral, the Build Conference will be Silverlight and XAML's graduation party.

At Telerik, we are also going to double down on our XAML strategy. Since the beginning, we have always had only one XAML team with one XAML code base, so our WPF and Silverlight share the exact same codebase and our Windows Phone 7 tools are a subset of that codebase. We see Native XAML as a massive opportunity and will continue to support our XAML tools now and in the future. We’ve recently released a beta of our XAML controls that features a Persistence Framework and DataServiceDataSource as well as some spectacular Data Visualization controls. Our XAML tools, including Windows Phone 7, will ship the Q2 release later this month. We have our Q3 release scheduled later this year which should include some great new charting capabilities, new DataSource controls, and a ZIP compression library.

We will continue to make improvements to our XAML tools, including our Windows Phone 7 controls and our Facebook application, telerik fdeck, built on top of WPF and look forward to Native XAML’s long future.

posted on Tuesday, July 05, 2011 9:29:15 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [7] Trackback
# Friday, May 13, 2011

Next week I will be headed to Atlanta, Georgia, for my 10th TechEd North America, and my 21st TechEd of my career worldwide. I will be doing three breakout sessions this week, all on the agile methodologies.

There are over 200 sessions at TechEd, however, my Agile Estimation session, so popular last year at TechEd Berlin, will be live streamed, so if you can’t join me in Atlanta, join me on the live stream, it will be fun. Here are all of my sessions.

DPR202 | Agile Estimation (Live Streamed)

Breakout Session | 200 - Intermediate | Development Practices & Architecture

Speaker(s): Stephen Forte

Tuesday, May 17 | 10:15 AM - 11:30 AM | Room: C305

 

DPR306 | The Agile Buffet

Breakout Session | 300 - Advanced | Development Practices & Architecture

Speaker(s): Joel Semeniuk (This is listed at Joel’s session, but we are doing it together)

Wednesday, May 18 | 10:15 AM - 11:30 AM | Room: B309

 

DPR203 | Yes, We Kanban!

Breakout Session | 200 - Intermediate | Development Practices & Architecture

Speaker(s): Stephen Forte (This is listed as my session, but Joel is doing it with me)

Thursday, May 19 | 1:00 PM - 2:15 PM | Room: B309

posted on Friday, May 13, 2011 9:17:59 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, April 22, 2011

Yesterday Joel and I did our “Agile Buffet Table” session at GIDS in Bangalore, India.

We talked about XP, Scrum, and Kanban and how you can build your own methodology by mixing and matching the features from each of these agile brands. We had *great* audience interaction, the best I have ever had in India. We wrapped up the session by opening Excel and designing a unique process with the audience. Our exit was also very funny, there was no break between sessions(!), so the next speakers came in and were ready to start when we ended. So I impersonated the next speaker, very agile. Winking smile

The slides are available here (via slideshare.) In addition we talked about a lot and have recommended the following resources:

Also had some books to take a look at, they came up at various points in the discussion, check out any one of them:

posted on Friday, April 22, 2011 10:54:04 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Thursday, April 14, 2011

Next week I will be speaking at the 4th Great Indian Developer Summit (GIDS) in Bangalore, India. I have spoken at the last three GIDS and really enjoy the “ninja” speaking style: 50 minute sessions! So my technical sessions will be all code/demo, no slides, only the “please fill out the evaluation” slide at the end. Here are my sessions:

Tuesday April 19th, .NET day:

  • Building RESTful Applications with the Open Data Protocol (no slides!)
  • Agile Estimation (ok, slides for this one)
  • Enhancing Developer Productivity across the Entire Stack (Telerik vendor session, NO SLIDES, no marketing, just code!)

Wednesday April 20th, Web day:

  • Introduction to WCF RIA Services for Silverlight 4 Developers (no slides!)

Friday April 22nd, Seminar day:

  • The Agile Buffet Table (with Joel) Ok, this session will have slides, but last year it was standing room only, we got in trouble with a fire hazard, so get there early.

Visit Telerik, get free goodies, win stuff and come to our party!

GIDS is four years old and Telerik has been at each and every GIDS since its inception. On .NET day (Tuesday), we are handing out some great free goodies at our booth, so make sure you stop by before the keynotes before it gets mobbed. (Last year our Tee shirts were in such demand, the booth got knocked over in a rush!) Also look in your conference bag for some other great goodies.

We have some great prizes, but another reason to come visit our booth is that in partnership with Pluralsight, we are throwing a great party on Tuesday night. (If you went to our party last year, you know what I am talking about!) Swing by our booth for a demo, some goodies, and tickets to our party. Space is limited, so come by early!!!

See you in Bangalore. Bring your umbrella, hopefully the monsoon is not as bad as last year. Winking smile

posted on Thursday, April 14, 2011 8:47:24 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Friday, April 01, 2011

See also:

·         Part I: How I started to use Scrum

·         Part II: Scrum, but

·         Part III:  Moving away from Scrum

In Part I we looked at how I got into Agile and Scrum. In Part II we explored how Scrum failed to be flexible enough to fit into my unique process. In Part III we took a look at how I got introduced to Kanban, without even knowing it. Today we’ll take a quick look at what Kanban is.

Kanban is a Japanese word that loosely translated means “signal card.”  Kanban’s underlying thesis is that by using signal cards at various points in the production process to indicate the amount of work completed, you can limit the amount of work in progress (WIP) and thus keep the system very “lean” and agile. Work in Progress (WIP) represents inventory and inventory is expensive to keep.

Kanban was originally developed at Toyota as part of the Lean manufacturing movement to facilitate pull systems in a just in time (JIT) production manufacturing process. Work is pulled through the system in single units by demand, instead of pushed in batches. Think Dell computer’s JIT assembly of your laptop as you order it; Dell is pulling a single unit through its production process on demand as opposed to pushing through a batch of computers and selling them pre-configured.

Over the past few years there have been several blogs and books describing a Kanban process as an agile methodology for software development.  There are far more robust explanations of Kanban out there on the Internet, so I will not try to outdo them here, however, let me give a brief overview and then circle back to the system I described in Part III.

As a development methodology, Kanban is an evolutionary process that focuses on the flow of work in progress. Individual items of near equal size are pulled on demand through the system. Kanban focus on the flow of the work, trying to make constant improvements to the flow.  This increases the predictability of the system. Evolutionary by nature, Kanban is designed to facilitate continuous learning and improvement to the process (the Japanese call this kaizen ).  Kanban teams usually put up a “Kanban Board” where they have the process states as columns and sticky notes representing the queue or work items and where they are in the production cycle. This visualizes the production system and allows you to spot areas for improvement.

clip_image001

The Kanban board is the most important item in the system, it represents the production flow. As an item moves from “design” to “development” to “test” and off the board to production, you can get a holistic view of the process and identify bottlenecks. Kanban has a daily standup meeting, not to focus on “what you have done today” since that is obvious via the Kanban board, but rather to focus on the production process and talk about bottlenecks and how to improve them.  For example if you have way too many items queued up in the “tester” queue, you can make changes to the way the work flows through the system (or identify that you need more testers.)

Kanban throws away the concept of a sprint and even estimation  to a lesser degree. Stories are larger in length and scope but you have less of them in your system. If you break down tasks into digestible units of comparable size, by looking at the Kanban board, you know how long it typically takes to get tasks done.  The goal of Kanban is to keep the work in progress as small as possible, at the exact flow rate that the team can handle.  The team will commit to deliver work items at the flow rate, and expedite important work items. As time progresses and the team improves, the flow rates can be adjusted.

Sound familiar? This is the system I stumbled across at my start-up defined in Part III (minus the Kanban board.)  If I had a Kanban board I would have had all of the states (analysis and rules complete, in progress,  etc) on top and had sticky note for each task (the RegEx work) in the workflow and where it was in the process. Since our tasks typically only took half a day and moved from start to finish off the board in about 48 hours and we had a remote team, it would have made sense to have an electronic board. Nonetheless, our quazi-Kanban system limited work in progress, allowed the developers to pull work out of the queue in a very predictable pattern, and produced quality results. The most important part is that the system was flexible.

Since we started as a Scrum process and evolved to a more lean manufacturing influenced production system, I learned that no single development process (such as Scrum) is a “silver bullet”.  I also realized that all of the “features” of Agile are available to you and you can mix and match them-as long as you adhere to the Agile values put forth in the Agile manifesto.  More on this later in the last part of this series.

posted on Friday, April 01, 2011 10:02:49 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, March 25, 2011

See also:

In Part I we looked at how I first got into Agile and Scrum. Last week in Part II, we explored how Scrum failed to be flexible enough to fit into my unique process. Today we will take a look at how I got introduced to Kanban.

The start-up I worked at a few years ago that I described in Part II successfully used Scrum for traditional software development, however, when we were faced with a pretty unique development requirement, Scrum failed us. To refresh your memory from Part II, we had to spider thousands of web sites. Each web site was entered with a specification from a business user and prioritized. The developers worked on the highest priority item in the queue and published the RegEx patterns to a test server where the overnight process picked them up and the results were verified by a tester the next day and put into production. In Agile terms, we had a big backlog, each item in the backlog was about the same “size” and the customer (business users) prioritized the items in the backlog.

As I said in Part II, Scrum did not work, for starters we did not need a cross functional team, our team had about 10 developers on it that did one thing: produce the RegEx patterns. No need for a daily scrum either. In addition, we did not have to time box our development effort into a two week or month long cycle, we delivered daily. We prioritized daily as the new requirements came in and old sites stopped working.

All work was the same so we would assign a state to the work:

  • Web site identified for spidering
  • Site’s business analysis and rules complete
  • Site sitting in the developer queue
  • In progress
  • Done-need verify
  • Testing
  • Done-verified

We developed a classic “pull” system. The developers pulled a single work item (as opposed to a batch of work) out of a queue (backlog) and when they were done put them into the test queue (which when complete was then scheduled to go into production.)

We also developed different classes of service for each work item. At first 90% of the sites in our queue were listed as “High” priority and then the business asked me if we could have a “Very High” priority status. I said no, since I knew it would eventually be abused like how the high priority status was. We then made the process simple no more than 10 highs in the system at a time (we only have 10 developers for example) and they were expected to be into testing within 24 hours. Mediums would be assumed to be done in 48 hours and low had no guarantee, we’ll get to them when we get to them-we let the business reprioritize (and change status) daily.

After a few months we made another change. Each developer could do on average two sites a day, so our throughput was 100 Regex a week for a team of 10. At first the business would have 200+ sites in the queue and each morning promote 10 mediums to high (or 8 mediums to high if 2 new highs came in as new items.) After constant daily reprioritizing, we decided to limit the number of items in the queue/backlog to only 2 days’ worth of work since our guarantee was 48 hours for mediums and 24 hours for highs. Now new high priority sites were added only as needed and every two days the business would add 40 new sites into the queue. (In reality, the team never hit 100% on the dot, so sometimes we would add only 32 items since 8 were still left over, etc.)

This process worked great, the team in India pulled items out of the queue while the business team in New York was sleeping and completed the items early morning New York time. The testers would verify early in the morning (when India was sleeping) and either put the site back into the development queue or put it into production. Every second day the business team would add approximately 40 more sites into the queue. In the past the business people would do a dump of about 200 or 300 sites at a time. By having so many items in the queue, the team would then have to spend too much time just managing the process and reprioritizing. Sites fell off and got lost. Only by limiting the work in progress and by limiting the queue did we achieve success. In addition, by keeping the queue small we allowed the business to reprioritize and have the developers pull the items through the system on demand.  Our daily meetings were more focused on bottlenecks, process, and throughput, not “what am I working on today.” Since we were well oiled, we could predict how long it would take something to flow though the system.

This was about 3 or 4 years ago and I did not know it at the time, but we were using a primitive form of Kanban. I would not even hear of Kanban as an Agile process until about a year or two later. (By then I had sold this business and was working at Telerik.)

Next, we’ll take a high level look at Kanban.

posted on Friday, March 25, 2011 3:25:15 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Wednesday, March 16, 2011

Yesterday Joel and I did our “Agile Buffet Table” session in Sydney, Australia at Telerik’s all day developer seminar. We talked about XP, Scrum, and Kanban and how you can build your own methodology by mixing and matching the features from each of these agile brands.

The slides are below (via slideshare).

posted on Wednesday, March 16, 2011 1:45:05 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, March 14, 2011

See also:

·         Part I:  How I started to use Scrum

In the last post, we looked at how I got into Agile and Scrum. Today we will take a look at how I started to break the rules.

After reading the Agile books by Ken Schwaber and obtaining my Certified ScrumMaster credential, I doubled down on Scrum at my start-up since it was working so well.  As things progressed and our business evolved, I started to bump up against the “rules” of Scrum.

As I mentioned last week in Part I, the guidance was to only use Scrum locally, not with offshore developers several time zones ahead.  I was also breaking many other “rules” most notably the sprint length, at that point the length was supposed to be one month, but I was using one week. I also changed the daily scrum to late in the day for the developers and inverted the questions to:

·         What did I do today?

·         What will I do tomorrow?

·         What do I need from you?

We also had a very small team so we dispensed with the formal sprint retrospective and did it continuously.  Then the big one hit. A business requirement came down where we had to develop thousands of Regular Expressions (RegEx) for sites that we spidered.  Each RegEx would be considered a work item in our backlog. They came with a spec from the business (what to capture) and the end result was a few RegExes as rows in a database.  We had to produce massive amounts of RegEx patterns so we hired a ton of “regex developers” or college kids in India looking for extra money.

We managed our backlog pretty easily but I struggled with applying the rules of Scrum to this process. Typically a developer would take the next highest high priority items from the backlog, work on it for a few hours and return it. They would work on two or three of these a day. I tried doing a daily scrum but it was boring for all involved. (Today I worked on RegEx. Tomorrow I will work on more RegEx. I need more Regex!) Also time boxing our iterations to a month did not make sense. We had to “release” or upload the patterns to our sider engine farm daily.

I asked Scrum experts and consulted the blogs and they all said not to change Scrum! They kept on about cross functional teams, a sprint backlog, 30 day sprints, daily scrums, etc. It was then when I decided that I would just apply the values of Agile and some features of Scrum to my process. I was labeled a “Scrum, butter” by Ken Schwaber (he even did this publically many years later at TechEd 2010.) I went back to the Agile manifesto and looked at the original four values:

·         Individuals and interactions over processes and tools

·         Working software over comprehensive documentation

·         Customer collaboration over contract negotiation

·         Responding to change over following a plan

I looked long and hard and realized that the current Scrum experts were too rigid.  Scrum boxed me in and when I had a business need that required some creativity, I was not able to use Scrum.  So I ditched Scrum and what I wound up doing was using an early form of Kanban. (More on this in the next post.)

posted on Monday, March 14, 2011 1:15:28 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Wednesday, March 09, 2011

clip_image001

 

Telerik Australia event: Focus on Developer Productivity

Telerik, the market-leading provider of end-to-end solutions for application development, automated testing, agile project management, reporting, and content management across all major Microsoft development platforms, is coming to Australia.

We invite you for in-depth sessions with industry experts and Telerik Senior Leadership.   All attendees will receive a copy of Telerik JustCode, valued at $199.

Please note these are 4 separate seminars; you need to register for all those you intend on attending.

 

The Agile Buffet Table: Implementing your own Agile Process  with Microsoft ALM Tools

New to Agile? Having challenges implementing an agile process in your organization? Have you been using Scrum, but need to bend the rules to make it work in your organization? Can’t get the business to “buy-in”? Come and learn about implementing an agile process in your organization. You'll look at the “buffet table” of agile processes and procedures and learn how to properly decide “what to eat.”  We’ll start by defining XP, Scrum, Kanban and some other popular methodologies and then learn how to mix and match each process for various scenarios, including the enterprise, ISVs, consulting, and remote teams. Then take a look at agile tools and how they will aid in implementing your development process. You’ll see how Microsoft Team Foundation Server 2010 provides process templates for Agile that facilitate better planning and metrics. Learn how Microsoft’s application lifecycle management (ALM) tools can support your development process. Lastly, we will talk about how to “sell” agile to your business partners and customers. The speakers have a very interactive style so participation is encouraged and there will be plenty of time for Q&A.

PRESENTERS:

Stephen Forte, Chief Strategy Officer of Telerik

Tuesday, March 15, 2011 9:00 AM - 12:00 PM (GMT+1000)

REGISTER NOW

(by invite only event, use password: Telerik&&ALM2)

Location:

Citigate Central Sydney

169-179 Thomas Street

Haymarket, NSW

Sydney, 2000

  Joel Semeniuk, Founder of Imaginet Resources,

                 Microsoft Regional Director

All attendees will receive a copy of Telerik JustCode, valued at $199.


Agile Testing

As more product teams move to Agile methodologies, the need for automated testing becomes essential to generate the velocity needed to ship fully tested features in short iterations. In this session we will look at the differences between traditional testing and agile testing, explore some tools and strategies that can help make your automation more productive as well as how to get the automation effort started for both new and existing agile projects.

PRESENTER:

Christopher Eyhorn, Executive VP of Telerik’s automated testing tools division

Tuesday, March 15, 2011 2:00 PM - 5:00 PM (GMT+1000)

REGISTER NOW

(by invite only event, use password:TestingTelerik)

Location:

Citigate Central Sydney

169-179 Thomas Street

Haymarket, NSW

Sydney, 2000

All attendees will receive a copy of Telerik JustCode, valued at $199.


20 Things to Consider When Selecting a CMS

Choosing a CMS can be a daunting task.  There are plenty of Content Management Systems to choose from; ranging in price from free to extremely expensive.  From this crowded landscape it can be difficult to find a CMS that effectively enables an organization to accomplish their goals.  In this session, I will identify 20 things to consider when evaluating a CMS that will help you select the ideal CMS for your project.

PRESENTERS:

Gabe Sumner, Developer Evangelist at Telerik

Martin Kirov, Executive Vice President of the Sitefinity CMS division of Telerik

Tuesday, March 15, 2011 9:00 AM - 12:00 PM (GMT+1000)

REGISTER NOW

(by invite only event, use password:TelerikAustralia)

Location:

Citigate Central Sydney

169-179 Thomas Street

Haymarket, NSW

Sydney, 2000

All attendees will receive a copy of Telerik JustCode, valued at $199.


Streamline Development with ASP.NET MVC Extensions

Tired of dealing with the bloated pages generated by your WebForms application? Wondering what the whole deal is with MVC? Already into MVC but want to get maximum performance and functionality out of your applications? In this presentation we will take a look at how ASP.NET MVC, together with the Telerik MVC Extensions, can have you developing applications with high performance and functionality, while output light-weight and easily readable HTML.

PRESENTER:

Malcolm Sheridan, Microsoft awarded MVP in ASP.NET

Speeding up Development Using 3rd Party Controls

Learn how to cut Silverlight development time significantly using your new Telerik RadControls. As a TechDays attendee, you will receive a complimentary license for Telerik’s RadControls for Silverlight. This TurboTalk will demonstrate how you can speed up application development while adding more functionality to your Silverlight applications with the Telerik tools. See how high-performance data controls like RadGridView and RadChart can take your applications to the next level. See how layout controls like RadDocking and RadTileView can add both richness and increased functionality, helping you maximize screen real estate. And see how RadRichTextBox is unlocking Silverlight’s power to enable editing of HTML, DOCX, and XAML content. Jumpstart your development with the RadControls for Silverlight and get the most out of your new tools by joining this developer-to-developer talk.

PRESENTER:

Jordan Knight, Solution Architect | Microsoft MVP - Silverlight

Tuesday, March 15, 2011 2:00 PM - 5:00 PM (GMT+1000)

REGISTER NOW

(by invite only event, use password: DevelopersRock)

Location:

Citigate Central Sydney

169-179 Thomas Street

Haymarket, NSW

Sydney, 2000

All attendees will receive a copy of Telerik JustCode, valued at $199.

posted on Wednesday, March 09, 2011 3:52:17 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, March 08, 2011

In the beginning I used waterfall. There I said it. Looking back at the mid to late 1990s, I can’t believe how I ever got software developed at all! ;)

I was first introduced to Agile methodologies ten years ago. When I was the CTO of Zagat, one of our board members gave me a copy of Kent Beck’s original Extreme Programming Explained. At the time Zagat was doing a modified version of waterfall that was more “agile”, meaning we were doing things quickly and responding to the needs of the business (this was the .COM boom you know!), however, we were not Aglie insofar as we practiced any specific agile methodology. I read over Kent’s book (note to all of you CTOs out there, a board member gives you a book, you read it) and dismissed the concept of pair programming, but embraced several things in the book, including continuous integration and short iterative release cycles. At the time I don’t think it was called “iterations” but I sold it to the CEO as “short iterative chunks” of functionality. I would not make the argument that we were implementing XP, however, we did take some tenants of XP and roll it into our process. We even hired Steve McConnell to come in and help us with that. (That was the best part of the .COM era, we had budget to bring in Steve McConnell!)

After I left Zagat, I started my own business in New York. It was an online service to allow people see how the economy was doing by looking at the ad spend in certain categories (like jobs, autos, and real estate). At my new company we had 1 developer at first, so we started using a blended Waterfall/XP/Sprial/fly by the seat of your pants process since we were in startup mode. After we grew and had a few more developers, my lead developer forwarded me a blog post about Scrum. I read it over and told him that it was cool, but probably just a fad. (He still likes to remind me of this!)

A few years later we augmented our developers with a team in India. We suffered communication gaps and poor quality. (This was BS, or “before skype” in like 2004.) I was desperate to get a productivity boost from the team in India. It seemed that after each of my frequent visits to India, the team was running at like 200% for a few weeks and then leveled off back to the poor productivity. I decided to try out Scrum since the parts of our process that worked were the items we borrowed from XP.

Almost overnight Scrum worked very well for us. The team in India and the team in New York were in complete sync and the business was on board with the rapid release cycles (sprints). Since we were a small company, the entire company could participate in the daily scrum, increasing the communication flow and buy in from the business side. The team in India got addicted to the daily scrum and were in the zone. We were running circles around our competition. Life was good.

Then I read the scrum books. I read the section on “A cost effective alternative to offshore development.” (p136.) The guidance was not to use Scrum with offshore developers! (The argument was the scrum made teams so efficient that you did not need to go offshore.) There was also a section called “Rules.” I realized that I broke just about every rule! I was young and impressionable, so I figured that even though Scrum was working so well, if I followed all of the rules, I would get even better results. So I decided to become a certified scrummaster.

After a lot of trial and error, I realized that it was best to break the rules. More on this in my next post. ;)

posted on Tuesday, March 08, 2011 5:47:34 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, March 04, 2011

I’ll be speaking in Sydney on Tuesday March 15th on building your own Agile methodology.  As usual, Joel will be joining me.

The Agile Buffet Table: Implementing your own Agile Process  with Microsoft ALM Tools

New to Agile? Having challenges implementing an agile process in your organization? Have you been using Scrum, but need to bend the rules to make it work in your organization? Can’t get the business to “buy-in”? Come and learn about implementing an agile process in your organization. You'll look at the “buffet table” of agile processes and procedures and learn how to properly decide “what to eat.”  We’ll start by defining XP, Scrum, Kanban and some other popular methodologies and then learn how to mix and match each process for various scenarios, including the enterprise, ISVs, consulting, and remote teams. Then take a look at agile tools and how they will aid in implementing your development process. You’ll see how Microsoft Team Foundation Server 2010 provides process templates for Agile that facilitate better planning and metrics. Learn how Microsoft’s application lifecycle management (ALM) tools can support your development process. Lastly, we will talk about how to “sell” agile to your business partners and customers. The speakers have a very interactive style so participation is encouraged and there will be plenty of time for Q&A.

Register now and get a free copy of JustCode ($199 value!)

Tuesday, March 15, 2011 9:00 AM - 12:00 PM (GMT+1000)

REGISTER NOW (by invite only event, use password: Telerik&&ALM2)

Location:

Citigate Central Sydney

169-179 Thomas Street

Haymarket, NSW

Sydney, 2000

posted on Friday, March 04, 2011 1:39:42 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, January 12, 2011

Making Agile Development work in your organization

Telerik & e-Zest Solutions Ltd. invites you for Two Free Seminars:

Agile Development

INTRODUCTION

The Agile methodology has been adopted by many organizations around the globe. Unfortunately, many still struggle with the various methodologies (XP, Scrum, Kanban etc), and can’t settle on just one. While some organizations are successful in implementing Agile with the development teams, they tend to forget other vital parts of the process, mainly testing.

Implementing your own Agile Process Seminar at Pune, India

A session on how to choose which Agile methodology (or how to mix and match several pieces) to implement in your organization and how to do it.

Are you new to Agile? Have challenges implementing an Agile process in your organization? Have you been using Scrum, but need to bend the rules to make it work in your organization? Are you interested in using Kanban? What about XP? Can’t get the business “buy-in”? Come and learn about implementing an Agile process that suits all your organisational needs.

The “buffet table” of Agile processes & procedures session is aimed at learning how to properly mix & match each process, will cover:

  • Defining XP, Scrum, Kanban and some other popular methodologies.
  • How to implement a custom process for the enterprise, ISVs, consulting and remote teams?
  • How Agile tools aids in implementing your unique process?
  • How to “sell” Agile to your business partners and customers?

Seminar Coverage
Time Slot

Free Registration
9:00 am-9:55 am

Speaker Introduction
9:55 am-10:00 am

Session on “The Agile Buffet Table”
10:00 am-1:00 pm

Agile Testing Seminar at Pune, India

This session dives into the value of Agile testing, how to use automated Agile testing tools and how your organization will benefit from Agile testing.

As more product teams move to Agile methodologies, the need for automated testing becomes essential to generate the velocity needed to ship fully tested features in short iterations.

The Session will cover:

  • The differences between traditional testing and Agile testing.
  • Exploring tools and strategies, that can help make your automation more productive as well as how to get the automation effort started for both new and existing Agile projects?

Seminar Coverage
Time Slot

Free Registration
2:30 pm-2.50 pm

Speaker Introduction
2.50 pm-3.00 pm

Session on “Agile Testing”
3:00 pm–5:00 pm

Conclusion of Program
5:00 pm

SPEAKERS

Stephen Forte

Stephen Forte is the Chief Strategy Officer of Telerik (A leading vendor of developer and team productivity tools, automated testing and UI components) also a certified scrum master. Involved in several startups, was the Co-founder of Triton Works (acquired by UBM in 2010), CTO and Co-founder of Corzen, Inc. (acquired by Wanted Technologies (TXV: WAN) in 2007). He also speaks regularly at Industry conferences around the world. He has written several books on application and database development including Programming SQL Server 2008 (MS Press). Prior to Corzen, Stephen served as the CTO ofZagat Survey in New York City and also was co-founder of the New York based software consulting firm The Aurora Development Group. He currently is a Microsoft MVP award recipient, INETA speaker and is the Co-moderator & founder of the NYC .NET Developer User Group.

Christopher Eyhorn

Christopher Eyhorn is the Executive VP of Telerik’s automated testing tools division, where they build the next generation of automated testing tools. Formally Co-founder and CEO of ArtOfTest. He has written automation frameworks and functional testing tools and has worked in a variety roles ranging from developer to CEO within the company. Christopher has worked with a variety of companies ranging in size and Industry. He is a licensed pilot that loves to fly every chance he gets and truly appreciates the importance of hardware and software testing every time he takes off.

WHO SHOULD ATTEND?

Agile Buffet Table:
The discussion is advantageous for professionals, using the Microsoft .NET platform as well as Product Managers, Technical Directors, Project Managers, Architects and Sr. Developers.

Agile Testing:
Professionals interested in learning how to make their testing efforts more efficient as well as produce more automated tests at the end of each sprint as well as Project Managers, Software Quality Managers, Test/ QA Leads and Sr. Test Engineers.

Date & Time:

Tuesday, January 18th 2011
Agile Buffet Table, from 9:00 am – 1:00 pm
Agile Testing, from 2:30 pm – 5:00 pm

Venue:

Sumant Moolgaokar Auditorium, Ground floor,
MCCIA Trade Tower, ICC Complex, 403,
Near Senapati Bapat Road, Pune

Pre-registration: Mandatory

Kindly confirm your participation immediately by sending us your contact
details on seminar@e-zest.net

e-Zest Help line number: 020–25459802/03/04

e-Zest Solutions Ltd. (www.e-zest.net) is a CMMI Level 3 & ISO 9001:2008 certified, Product Engineering and Enterprise Solutions provider, focused on solutions and services based on Microsoft .NET (3.0/3.5/4.0), Sun Java EE (5.0) & LAMP. e-Zest is also Telerik Sales & Training India partner, a Microsoft Gold Certified Partner and Sun Associate Partner.

Telerik (www.telerik.com), is a leading vendor of ASP.NET AJAX, ASP.NET MVC, Silverlight, WinForms & WPF controls & components, as well as .NET Reporting, .NET ORM , .NET CMS, TFS, Code Analysis & Web Application Testing Tools. Building on its expertise in interface development & Microsoft technologies.

posted on Wednesday, January 12, 2011 1:34:00 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, December 31, 2010

Last year I made some long range predictions saying that 2010 will be the turning point for a few trends. I was not saying that on December 31st, 2010 (today!) you will sit back and say I am right on all of these, but I was saying that by December 31st, 2011 or 2012 you will. The trends I spoke about last year are: .NET has hit the end of the road, BI is the next big thing, the cloud will emerge, Google and Apple will go to war, and content providers will strike back.

I still think these trends hold true. It looks like #4 (Google v Apple) and #5 (Content Providers strike back) already started to happen in 2010.

It is now time for some predictions in the Microsoft space and the industry in general. Today I will start with Microsoft, here are three bold predictions in the Microsoft space:

Windows Phone 7 will have more apps than both iPhone and Android in 2 years

Windows Phone 7 (WP7) is playing catch-up and will start to gain some market share in 2011. While it will still be a distant 3rd place behind Android and the iPhone in the “Smartphone” category, it will shine in one area: apps. There are tons of apps out there for both iPhone and Android and only very few for WP7 as of this writing. That will change, and one story this year will be the explosion of quality apps for WP7. 

We are already seeing great growth in the Windows 7 Marketplace. Currently there are over 5,000 apps in less than two months since launch. It took Android over 5 months to get to the 5,000 number. WP7 has well over double the speed of the growth Android had at launch. While this does not mean much, if the trend continues as I think it will, Microsoft’s phone will have the most apps within a couple of years.

Developers build applications on a platform for two reasons: the platform has reach and it is easy to develop for. WP7 will have broad reach as it gains market share this year and developer ecosystems are in Microsoft’s DNA, not Apple’s and Google’s. While developers will continue to develop for the iPhone and Android, within two years, WP7 (or 8?) will have the most applications. Both the XBox (XNA) and Silverlight platforms to develop on are quite easy and already have a tremendous amount of developers.

Windows 8 will ship a beta and the surprise story will be Silverlight, not HTML5

While Windows 7 is  the most successful operation system Microsoft has shipped to date, we will see a Windows 8 beta this year, most likely at the PDC in the fall. Speculation is that Windows 8 will be based on HTML5 and not have any support for Silverlight included, a hint as to where Microsoft has put its priorities. My bold prediction is that while HTML5 will be “everywhere” in Windows 8, Silverlight will ship as part of the core OS, putting it on equal footing with HTML5 in Windows 8.

Office 365 will dominate over GoogleApps

Later this year Office 365 will launch and compete head on with GoogleApps. Microsoft has the model right, online applications that integrate with the locally installed ones, Exchange integrations, and managed support. At $6 per user, your business can have a fully functional Exchange, Sharepoint, and Office solution without any IT costs. GoogleApps are good, however, they can’t compete with what Office 365 is offering.

posted on Friday, December 31, 2010 8:30:40 AM (Eastern Standard Time, UTC-05:00)  #    Comments [1] Trackback
# Thursday, December 16, 2010

At the end of each year we have time to look back and reflect on the year before and think about the year ahead. 2010 was once again a challenging year for Telerik as well as our customers. The economy continues to be stubborn in many parts of the world. Microsoft released new versions of .NET and Visual Studio that we had to be ready for. Silverlight 4 was released, then pronounced dead, then alive again, then Silverlight 5 previews were shown. Even Mother Nature in April gave us trouble; the eruption of Mt. Eyjafjallajökull in Iceland stranded over a dozen of our employees, including our CEO, on three continents. (Don’t feel too bad, some of them were stranded in Las Vegas!)

Looking back, 2010 was also a year of growth for Telerik. Our team grew very rapidly with lots of great new hires-we are already outgrowing our new office building in Sofia. We added two divisions (Testing and Team Productivity) and two offices (Austin, Texas and Winnipeg, Canada.) We added many new products including: Windows 7 Phone Toolkit, JustCode, JustMock, TeamPulse, and had major upgrades of some existing products such as our Web Testing Framework, OpenAccess’ LINQ implementation, and the SiteFinity 4.0 release candidate. In partnership with Microsoft, at the Silverlight Firestarter a few weeks ago, Scott Guthrie announced our release of a great reference application for Silverlight: f!acedeck. (We are proud of the work we did on f!acedeck, so give it a try!) 

We continue to push the envelope and drive innovation in our existing products. Our products won several awards in 2010, including the industry standard JOLT awards, Best of TechEd 2010 and “Best” by the Visual Studio Magazine Awards. Telerik was also selected as a Red Herring Global 100 company, the “Best Company to work for in Bulgaria”, and was a finalist in the prestigious European Business Awards.

In 2010, Telerik reached more customers at events this year. Our team traveled to all four corners of the globe to visit customers. For example we had speakers and booths at five TechEds in the USA, Europe, Australia, India, and Brazil. We sponsored major events in North America, South America, Europe, Africa, Asia, and Australia, visiting customers in some familiar places (such as Las Vegas) and some new ones (Brazil and Hong Kong). Besides the big events, we also sponsored and spoke at several CodeCamps, user groups, and other events around the world, including DevReach in our own backyard. Our evangelists and marketing teams would even travel to Antarctica to visit customers!

Looking forward to 2011, we hope that the world economy and the general business climate improve. We have some great releases of our products planned, such as SiteFinity 4.0 in January and our Q1 2011 release in March. We have a brand new product that is currently top secret, but you’ll get a preview of it soon. We also plan to open some more offices worldwide as well as attend and sponsor even more events. We are hitting the ground running in 2011, we are putting on an event in Pune, India in January.

We hope to see you in person in 2011 since we do this all for you. I want to close by thanking all of you, our customers, for your dedication and support. Happy New Year!

Stephen Forte, CSO

Sofia, Bulgaria

posted on Thursday, December 16, 2010 7:47:31 AM (Eastern Standard Time, UTC-05:00)  #    Comments [4] Trackback
# Wednesday, December 15, 2010

Telerik and e-Zest will be sponsoring two Agile seminars on January 18th at the MCCIA in Pune, India. Hope to see you there!

Seminars on
Agile Development and Testing
Tuesday January 18th 2011 @ MCCIA, Pune

e-Zest logo CMMI 


INTRODUCTION

The Agile methodology has been adopted at many organizations. Unfortunately, many still struggle with the various methodologies (XP, Scrum, Kanban, etc) and can’t settle on just one. While some organizations do have successes is implementing Agile with the development team, they tend to forget other vital parts of the process, mainly testing. We will present two separate seminars, one on how to choose which agile methodology (or how to mix and match several pieces) to implement in your organization and how to do it. The second seminar dives into the value of Agile testing, how to use automated Agile testing tools, and how your organization will benefit from Agile testing.

Morning Seminar: The Agile Buffet Table: Implementing your own Agile process

New to Agile? Having challenges implementing an agile process in your organization? Have you been using Scrum, but need to bend the rules to make it work in your organization? Can’t get the business to “buy-in”? Come and learn about implementing an agile process in your organization. You'll look at the “buffet table” of agile processes and procedures and learn how to properly decide “what to eat.” We’ll start by defining XP, Scrum, Kanban and some other popular methodologies and then learn how to mix and match each process for various scenarios, including the enterprise, ISVs, consulting, and remote teams. Then take a look at agile tools and how they will aid in implementing your development process. You’ll see how Microsoft Team Foundation Server 2010 provides process templates for Agile that facilitate better planning and metrics. Lastly, we will talk about how to “sell” agile to your business partners and customers. The speakers have a very interactive style so participation is encouraged and there will be plenty of time for Q&A.

Afternoon Seminar: Agile Testing

As more product teams move to Agile methodologies, the need for automated testing becomes essential to generate the velocity needed to ship fully tested features in short iterations. In this session we will look at the differences between traditional testing and agile testing, explore some tools and strategies that can help make your automation more productive as well as how to get the automation effort started for both new and existing agile projects.

Seminar Coverage

Time Slot

Developer Event Registration

9:00-9:55

Speaker Introduction

9:55-10:00

Agile Development Event

10:00-1pm

Break

1pm-2:30pm

Agile Testing Event Registration

2:30-3pm

Speaker Introduction

3-3:10pm

Agile Testing Event

3:15-5pm

Conclusion of Program

5:00pm

WHO SHOULD  ATTEND?


Agile Buffet Table: Developers and development managers, especially those using the Microsoft .NET platform.

Agile testing: any agile team member (dev or tester) that is interested in learning how to make their testing efforts more efficient as well as produce more automated tests at the end of each sprint.

FACULTY
Stephen Forte

Stephen Forte is the Chief Strategy Officer of Telerik, a leading vendor of developer and team productivity tools, automated testing and UI components. Stephen is also a certified scrum master. Involved in several startups, prior he was the co-founder of Triton Works, which was acquired by UBM in 2010 (London: UBM.L), and was the Chief Technology Officer (CTO) and co-founder of Corzen, Inc., which was acquired by Wanted Technologies (TXV: WAN) in 2007. Stephen also speaks regularly at industry conferences around the world. He has written several books on application and database development including Programming SQL Server 2008 (MS Press). Prior to Corzen, Stephen served as the CTO of Zagat Survey in New York City and also was co-founder of the New York based software consulting firm The Aurora Development Group. He currently is a Microsoft MVP award recipient, INETA speaker and is the co-moderator and founder of the NYC .NET Developer User Group. Stephen has an MBA from the City University of New York.

Christopher Eyhorn

Christopher Eyhorn is the Executive VP of Telerik’s automated testing tools division where he is building the next generation of automated testing tools.  Formally co-founder and CEO of ArtOfTest, he has written automation frameworks and functional testing tools and has worked in a variety roles ranging from developer to CEO within the company.  Christopher has worked with a variety of companies ranging in size and industry.  He is a licensed pilot that loves to fly every chance he gets and truly appreciates the importance of hardware and software testing every time he takes off.

posted on Wednesday, December 15, 2010 8:51:21 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, December 08, 2010

If you are creating OData or WCF services in your application and have been using the Telerik Data Services Wizard, things just got a whole lot easier. As I have shown before, you can go from File|New to a new CRUD application in 30 seconds using the wizard. With the Q3 release last month, Telerik gives you more control over the wizard and its output. Some of the new features are: the ability to isolate your service in its own project, the ability to select which CRUD methods gets created for each entity, and Silverlight data validation. Let’s take a look.

When you run the wizard, on its first page you now have the option, as shown here, to separate the service in its own class library. You can check the checkbox and type in a project name and the Data Services Wizard create the implementation files for the service in this new class library for you.

image

In previous versions of the wizard, the wizard would create all of the CRUD operations for you automatically. We received feedback from customers that said they would like more control over this process, allow some entities to be read only for example. The Q3 version of the wizard now allows you to select which CRUD methods to generate for each entity.

image

Lastly, if you choose the automatic Silverlight application generation, the wizard will read the database validation rules and replicate them as client side validation rules, saving you a lot of configuration and coding!

image

Enjoy the new wizard’s improvements!

posted on Wednesday, December 08, 2010 8:35:15 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, December 07, 2010

If you are currently invested in LINQ to SQL and want to upgrade to Telerik OpenAccess ORM, with the new OpenAccess Q3 release you can do this quite easily. There is a new wizard included with OpenAccess that will automatically convert your LINQ to SQL classes to Telerik LINQ classes. Let’s take a look.

I’ll start with a simple project that has a simple LINQ to SQL model in it: Northwind.dbml. It is mapped to the Northwind database tables.

image

I created a simple web form that has a GridView on it. I decided that I would try to stump the wizard by writing a complex LINQ statement, one with aggregates, joins, sums, and projections to anonymous types. Then I take that code and bind it to the GridView. The LINQ code is shown here. 

   1:  //DataContext
   2:  NorthwindDataContext dat = new NorthwindDataContext();
   3:  //LINQ Query to Aggergate and Group by to an new type
   4:  var result = from i in
   5:                      (
   6:                      from c in dat.Customers
   7:                      join o in dat.Orders
   8:                      on c.CustomerID equals o.CustomerID
   9:                      select new { c.Country, o.Freight }
  10:                      )
  11:                  group i by new { i.Country } into g
  12:                  select new { g.Key.Country, TotalAmt = g.Sum(f => f.Freight) };
  13:              
  14:  //bind the results
  15:  GridView1.DataSource = result;
  16:  GridView1.DataBind();

Results are shown here:

image

 

Conversion time. Doing the convert is simple and done in place. Just right click on the LINQ to SQL model and choose “Convert From L2S Model to Domain Model” from the context menu.

image

 

This will bring up the OpenAccess Conversion wizard. In reality the wizard is one page. If you accept the defaults, the wizard will create a new RLINQ file (Telerik OpenAccess LINQ file) and give it the same Name and Namespace as the LINQ to SQL model. In addition, it will backup the old files.

image

 

Accepting all of the defaults and clicking next brings you to the confirmation page.

image

 

From here click Finish and the wizard will do its work. You will see a conversion report come up.

 

image

Now you will have a new OpenAccess Domain Model in your project.

image

 

Since your project now has two identically names LINQ classes, it is time to delete the LINQ to SQL class. (Don’t worry it is backed up.) Without changing any code in my application, I press F5 and the project runs, but now using Telerik OpenAccess.

Enjoy!

image

posted on Tuesday, December 07, 2010 8:56:30 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, December 03, 2010

Back at the PDC 2009 in Los Angeles, CA, Brian Goldfarb showed off the “Microsoft Silverlight Client for Facebook Beta”. It was released by Microsoft in early 2010 and had millions of downloads for both Windows and the Mac. Over the past few months, the Facebook app has been further developed by Telerik and is now available as the first official version under its new name: Telerik f!acedeck.

SNAGHTMLc83121

Telerik has taken over the application from Microsoft and will continue its further development and support as a free application for everyone to enjoy. Telerik f!acedeck delivers a superior experience to Facebook users and offers unique features: such as drag-and-drop from the local file system, access to the video camera,  instant loading and smooth scrolling of the Facebook wall, notifications and chat.

SNAGHTMLd71d44

Telerik f!acedeck Client for Facebook is immediately available from its original location on Microsoft’s website (http://www.silverlight.net/content/samples/apps/facebookclient) as well as from Telerik’s website (http://facedeck.telerik.com). The product is free and works on both Windows and Mac OS operating systems with the Silverlight 4 plugin installed.

Enjoy!

posted on Friday, December 03, 2010 7:37:31 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, November 05, 2010

At TechEd Europe 2010 in Berlin, I will be doing three breakout sessions and one panel discussion: Silverlight v HTML5.

My breakout sessions are:

  • Scrum, but
  • Agile Estimation

This is the first time I am formally doing the Scrum, but session, however, Joel and I did it at TechEd North America at our pre-con. We’ll (I invited Joel, even though he is not an “official” speaker to do the session with me) walk the audience through a few slides about Scrum, Kanban, XP and “Agile is about values, not rules” and the “buffet table” approach. After about 10 minutes of us blabbing, we will open it to questions. We are prepared to speak about four scenarios: Scrum/Agile in the Enterprise, Consulting, Remote (and outsourced) teams, and ISVs. Should be fun, and interactive! Bring lots of questions!!!

The Agile Estimation talk is a repeat of my talk last year and we are doing it twice since there is a lot of demand.

The session times are below. When I am not doing sessions, I will be at the Telerik Booth. You can find us at E 83+E84, very close to where we were last year. I’ll be glad to talk to you about the sessions, agile in general, or the Telerik tools. If you check out our CTP of WP7 controls now, we have a special offer for you: As a special gift to all TechEd Europe attendees visiting our booth, you will receive a free license of these controls once they are finally released, if you download the CTP now.

See you in Berlin! Winking smile

Code

Session

Day

Time

DPR301

Scrum, but

Breakout Session

Stephen Forte

Having challenges implementing Scrum in your organization? Have you been using Scrum but need to bend the rules to make it work in your organization? Do you practice a little Scrum with a mix of Kanban? Then this session if for you! Come and learn about implementing Scrum, but with a few changes. We'll look at customizing Scrum in your environment and look specifically at how to implement Scrum for the enterprise, ISVs, consulting and remote teams.

Tuesday, November 9

2:30 PM - 3:30 PM

DPR201

Agile Estimation

Breakout Session

Stephen Forte

We’re agile, so we don’t have to estimate and have no deadlines, right? Wrong! This session will review the problem with estimations in projects today and then give an overview of the concept of agile estimation and the notion of re-estimation. We’ll learn about user stories, story points, team velocity, and how to apply them all to estimation and iterative re-estimation. We will take a look at the cone of uncertainty and how to use it to your advantage. We’ll then take a look at the tools we will use for Agile Estimation, including planning poker, Visual Studio TFS and much more.

Thursday, November 11

12:00 PM - 1:00 PM

DPR201 (R)

Agile Estimation (repeat)

Breakout Session

Stephen Forte

We’re agile, so we don’t have to estimate and have no deadlines, right? Wrong! This session will review the problem with estimations in projects today and then give an overview of the concept of agile estimation and the notion of re-estimation. We’ll learn about user stories, story points, team velocity, and how to apply them all to estimation and iterative re-estimation. We will take a look at the cone of uncertainty and how to use it to your advantage. We’ll then take a look at the tools we will use for Agile Estimation, including planning poker, Visual Studio TFS and much more.

Thursday, November 11

6:00 PM - 7:00 PM

posted on Friday, November 05, 2010 5:16:58 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Saturday, September 11, 2010

If you use Telerik software, why not tell the world how much by voting for the 2010 DevProConnections Community Choice Awards. Voting is open now and Telerik is nominated in 16 of the total 26 categories! While it’s great to take home awards like our recent Best of TechEd 2010 trophy, there is something unique about letting the voters on the Interwebs determine your fate.

What do you need to do? Vote today!

And then remind your co-workers, Twitter followers, Facebook friends, LinkedIn connections, DNUG members, and anyone else you see to vote in this year’s awards, too. To help you successfully cast your ballot for Telerik’s nominations this year, here is a quick voting guide for the categories where you’ll find us:

  • Category (Telerik Product)
  • Add-In (Telerik JustCode)
  • Charting & Graphics Tool (Telerik RadChart for ASP.NET AJAX)
  • Community Resource (Telerik’s Community )
  • Component Set (Telerik RadControls for ASP.NET AJAX)
  • Content Management System (Telerik Sitefinity Web CMS)
  • Grid (Telerik RadGrid for ASP.NET AJAX)
  • Navigation Control (Telerik RadMenu for ASP.NET AJAX)
  • Online Editor (Telerik RadEditor for ASP.NET AJAX)
  • Printing/Reporting Tool (Telerik Reporting)
  • Project Management/Defect Tracking (Telerik TeamPulse)
  • Scheduling/Calendar Tool (Telerik RadScheduler for ASP.NET AJAX)
  • Silverlight Product (Telerik RadControls for Silverlight)
  • Testing/QA Tool (Telerik WebUI Test Studio)
  • Training (Telerik Training)
  • Utility (Telerik OpenAccess ORM)
  • Free Tool (Telerik OpenAccess ORM Express)

Vote in the DevProConnections Community Choice Awards. (Voting closes September 21st.)

posted on Saturday, September 11, 2010 9:50:35 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Friday, September 03, 2010

See also:

In Part I we looked at the advantages of building a data warehouse independent of cubes/a BI system and in Part II we looked at how to architect a data warehouse’s table schema. In Part III, we looked at where to put the data warehouse tables. In Part IV, we are going to look at how to populate those tables and keep them in sync with your OLTP system. Today, our last part in this series, we will take a quick look at the benefits of building the data warehouse before we need it for cubes and BI by exploring our reporting and other options.

As I said in Part I, you should plan on building your data warehouse when you architect your system up front. Doing so gives you a platform for building reports, or even application such as web sites off the aggregated data. As I mentioned in Part II, it is much easier to build a query and a report against the rolled up table than the OLTP tables.

To demonstrate, I will make a quick Pivot Table using SQL Server 2008 R2 PowerPivot for Excel (or just PowerPivot for short!). I have showed how to use PowerPivot before on this blog, however, I usually was going against a SQL Server table, SQL Azure table, or an OData feed. Today we will use a SQL Server table, but rather than build a PowerPivot against the OLTP data of Northwind, we will use our new rolled up Fact table.

To get started, I will open up PowerPivot and import data from the data warehouse I created in Part II. I will pull in the Time, Employee, and Product dimension tables as well as the Fact table.

clip_image001

Once the data is loaded into PowerPivot, I am going to launch a new PivotTable.

clip_image002

PowerPivot understands the relationships between the dimension and fact tables and places the tables in the designed shown below. I am going to drag some fields into the boxes on the PowerPivot designer to build a powerful and interactive Pivot Table. For rows I will choose the category and product hierarchy and sum on the total sales. I’ll make the columns (or pivot on this field) the month from the Time dimension to get a sum of sales by category/product by month. I will also drag in Year and Quarter in my vertical and horizontal slicers for interactive filtering. Lastly I will place the Employee field in the Report Filter pane, giving the user the ability to filter by employee.

clip_image003

The results look like this, I am dynamically filtering by 1997, third quarter and employee name Janet Leverling.

clip_image005

This is a pretty powerful interactive report build in PowerPivot using the four data warehouse tables. If there was no data warehouse, this Pivot table would have been very hard for an end user to build. Either they or a developer would have to perform joins to get the category and product hierarchy as well as more joins to get the order details and sum of the sales. In addition, the breakout and dynamic filtering by Year and Quarter, and display by month, are only possible by the DimTime table, so if there were no data warehouse tables, the user would have had to parse out those DateParts. Just about the only thing the end user could have done without assistance from a developer or sophisticated query is the employee filter (and even that would have taken some PowerPivot magic to display the employee name, unless the user did a join.)

Of course Pivot Tables are not the only thing you can create from the data warehouse tables you can create reports, ad hoc query builders, web pages, and even an Amazon style browse application. (Amazon uses its data warehouse to display inventory and OLTP to take your order.)

I hope you have enjoyed this series, enjoy your data warehousing.

posted on Friday, September 03, 2010 4:14:33 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Thursday, September 02, 2010

See also:

In Part I we looked at the advantages of building a data warehouse independent of cubes/a BI system and in Part II we looked at how to architect a data warehouse’s table schema. In Part III, we looked at where to put the data warehouse tables. Today we are going to look at how to populate those tables and keep them in sync with your OLTP system.

No matter where your data warehouse is located, the biggest challenge with a data warehouse, especially one where you are going to do real time reporting off of, is that the data is published from the transactional system (OLTP). By definition, the data warehouse is out of date compared to the OLTP system.

Usually when you ask the boss, “How much latency can you accept between the OLTP and data warehouse systems” the boss will reply: none. While that is impossible, the more time to develop and the more money you have will to develop said system, the closer to real time you can get. Always bring up the American Express example used in Part I for proof that your system can accept at least some latency.

If you remember the code examples from Part II, most of the time you have to query OLTP data, aggregate it, and then load it into your new schema. This is known as the process of extraction, transformation, and loading (ETL) data from the OLTP system into the data warehouse. The workflow usually goes like this: at a pre-set time (at every change, hourly, nightly, or weekly) query the OLTP data (extraction) and then aggregate and flatten it out (transformation) and then copy the transformed data to the data warehouse (star or snowflake) tables (load).

You have several options ranging from near real time ETL (very complex and expensive) to nightly data dumps (least complex and least expensive.) You can also perform full ETL (wipe out the data warehouse tables completely and refill on each operation) and partial ETL (only add incremental data as per a time series.) The actual load can be done via database triggers on an add/update/delete for near real time to simple scheduled SQL batches that wipe data and run your load scripts. Most likely you will want to take a hybrid approach, depending on the maturity of your system. You have three basic options, ranging from least complex to most complex:

  • Direct database dump
  • ETL tool
  • Database triggers

When you have a long time series to publish your data, say nightly, or weekly, you can do a direct database dump. The process would be pretty straightforward. At a regular interval (or manually) a process would start that would query the OLTP database and perform all of the aggregations, etc and then load it into a staging data warehouse database, then wipe out the production data warehouse and load the data in.

Another option is to use an ETL tool. A good example is SQL Server Integration Services (SSIS) if you are using Microsoft SQL Server. (Actually SSIS will work with multiple database, you just need a SQL Server host.) A modern ETL tool will give you the ability to segment the work into logical groups, have a control flow based on success and failure of a condition, and allows rollbacks.

clip_image002

A typical workflow with an ETL tool is that the ETL will run on a schedule (or based on a condition, such as a message arriving from a queue or a record written to a admin table) and have a parameter(s) passed to it. This parameter is usually a time series and the ETL will perform all of the extraction on data from the OLTP database filtered by that parameter. An ETL tool is the most likely solution you will employ, especially if you have to make frequent updates from your OLTP system to your data warehouse.

Another option is to use database triggers. For those of you that don’t know a lot about triggers, well they can lead to evil. ;) That said, they are events that fire when data changes. You can then write SQL code to run when the data changes, even ETL code. Triggers are hard to debug and difficult to maintain, so I would only suggest that you use a trigger when you need “real time” updates to your data warehouse and even then, the trigger should only write a record into an admin table that your ETL process is polling to get started.

A common design pattern with a sophisticated ETL is to do all of the ETL to a staging data warehouse and allow a check mechanism to verify that the ETL was successful. Once this check is performed (either by computer or by human, depending on the system), you can then push the data from the staging tables to the production tables. There is a SQL operator specifically for this process, the MERGE operator. MERGE looks at two tables and looks at their joins and compares the data and will do add, updates, inserts, and deletes to keep the two tables in sync. Here is how we would do that with a MERGE statement and our fact table from Part II.

--MERGE the FACT Local to FACT Remote
MERGE dbo.FactOrder as t--target
  USING Northwind.dwh.FactOrder as s--source
  ON t.ProductID = s.ProductID AND
  t.EmployeeID = s.EmployeeID AND
  t.ShipperID = s.ShipperID AND
  t.TimeKey = s.TimeKey --joining keys

--record exists in target, but data different
WHEN MATCHED AND (s.OrderDate != t.OrderDate OR 
   s.PostalCode != t.PostalCode OR
   s.[Total Sales] != t.[Total Sales] OR
   s.Discount != t.Discount OR
   s.[Unit Sales] != t.[Unit Sales]) THEN
       UPDATE SET t.OrderDate = s.OrderDate, 
       t.PostalCode = s.PostalCode,
       t.[Total Sales] = s.[Total Sales],
       t.Discount = s.Discount,
t.[Unit Sales] = s.[Unit Sales]

WHEN NOT MATCHED BY SOURCE THEN
   --only in target, get rid of it
   Delete

WHEN NOT MATCHED BY TARGET THEN 
   --record only exists in source
   INSERT VALUES (s.OrderDate, s.PostalCode, s.ProductID,s.EmployeeID,
   s.ShipperID, s.[Total Sales], s.Discount, s.[Unit Sales], s.[TimeKey]);--required!!

Tomorrow we will warp up with the application development options.

posted on Thursday, September 02, 2010 5:58:03 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Wednesday, September 01, 2010

See also:

In Part I we looked at the advantages of building a data warehouse independent of cubes/a BI system and in Part II we looked at how to architect a data warehouse’s table schema. Today we are going to look at where to put your data warehouse tables.

Let’s look at the location of your data warehouse. Usually as your system matures, it follows this pattern:

  • Segmenting your data warehouse tables into their own isolated schema inside of the OLTP database
  • Moving the data warehouse tables to their own physical database
  • Moving the data warehouse database to its own hardware

When you bring a new system online, or start a new BI effort, to keep things simple you can put your data warehouse tables inside of your OLTP database, just segregated from the other tables. You can do this a variety of ways, most easily is using a database schema (ie dbo), I usually use dwh as the schema. This way it is easy for your application to access these tables as well as fill them and keep them in sync. The advantage of this is that your data warehouse and OLTP system is self-contained and it is easy to keep the systems in sync.

As your data warehouse grows, you may want to isolate your data warehouse further and move it to its own database. This will add a small amount of complexity to the load and synchronization, however, moving the data warehouse tables to their own table brings some benefits that make the move worth it. The benefits include implementing a separate security scheme. This is also very helpful if your OLTP database scheme locks down all of the tables and will not allow SELECT access and you don’t want to create new users and roles just for the data warehouse. In addition, you can implement a separate backup and maintenance plan, not having your date warehouse tables, which tend to be larger, slow down your OLTP backup (and potential restore!). If you only load data at night, you can even make the data warehouse database read only. Lastly, while minor, you will have less table clutter, making it easier to work with.

Once your system grows even further, you can isolate the data warehouse onto its own hardware. The benefits of this are huge, you can have less I/O contention on the database server with the OLTP system. Depending on your network topology, you can reduce network traffic. You can also load up on more RAM and CPUs. In addition you can consider different RAID array techniques for the OLTP and data warehouse servers (OLTP would be better with RAID 5, data warehouse RAID 1.)

Once you move your data warehouse to its own database or its own database server, you can also start to replicate the data warehouse. For example, let’s say that you have an OLTP that works worldwide but you have management in offices in different parts of the world. You can reduce network traffic by having all reporting (and what else do managers do??) run on a local network against a local data warehouse. This only works if you don’t have to update the date warehouse more than a few times a day.

Where you put your data warehouse is important, I suggest that you start small and work your way up as the needs dictate.

posted on Wednesday, September 01, 2010 5:39:54 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Tuesday, August 31, 2010

See also:

In Part I we looked at when you should build your data warehouse and concluded that you should build it sooner rather than later to take advantage of reporting and view optimization. Today we will look at your options to build your data warehouse schema.

When architecting a data warehouse, you have two basic options: build a flat “reporting” table for each operation you are performing, or build with BI/cubes in mind and implement a “star” or “snowflake” schema. Let’s take a quick look at the first option and then we will take a look at the star and snowflake schemas.

Whenever the business requests a complex report, developers usually slow down the system with a complex SQL statement or operation. For example, pretend in our order entry system (OLTP) the business wants a report that says this: show me the top ten customers in each market including their overall rank. You would usually have to perform a query like this:

  1. Complex joins for unique customer
  2. Rollup the sales
  3. Ranking functions to determine overall rank
  4. Partition functions to segment the rank by country
  5. Standard aggregates to get the sales
  6. Dump all of this to a work table in order to pull out the top 10 (if you don’t do this, you will lose the overall rank)

A typical SQL statement to do steps 1-5 would look like this:

With CTETerritory
As
(
   Select cr.Name as CountryName, CustomerID, 
                Sum(TotalDue) As TotalAmt
   From Sales.SalesOrderHeader soh 
   inner join Sales.SalesTerritory ter
   on soh.TerritoryID=ter.TerritoryID
   inner join Person.CountryRegion cr 
   on cr.CountryRegionCode=ter.CountryRegionCode
   Group By cr.Name, CustomerID
)
Select *, Rank() Over (Order by TotalAmt DESC) as OverallRank,
Rank() Over
     (Partition By CountryName Order By TotalAmt DESC,
            CustomerID DESC) As NationalRank
From CTETerritory

Argh! No wonder developers hate SQL and want to use ORMs! (I challenge the best ORM to make this query!)

Instead you can create a table, lets call it SalesRankByRegion, with the fields: CountryName, CustomerID, TotalSales, OverallRank, and NationalRank, and use the above SQL as part of a synchronization/load script to fill your reporting table on a regular basis. Then your SQL statement for the above query looks like this:

SELECT * FROM SalesRankByRegion
WHERE CustomerNationalRank Between 1 and 10
ORDER BY CountryName, CustomerNationalRank

The results look like:

clip_image001

That is more like it! A simple select statement is easier for the developer to write, the ORM to map, and the system to execute.

The SalesRankByRegion table is a vast improvement over having to query all of the OLTP tables (by my count there are three tables plus the temp table). While this approach has its appeal, very quickly, your reporting tables will start to proliferate.

Your best option is to follow one of the two industry standards for data warehouse tables, a “star” or a “snowflake’ schema. Using a schema like this gives you a few advantages. They are more generic than the SalesRankByRegion, which was a table built for one query/report, giving you the ability to run many different reports off each table. Another advantage is that you will have the ability to build cubes very easily off of a star or snowflake schema as opposed to a bunch of SalesRankByRegion tables.

The design pattern for building true data warehouse tables are to build a “fact” table, or a table that contains detail level (or aggregated) “facts” about something in the real world, like an order or customer for example. Inside of the fact table you will also have “measures” or a numeric value that represents a “fact.” To support your fact table you will have “dimension” tables. Dimensions are a structure that will categorize your data, usually in the form of a hierarchy. A dimension table for example could be “time” with a hierarch of OrderYear, OrderQuarter, OrderMonth, OrderDate, OrderTime.

There are tons of tutorials on the internet that show you how to build a star or snowflake schema and the difference between them, so I will not repeat them here. (You may want to start here.) I’ll give you the high level on a simple star schema here.

Let’s say we have an order entry system, such as Northwind (in the Microsoft SQL Server sample database.) You can have a fact table that revolves around an order. You can then have three (or more) fact tables that focus on: time, product, and salesperson. The time dimension would roll-up the order date by year, quarter, month, and date. The product dimension would roll-up the product by the product and category. (In most systems you would have a much deeper hierarchy for products.) The salesperson dimension would be roll-up of the employee, the employee manager and the department they work in. The key in each of these tables would then be foreign keys in the fact table, along with the measure (or numerical data describing the fact.)

There is an example similar to this in Programming SQL Server 2008, a book where I am a co-author. Here is modified version of that demo:

Dimension tables:

CREATE TABLE [dwh].[DimTime] (
[TimeKey] [int] IDENTITY (1, 1) NOT NULL Primary Key,
[OrderDate] [datetime] NULL ,
[Year] [int] NULL ,
[Quarter] [int] NULL ,
[Month] [int] NULL 
) 

CREATE TABLE [dwh].[DimProduct] (
[ProductID] [int] not null Primary Key,
[ProductName] nvarchar(40) not null,
[UnitPrice] [money] not null,
[CategoryID] [int] not null,
[CategoryName] nvarchar(15) not null
) 

CREATE TABLE [dwh].[DimEmployee] (
EmployeeID int not null Primary Key,
EmployeeName nvarchar(30) not null,
EmployeeTitle nvarchar(30),
ManagerName nvarchar(30)
)

Fact table:
CREATE TABLE [dwh].FactOrder (
[PostalCode] [nvarchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ProductID] [int] NOT NULL ,
[EmployeeId] [int] NOT NULL ,
[ShipperId] [int] NOT NULL ,
[Total Sales] [money] NULL ,
[Discount] [float] NULL ,
[Unit Sales] [int] NULL ,
[TimeKey] [int] NOT NULL 
)

We have the basis of a star schema. Now we have to fill those tables and keep them up to date. That is a topic for Part III.

posted on Tuesday, August 31, 2010 7:30:42 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Monday, August 30, 2010

Most developers are scared of “Business Intelligence” or BI. Most think that BI consists of cubes, pivot/drill down apps, and analytical decision support systems. While those are very typical outcomes of a BI effort, many people forget about the first step, the data warehouse.

Typically this is what happens with a BI effort. A system is built, usually a system that deals with transactions. We call this an OLTP or on-line transaction processing system. Some time passes and reports are bolted on and some business analysts build some pivot tables from “raw dumps” of data. As the system grows, reports start to slow since the system is optimized to deal with one record at a time. Someone, usually a CTO type says: “we need a BI system.” A development effort is then spent to build a data warehouse and cubes, and some kind of analytical system on top of those cubes.

I make the argument that developers and project planners should embrace the data warehouse up front. When you design your OLTP system, also design the supporting data warehouse, even if you have no intention of building a full-fledged BI application with cubes and the like. This way you have two distinct advantages. First is that you have a separate system that is optimized for reporting. This system will allow the rapid creation of many new reports as well take the load off the OLTP system. Second, when you do decide to build a BI system based on cubes, you will already have the hard part done, building the data warehouse and supporting ETL.

Since a data warehouse uses more of a flatter data model (more on this in Part II), you can even design your application to use both the OLTP and data warehouse as data sources. For example, when you have highly normalized, 3rd normal form transactional tables to support transactions, it is never easy to use those tables for reporting and displaying of information. Those tables are optimized and indexed to support retrieving and editing (or adding/deleting) one record at a time. When you try to do things in aggregate, you start to stress your system, since it was designed to deal with one record at a time.

This design pattern is already in use today at many places. Consider your credit card company for example. I use American Express, and I never see my transactions show up for at least 24 hours. If go buy something and I phone American Express and say “what was my last transaction” they will tell you right away. If you look online, you will not see that transaction until the next business day. Why? When you call the customer service representative, they are looking at the OLTP system, pulling up one record at a time. When you are looking online, you are looking at the data warehouse, a system optimized for viewing lots of data in a reporting environment.

You can take this to an extreme, if you ran an e-commerce site, you can power your product catalog view portion of the site with the data warehouse and the purchase (inventory) system with the OLTP model. Optimize the site for browsing (database reads) and at the same time have super-fast e-commerce (database writes.) Of course you have to keep the purchasing/inventory (OLTP) and product display (data warehouse) databases in sync. I’ll talk about that in Part III. Next, I will take a look at how to build the data warehouse.

posted on Monday, August 30, 2010 7:33:02 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Wednesday, July 28, 2010

People usually know Telerik for our individual developer productivity tools. With the release of TeamPulse yesterday, Telerik is entering the Agile ALM space and delivers team productivity tools to the market.

The idea for TeamPulse was hatched a long time ago at Telerik. It started when we realized that we had a lot of agile teams that compete in a very dynamic marketplace. Our teams at Telerik are agile, high performing, and need to rapidly react to new conditions. (I remember when we were building our Silverlight controls, each CTP/beta of Silverlight v 2.0 broke our code so deeply that we had to start over at each beta!)

As we acquired companies and added more product lines and divisions, we needed a better way to manage the projects, requirements, teams, resources, and iterations. Simply put, with close to 200 developers and many products in several categories, we needed an agile application lifecycle management (ALM) solution. We decided to build some tools with our partner Imaginet for internal use. We liked them so much, we decided to release them to the world about a year ago as the Work Item Manager and Project DashBoard. That is when we decided to build and bring TeamPulse to the world.

We wanted to bring a unique product to the market, a product for teams that lived up to the Telerik values of productivity and simplicity. A product that made it easy for agile teams to manage themselves. At its core, TeamPulse is an agile project management tool that focuses on collaboration. The core features of TeamPulse v1.0 are:

As I have written on this blog before, a true high performing team has to be both “high bandwidth” and transparent. TeamPulse helps the teams get there with its stress on ease of use, collaboration, and tracking/analytics. In addition, TeamPulse will help you be “more agile” and give you advice with the unique to the industry Best Practice Analyzer (BPA). The BPA is an engine that will examine your project data and help your team conform to certain agile characteristics. The cool thing is that you can bypass all of the rules that we ship and write and enforce your own!

image

We are very excited to bring you TeamPulse. I hope you find it as useful as our development teams do.

PS. TeamPulse is written in Microsoft Silverlight 4.0, so you can run it in any environment and out of browser. All you need is a Microsoft backend to host the product, your clients can be Windows or a Mac.

posted on Wednesday, July 28, 2010 6:25:33 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Friday, July 16, 2010

Yesterday Telerik released the Q2 version of OpenAccess ORM as well as the rest of the product line. Yesterday (Part I) I showed you the menus, Data Service Wizard, and new XAML templates. Today I will show you round tripping. Next week I will talk about RIA Services and model first.

OpenAccess Q2’s new LINQ implementation and Visual Designer introduces database round tripping.  Now you can make changes in your model and persist them to your database table. (You always had the ability to make a database schema change and refresh your model.) Let’s see this feature in action. The Model Schema Explorer gives you a view of your mapped entities. If you right click on a table you can choose Edit Table from the context menu to begin editing your entity.

image

This brings up the Edit Table.. dialog where you can insert, edit, and delete columns and set metadata such as data types and nullable.

image

I’ll go ahead add a CurrentCustomer column as a bit to indicate if the customer is current or not. That is all there is to it, so I will right click on my model and select Update Database From Model as shown here.

image

This brings up the Schema Update Wizard. This wizard will allow you to execute the script right away or generate it and save it for later. It will also give you the choice between making an update (alter table) compared to a create (create table).  I’ll decide to make an update and execute it now and click next.

image

After I tell the wizard what table to update the database with (and make sure you have mapped your new column to the model and recompiled the project before running the wizard), you are presented with the script and given the ability to save the script, execute it, or copy it to the clipboard.

image

Being a database geek, I am only going to copy to the clipboard the part of the code that I need, the ALTER TABLE command with the ADD column and run that against my SQL Server. I could let OpenAccess run the code for me, but as I said, I am a database geek and like complete control. The tool gives you whatever level of control you desire. Once you run the TSQL either via the wizard or by hand, the process is complete.

Enjoy!

posted on Friday, July 16, 2010 4:00:15 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, July 15, 2010

Today Telerik released the Q2 version of OpenAccess ORM as well as the rest of the product line. I’ll take you on a short tour of some of the new ORM features. Today I will show you the menus, Data Service Wizard, and new XAML templates. Tomorrow (Part II) I will show you round tripping and model first.

The new LINQ Implementation and Visual Designer that we introduced in Q1 has taken over. The first thing that you will realize is that the new LINQ domain model is the default way to interact with OpenAccess as shown by the menu below. (Don’t worry if you still interact with the older OpenAccess classes you can get back to that menu via the Options menu.)

image

With this release the Data Service Wizard is now a part of the product, avoiding a separate download. We have enhanced the wizard to not only create a service for you, but to create a new Silverlight client to consume the service and its basic CRUD operations. The wizard will also provide automatic themeing: if you are using the Telerik Q2 Silverlight Controls you will get a whole bunch of themes installed and the wizard will create a Silverlight application along with the Telerik controls and a brand new XAML template. (This feature is only available if you have Telerik Silverlight controls installed.)

image 

The templates are way nicer than anything I can come up with on my own. ;)

image

image

Look for some new features in the Data Service Wizard in the next service pack to include support for VB and more visual representations of one to many relationships.

Enjoy!

posted on Thursday, July 15, 2010 6:29:16 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, July 01, 2010

With the Q1 release of Telerik OpenAccess ORM, Telerik released a brand new LINQ Implementation and supporting Visual Entity Designer. I have shown in this blog how to connect to SQL Server, MySQL, and how to use the new LINQ with RIA Services. Today I will show you how to connect to SQL Azrue.

To get started, we have to create a new Telerik Domain Model in the server (ASP.NET) project. We’ll create a new Domain Model by right clicking on the server project and selecting “Add” and choosing the Telerik Domain Model from the menu.

In the dialog presented by OpenAccess select the database you want to connect to, for this project choose Microsoft SQL Azure. You also have to manually put in the connection string to SQL Azure in the format of:

Server=tcp:yourSQLAzureDatabaseServer;Database=YourDatabaseName;USER=YourUserID, Password=YourPassword;

clip_image001

Next you have to map your tables to entities. The easiest thing to do is just map all of your tables by selecting the checkbox next to “Tables” in the Choose Database Items dialog and pressing the Finish button.

clip_image002

Visual Studio adds a new Telerik Domain Model to your project.

clip_image003

Now you are free to use the LINQ implementation to build your application. For simplicity, I will drag a gridView control onto the form and then use LINQ to bind all the customers in Germany. The code is here:

 

   1:  protected void Page_Load(object sender, EventArgs e)
   2:  {
   3:      if (IsPostBack==false)
   4:      {
   5:       //data context
   6:       NorthwindEntityDiagrams dat = new NorthwindEntityDiagrams();
   7:       //LINQ Statement
   8:       var result = from c in dat.Customers
   9:                           where c.Country == "Germany"
  10:                           orderby c.CustomerID
  11:                           select c;
  12:      //Databind to the ASP.NET GridView
  13:      GridView1.DataSource = result;
  14:      GridView1.DataBind();
  15:      }
  16:  }
  17:   

The results are show here.

clip_image005

Enjoy!

posted on Thursday, July 01, 2010 2:50:27 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, June 28, 2010

A few months ago I wrote to you about why teams succeed. I talked about the “high bandwidth” team that stressed communication and collaboration. While I believe that communication and collaboration are the keys to success of any team, I always felt that there was another important component to the equation.

I visited a large retail global customer here in Hong Kong today. They are working on a large application for their product development group using Silverlight 4.0 and have teams in the United States, India, and Hong Kong. We were talking first about their use of Telerik tools and then the conversation moved on to teams and process. They are having success and are using the agile methodology Kanban. When I left, they were proud to show me their Kanban board with all of their user stories, tasks, features, and burn down.

clip_image001

That is when it hit me; the other component of highly successful teams is transparency. I started looking back throughout my career and looked at the high performing teams that had successful projects and the very successful ones were the ones that had the magic combination of high bandwidth and transparency.

I remember ten years ago building the original Zagat.com at the height of the .COM boom. We held “open staff meetings” where our weekly staff meetings were attended by other managers from around the company. Our own version of a Kanban board was posted outside the door of our main room. We were still using Microsoft Project and Gantt charts, each chart for each project was hanging outside of the room as well and updated daily. That level of transparency built trust with the organization and enabled us to work with the business closer.

I use to get pushback from the team about our transparency; the team did not like transparency when they were behind schedule. My argument was that we had to show the good, the bad, and the ugly. Besides, it is a well-known fact that we are motivated to work hard not by money, but by our creativity and the chance to produce something truly awesome. I figured that if we make that process more public and transparent, the employees would be even more motivated. By making our product development cycle public, the team took more pride in what they did since everyone was watching.

In addition, this process solved minor disputes between team members. Once when the VP of Marketing was at our open staff meeting, two developers were arguing over something petty. They forgot that the VP of marketing was there and later told me that they “looked bad” in front of the marketing VP. The next time I made sure that the founder of the company was at our staff meeting. Everyone on the team got the message and the transparency worked.

I was also very transparent with the business information coming into IT. I use to disseminate our monthly sales numbers (which were a closely guarded secret) to the whole department. The CEO asked me to stop since IT were the only people in the company besides the senior management to know this information. I responded with even more transparency and shared with the team our profit and loss information as well. (The CEO was not happy, but to her credit, she did not stop me.)

The Agile movement really helped push the importance of transparency forward. The very intention of the Scrum or Kanban board is to be public; same with the daily scrum meeting. If the business is engaged and attending your meetings, there is going to be more productivity and much less friction. Luminary Kent Beck wrote a white paper on agile tooling and teams where he stressed transparency. Beck says:

“When I started programming the weekly status report was sufficient. Here’s what I did this week, here’s what I’m planning to do next week. Press fast forward twice, though, and the weekly status report becomes as quaint as a debate about the relative merits of assembly language and higher level languages. … transparency is a choice you make to offer trustworthiness to you teammates. A transparent team can more cheaply and effectively coordinate their efforts towards shared goals. Acting transparently sends a signal to others that they can trust you. Trust, when realized, reduces the friction of development as people focus more on what they are accomplishing together and less on avoiding blame.”

Ten years after my experiences at Zagat, it is even easier to be transparent. There are many tools that help with transparency. Kent Beck also states in the white paper:

“One way out of the Reporting Dilemma is to stop explicitly telling people what you are doing. Instead, rely on your tools to infer your intentions from your activities and report that for you.”

Agile teams usually publish burn down charts and team velocity charts to report progress between iterations. In an effort to be both more transparent and more automated, the industry has moved to Agile Dashboards, dashboards that read from your repository and automatically publish your burn down and velocity charts as well as other vital information related to the iteration and build process (including my personal favorite, who broke the build.)

Several vendors offer an agile dashboard, such as i.e. Rally’s Team Status Dashboard, VersionOne, and of course Telerik. Our Agile Dashboard, a free tool, posts all the important details of a project on a dashboard for the whole world to see. This tool is meant to be on a large TV, hanging over the receptionist’s desk when you walk into a company complete the status of the current iteration, burn down charts, and even a photo of who last broke the build.

clip_image002

This decade will be remembered as the era when technology teams fully embraced transparency. As teams start to automate their transparency and look for ways to be more open, the quality of the software they produce will only improve. I look forward to this brave new (open) world.

posted on Monday, June 28, 2010 1:44:44 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, June 24, 2010

Read the other posts in this series:

In the previous blog posts listed above, I showed how Telerik’s new LINQ implementation works with WCF RIA Services. I showed how to build your own Domain Service, build custom query methods, and make a metadata class. In this post I will show how to expose your Domain Service as an OData feed.

The Open Data Protocol (OData) is a Web protocol for querying and updating data in a RESTful fashion. You create OData feeds when you want to set up feeds for 3rd parties to consume, typically without your knowledge. For example Twitter has a RESTful feed of all its public tweets and many applications will consume that feed.

You may use WCF RIA Services to create your application, however, you may want to expose parts of your application as a feed for others to consume. This is real easy to do. Let’s see how.

I will continue using the same project from the first three parts of this blog series. In the server (ASP.net) project you have to do three things. First set a reference to System.ServiceModel.DomainServices.Hosting.OData.

Next we have to configure an OData endpoint. You do this by adding the following to your web.config under the system.serviceModel node:

<domainServices>
  <endpoints>
   <add 
name="OData" type="System.ServiceModel.DomainServices.Hosting.ODataEndpointFactory, 
System.ServiceModel.DomainServices.Hosting.OData, 
Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
  </endpoints>
</domainServices>

Lastly, you have to tell RIA Services what methods of your DomainService you want to expose. The methods you expose have to be an IQueryable and parameterless (which means the query methods in Part II are ineligible) and decorated with the IsDefult=true attribute. I will expose our GetCustomers() method from Part I as shown here by adding the attribute to the method:

   1:  //enable OData
   2:  [Query(IsDefault = true)]
   3:  public IQueryable<Customer> GetCustomers()
   4:  {
   5:      return this.DataContext.Customers
   6:          .Where(c => c.Country == "Germany")
   7:          .OrderBy(c => c.CustomerID);
   8:  }

Now you can run your project and view the OData feed from a browser. The format of the URL is the namespace+typename for the DomainService with dots replaced by hyphens followed by “.svc/odata/”. (Note, I have found that this is case sensitive and requires the terminating /.)

So for example, our Namespace is SilverlightApplication6.Web and our Domain Service is DomainService1, so our url would be http://servername/SilverlightApplication6-Web-DomainService1.svc/odata/

My URL is the following and the results are shown below:

http://localhost:1055/SilverlightApplication6-Web-DomainService1.svc/odata/

clip_image002

Now let’s explore the OData feed. Being a RESTful service you will access the feed and each resource via HTTP. The resource in this case will be the names of your Entities. What is great is that the OData feed respects the business rules of your RIA Service (since it is using the same DomainService), so you don’t have to worry about data leakage, nor duplicate any work replicating your business rules. Let’s drill down into the CustomerSet:

http://localhost:1055/SilverlightApplication6-Web-DomainService1.svc/odata/CustomerSet

clip_image004

That is it. You can then consume the feed from an iPhone app, .NET application, Excel PowerPivot, or any other application that supports HTTP and XML (which is pretty much anything.)

Enjoy!

posted on Thursday, June 24, 2010 4:00:03 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Monday, June 21, 2010

Read the other posts in this series:

In the previous blog posts listed above, I showed how Telerik’s new LINQ implementation works with WCF RIA Services. I showed how to build your own Domain Service as well as build custom query methods. In this post I will show how to build a metadata class. (Note: future versions of the OpenAccess LINQ Implementation will produce the metadata class for you automatically.)

The WCF RIA Services metadata class is a separate class from the DomainService that contains information about the entities. In this class you can write custom validation logic, set attributes of the properties of the entities or indicate whether the property is to be generated on the client or not.

To create this class, create a new class in Visual Studio and name it: YourDomainSeriveClassName.metadata.cs. For example, our DomainService is DomainService1, so the metadata class is: DomainService1.metadata.cs.

Erase everything in the class and then replace it with the following, using the proper namespace in your project:

 

   1:  namespace SilverlightApplication6.Web
   2:  {
   3:      using System.ComponentModel.DataAnnotations;
   4:   
   5:      // The MetadataTypeAttribute identifies CustomersMetadata as the class
   6:      // that carries additional metadata for the Customers class.
   7:      [MetadataTypeAttribute(typeof(Customers.CustomersMetadata))]
   8:      public partial class Customers
   9:      {
  10:          internal sealed class CustomersMetadata
  11:          {
  12:              // Metadata classes are not meant to be instantiated.
  13:              private CustomersMetadata()
  14:              {
  15:              }
  16:              public string Address { get; set; }
  17:              public string City { get; set; }
  18:              public string CompanyName { get; set; }
  19:              public string ContactName { get; set; }
  20:              public string ContactTitle { get; set; }
  21:              public string Country { get; set; }
  22:              public string CustomerID { get; set; }
  23:              public string Fax { get; set; }
  24:              public string Phone { get; set; }
  25:              public string PostalCode { get; set; }
  26:              public string Region { get; set; }
  27:          }
  28:      }
  29:  }

As you can see this class has each of the properties of your entity (lines 16-26), now you can set them as required, specify a length, or validate with a RegEx pattern. You can also specify that a property should not be sent down to the client. Of course you can specify much more sophisticated rules, you can even write your own methods.

Let’s do a quick example on the CompanyName property, we will set it to required, set an error message to be displayed if the field is not entered as well as set a length of 32. This is done with two attributes:

   1:  [Required(ErrorMessage = "CompanyName is Required!!")]
   2:  [StringLength(32)]
   3:  public string CompanyName { get; set; }

Now when you perform databinding, RIA Services will enforce these rules for you on the client. For example, if try to edit our data in the application built in Part II, RIA Services automatically adds validation for us and passes on the error message we specified in the attribute. (Note you have to add an UpdateCustomer method to your DomainService1 class to enable editing.)

clip_image002

Enjoy!

posted on Monday, June 21, 2010 6:55:05 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, June 18, 2010

In my last blog post, I showed how Telerik’s new LINQ implementation works with WCF RIA Services. In that post I built a Domain Model from the Northwind database as well as a RIA Services Domain Service. I then showed the drag and drop features of RIA Services and created a simple Silverlight application with no code. Today we are going to take that example one step further by creating some custom server side Query Methods.

A query method is just a facility to query a data source. In RIA Services, you define a query method explicitly so it can be used on the client. This is pretty straight forward with RIA Services. Let’s create a query method to query the Customer table by its primary key (CustomerID) in the database. To do this, open the project we used in the previous blog post and add this code to the DomainService class in the server project.

   1:      //This query method will return only 1 customer
   2:      [Query(IsComposable = false)]
   3:      public Customer GetCustomersByID(string customerID)
   4:      {
   5:          //must also include the Germany restriction
   6:          //to keep in sync with the GetCustomers business logic
   7:          return this.DataContext.Customers.SingleOrDefault
   8:              (c => c.CustomerID == customerID 
   9:                  && c.Country=="Germany");
  10:      }

 

This method will return one customer and you need to specify that by the attribute IsComposable=False (Line 2). Everything else is pretty basic, you have a method signature that accepts a parameter (Line 3) and a LINQ statement that filters the data by CustomerID as well as by country (lines 8-9). We are filtering by country as well because in our original business logic (in Part I) we had a GetCustomers() method that filtered all of the records by the country Germany. This new GetCustomersByID method knows nothing of the GetCustomers() method so we have to replicate that business logic here. (We have hard coded the value of Germany, in a production application, you would most likely obtain this value from a database or cookie after authentication.)

Let’s create a second query method, one that will filter the Customer data source by the ContactName field and return a collection, not a single item. We define an IQueryable collection of Customer as the return value in the method signature (Line 3) and accept a parameter. This parameter is used in our LINQ statement to filter the data source (Lines 9-10). In addition, just like the previous example, we must also filter by the country Germany; also replicate the OrderBy of our GetCustomers() method (Line 11).

   1:  //This query method will return a collection of customers
   2:  //filtered by the letters passed in on the contact name
   3:  public IQueryable<Customer> GetCustomersByLetter(string letter)
   4:  {
   5:      //must also include the Germany restriction
   6:      //to keep in sync with the GetCustomers business logic
   7:      //also since we are returning a collection, must
   8:      //respect the OrderBy as well from the business logic
   9:      return this.DataContext.Customers.Where
  10:          (c => c.ContactName.StartsWith(letter) == true
  11:              && c.Country == "Germany").OrderBy(c => c.CustomerID);
  12:  }

 

Now that we have defined two query methods, let’s wire them up to our XAML form in the Silverlight application.

In our Silverlight application, delete the grid that we had dragged onto the form in Part I. Replace it with two labels, two text boxes, two buttons and a grid (set the grid’s AutoGenerateColumns property to True.) Your XAML page should look something like this:

image

Now we have to write some code.

In the last blog post we were able to use the drag and drop features of RIA Services and not write any code. Today I will show you how to perform similar and more advanced functions with just a little bit of code. First we need two using statements in order to get working:

using SilverlightApplication6.Web;
using System.ServiceModel.DomainServices.Client;

Next we need to create a global variable for the RIA Services DomainService’s context.

   1:  //domain context for all RIA operations
   2:  private DomainService1 domainContext = new DomainService1();

 

Next we will load the grid with all of the data the first time the XAML form loads. We load the data by calling the GetCustomers() method we created in the previous blog post (we use the domainContext global variable in line 6.).

   1:  void MainPage_Loaded(object sender, RoutedEventArgs e)
   2:  {
   3:      //since we are going across the wire, must explicitly tell
   4:      //RIA Services that we are going to load data 
   5:      LoadOperation<Customer> loadOperation = 
   6:          domainContext.Load<Customer>(domainContext.GetCustomersQuery());
   7:      //the actual binding of the results, RIA takes care of the async
   8:      this.dataGrid1.ItemsSource = loadOperation.Entities;
   9:  }

 

This code does the same thing as the drag and drop did in the previous blog post, call GetCustomers() (Lines 5-6) and bind the results (line 8). Notice in the codegen on the client, RIA Services appends the word “Query” to all query methods.  In the previous blog post this was done automatically, but today we did it via code. If we run this it will give us the following view:

image

Now let’s wire up the buttons so we can perform the filters. First we will wire up the button that will search by CustomerID. That button click event will call the GetCustomerByID query method (lines 11-13) and bind the results (line 15.) We have to pass in the data the user entered in the text box, make sure in production to validate this data!

   1:  private void button1_Click(object sender, RoutedEventArgs e)
   2:  {
   3:      //disable the buttons during the async load
   4:      //to prevent the user from clicking twice while waiting
   5:      button1.IsEnabled = false;
   6:      button2.IsEnabled = false;
   7:   
   8:      //since we are going across the wire, must explicitly tell
   9:      //RIA Services that we are going to load data 
  10:      //Also here is where you pass the parameter in 
  11:      LoadOperation<Customer> loadOp = domainContext.Load
  12:          (domainContext.GetCustomersByIDQuery(textBox1.Text), 
  13:              CustomerLoadedCallback, null);
  14:      //the actual data binding, RIA takes care of the async
  15:      dataGrid1.ItemsSource = loadOp.Entities;
  16:  }

As part of the operation, RIA Services will handle the asynchronous processing for you. The problem is that users are not used to async operations, so they may try to click on the button more than once. We account for this by disabling the buttons (lines 5-6) until the operation is complete.  We have to catch the end of the async operation in a callback function and pass that in as a parameter to the operation (line 13). The callback function is here:

   1:  //callback function for when the load is complete
   2:  private void CustomerLoadedCallback(LoadOperation<Customer> loadOperation)
   3:  {
   4:      //re-enable our buttons
   5:      //if you want to display an "IsBusy" graphic
   6:      //this is where you would remove it
   7:      button1.IsEnabled = true;
   8:      button2.IsEnabled = true;
   9:  }

 

Let’s run this and test it out. If you filter by “ALFKI”, the results look like this:

image

Now let’s do the same for the the filter by ContactName. The code behind the button event is here:

   1:  private void button2_Click(object sender, RoutedEventArgs e)
   2:  {
   3:      //disable the buttons during the async load
   4:      //to prevent the user from clicking twice while waiting
   5:      button1.IsEnabled = false;
   6:      button2.IsEnabled = false;
   7:   
   8:      //since we are going across the wire, must explicitly tell
   9:      //RIA Services that we are going to load data 
  10:      //Also here is where you pass the parameter in 
  11:      LoadOperation<Customer> loadOp = domainContext.Load
  12:          (domainContext.GetCustomersByLetterQuery(textBox2.Text),
  13:              CustomerLoadedCallback, null);
  14:      //the actual data binding, RIA takes care of the async
  15:      dataGrid1.ItemsSource = loadOp.Entities;
  16:  }

Similar to the previous example, we are calling the query method, this time GetCustomersByLetter (lines 11-13) and passing in the value the user typed into the text box. When we run this and filter by all contacts that start with the letter H, it looks like this:

image

Hopefully with these two examples you can see the power of using Telerik’s new LINQ implementation and WCF RIA Services.

Enjoy!

posted on Friday, June 18, 2010 5:20:56 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, June 17, 2010

With the Q1 release of Telerik OpenAccess ORM, Telerik released a brand new LINQ Implementation and supporting Visual Entity Designer. With the upcoming Q2 release next month, we will introduce full WCF RIA Services support. If you want to get started now you can wire up the services yourself pretty easily. Let’s take a look at how to get your feet wet with RIA Services and Telerik’s LINQ implementation.

Before you get started, you will need a few things installed:

  • Visual Studio 2010
  • Silverlight 4
  • WCF RIA Services for Visual Studio 2010
  • Northwind sample database
  • Telerik OpenAccess ORM Q1 Service Pack 1 or higher

Getting Started: The Easy Stuff

Let’s create a new Silverlight application first. In the New Silverlight Application dialog, check the “Enable WCF RIA Services” checkbox. This will enable RIA Services.

image

The next step is to create a new Telerik Domain Model in the server (ASP.NET) project. I have a detailed walk through here on how to do that. We’ll create a new Domain Model by right clicking on the server project and selecting “Add” and choosing the Telerik Domain Model from the menu. Then we will map all of the tables from Northwind using the wizard. We’ll also keep the default model name of NorthwindEntityDiagrams.

image

We’re in good shape. So far if you have used the new LINQ Implementation nothing is new (or LINQ to SQL/EF for that matter.)  Now let’s add the RIA Services stuff.

Housekeeping-Adding References

Since our RIA Services support is still beta, you have to wire up a few things manually, including some references. You need to add:

  • Telerik.OpenAccess.Ria.Extensions.dll (found under “Browse: Program Files|Telerik|OpenAccess ORM|Bin)
  • System.ServiceModel.DomainServices.Server.dll
  • System.ServiceModel.DomainServices.Hosting.dll
  • System.ComponentModel.DataAnnotations.dll

image

Now we are ready to create the domain class.

Creating the Domain Class

Add a new Domain Service Class by right clicking and selecting Add|New Item and choose Domain Service Class.

image

Accept the defaults in the dialog and then we are ready to go. (Note at this time OpenAccess does not support creation of the class for metadata, but will soon, possibly even before Q2.)

image

Once you accept this dialog, a new empty class is generated.

   1:      [EnableClientAccess()]
   2:      public class DomainService1 : DomainService
   3:      {
   4:      }

 

We need to add a using statement so we can make sure our DomainService uses the OpenAccess model: using Telerik.OpenAccess;

Now change the inheritance of DomainService1 to this:

   1:  [EnableClientAccess()]
   2:  public class DomainService1 : OpenAccessDomainService<NorthwindEntityDiagrams>
   3:  {
   4:  }

Now we have one last step to create our DomainService, we have to add the CRUD methods. (In the future all of this will be done automatically for you!)

   1:  {
   2:      public IQueryable<Customer> GetCustomers() 
   3:      { 
   4:          return this.DataContext.Customers; 
   5:      }
   6:   
   7:      public void InsertCustomer(Customer c)
   8:      {
   9:          this.DataContext.Add(c);
  10:          this.DataContext.SaveChanges();
  11:      }
  12:      public void DeleteCustomer(Customer c)
  13:      {
  14:          this.DataContext.Delete(c);
  15:          this.DataContext.SaveChanges();
  16:      }

These are the methods of your DomainService. You can also add business logic here. Let’s do that with our GetCustomers() query.  I will write some business logic that filters all of the customers by the country of Germany. Of course you would have more complex business logic here, however, I just want to demonstrate the point. All clients that use this DomainService will inherit this business logic, even if you expose your service as an OData feed. Our implementation is here:

   1:  public IQueryable<Customer> GetCustomers() 
   2:  { 
   3:      return this.DataContext.Customers
   4:          .Where(c=> c.Country=="Germany")
   5:          .OrderBy(c=> c.CustomerID); 
   6:  }

 

Now you are done. Compile and let’s get cracking on a Silverlight client.

Creating the Silverlight Client

This is the easy part. We’ll use the RIA Services drag and drop features. Open MainPage.XAML in the Silverlight application and in the Data Sources window, drag and drop the Customer entity to the XAML form. (Tip: if the Data Sources window is blank or not showing up, you can manually force it to come up via the “Data” menu option on the main menu in Visual Studio.)

Once you drag and drop the entity to the form, a grid will automatically show up.

image

Now press F5 and see the application running.

image

That's it! We just created an OpenAccess based RIA Services application!

Of course there is a lot more to RIA Services than just binding a grid, however, this demonstration should show you that once you create your DomainService class, all of the RIA Services “stuff” just works for you. In future posts we will look at more RIA Services features as well as creating a query method.

Enjoy!

posted on Thursday, June 17, 2010 9:06:30 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [3] Trackback
# Thursday, June 10, 2010

Telerik won the “Best of TechEd” award in the “Best Components and Middleware” category last night at TechEd in New Orleans, LA. Our premium collection was judged as the most innovative and best value over all the other vendors.

All 200+ of the Telerik employees around the world feel honored and those of us here of course took time to celebrate on Bourbon street. Now we’re back to work and hope to live up to our customers high expectations. (If you are still at TechEd, swing by the booth and take a look at the award, we are here until 3pm today when the Expo closes.)

Thanks again to all of our customers, you make us better and we do it for you.

31691_1451994147381_1459091054_31166546_61564_n

Here are the Telerikers left standing late last night in the French Quarter in New Orleans.

posted on Thursday, June 10, 2010 12:34:20 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, June 03, 2010

Last week Telerik released a service pack for OpenAccess Q1. The service pack fixes a few issues with Telerik’s new LINQ implementation working under Visual Studio 2010. In addition, the service pack shipped the Data Services Wizard; the Data Service Wizard is no longer a separate install. You can use the Data Service Wizard with traditional OpenAccess classes or the new LINQ implementation. Today I will show show you a new feature of the wizard: automatically creating a styled Silverlight application from your domain model. Future blog posts will show how to use RIA Services as well as SQL Azure.

To get started open up Visual Studio 2010 and create a new ASP.net application. Create a new domain model by right clicking on the project and say Add|New Item and choose Telerik OpenAccess Domain Model from the dialog.

image

This will bring up the OpenAccess ORM Data Wizard to create your domain model by mapping tables to entities. Let’s use Northwind and map all tables and use the default model name: NorthwindEntityDiagrams. While there are other advanced features of the wizard, like T4 templates to override the default codegen, let’s just accept the defaults and finish.

image

Once you click Finish the wizard will add a new domain model to your project.

image

Now that we have our domain model, it is time to run the Data Services Wizard to automatically create the a RESTful service using WCF Data Services. (The data service wizard also gives us the ability to create a WCF endpoint as well.) This can be done from the Telerik|Data Services Wizard menu option from the Visual Studio main menu (or right clicking on the EntityDiagrams1.rlinq file.) The first page of the wizard asks you where the domain model lives and what project to place the new service in. We’ll do it all in the same project.

image

The next page of the wizard asks you what entities you want to expose in your service as well as if you want to generate a Silverlight Application. If you check this you are given the option to use the standard Microsoft Silverlight controls or the Telerik controls (if you have them installed.) If you choose the Telerik controls, you will also be able to choose a theme for your Silverlight application. The drop down will show you a list of all of the installed themes. I’ll go ahead and choose the Windows7 theme.

image

After you click through the finish page of the wizard, the next step is to hit F5 and run your application. A basic, but styled, Silverlight application is created for you, getting you started with all of the CRUD methods. The Telerik version has all of the features your would expect, built in sorting and filtering, grouping, etc. I know that you will want to change the baseline application, but this is a great start, eliminating all of the asynchronous CRUD code that you have to write. Not bad for about 30 seconds of work!

image

Enjoy!

posted on Thursday, June 03, 2010 3:41:03 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, May 31, 2010

Looking forward to heading to New Orleans this weekend and doing an all day Agile pre-con on Sunday with Joel Semeniuk. There is still space to sign up, here is the info to look for:

PRC07 | The Agile Methodology Demystified: Implementing Agile in Your Organization

Track: Development Practices

Wednesday afternoon I will also be presenting a breakout session on OData:. Below is the official write-up, however, I will be showing first how to build an OData service (first via Astoria or *.Data Services, and then with other methods such as SQL Azure, etc) and then how to consume the service via several different technologies including ASP.NET, Silverlight, PowerPivot, and more. I’ll show some non-Microsoft technology along the way. I’m thinking no slides, just code for this talk.

DEV303 | Building RESTful Applications with the Open Data Protocol

Track: Developer Tools, Languages & Frameworks

Level: 300 - Advanced

Applications today are expected to expose their data and consume data-centric services via REST. In this session we discuss what REST is and have an overview of Windows Communication Foundation (WCF) Data Services and see how we can REST enable your data using the Open Data Protocol (OData). Then we cover how to leverage existing skills related to Microsoft Visual Studio, LINQ and data access to customize the behavior, control-flow, security model and experience of your data service. We then see how to enable data-binding to traditional ASP.NET controls as well as Microsoft Silverlight and Microsoft PowerPivot for Microsoft Excel 2010. We then turn to consuming SharePoint and other OData-based applications in Microsoft .NET as well as from a non-Microsoft client. This is a very demo intensive session.

 

I have some other MVP booth duties and some ask the experts hours, but when I am free, I will be at the Telerik booth. We’ll have a large staff at TechEd this year!

 

See you there.

posted on Monday, May 31, 2010 4:04:24 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Friday, May 28, 2010

Telerik has released Service Pack 1 of OpenAccess ORM, available now for download. There are a lot of new features (and of course bug fixes) but the three most important are:

  • The new LINQ implementation works fully with Visual Studio 2010
  • The Data Services Wizard is now fully integrated with the product, no separate install
  • A beta of RIA Services support

I will be doing a blog post on each of these in the coming weeks (expect some delays with TechEd US in the way.) One more thing to mention is that the Data Services Wizard now generates a Silverlight client and will give you the ability to automatically style the application, a feature I previewed last week at the Sydney User Group.

Enjoy!

posted on Friday, May 28, 2010 3:02:32 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, May 17, 2010

I had a nice chat with Abhishek Baxi and Manan on Microsoft Talk about: TechEd 2010 India, the Visual Studio 2010 Launch, Telerik, the MVP program, and Karaoke. I also spoke about my love for the IPL, Indian food, Punjabi music, rides in a tuk-tuk, hailstorms, and Bangalore traffic as well.

Listen here.

IMG_1629

posted on Monday, May 17, 2010 10:29:34 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Sunday, May 16, 2010

I’m about to leave for a 12 day road trip that will take me to six different countries on three continents.

My first stop, arranged by Adam Cogan and Telerik, is an Agile Seminar in Sydney, Australia. Should be fun, at least they already know what Rugby is and will get my sports references.  I will also be speaking on Silverlight at the Sydney .NET User Group. I’ll be doing my WCF walk through and then a RIA Services demo, about 2 hours, no slides, only Visual Studio. In addition to my presentation, I will also be demoing the new Telerik Data Services Wizard at the user group and show how to build a data driven Silverlight application in 30 seconds. I will also unveil to the world a brand new feature of Telerik OpenAccess/Data Services Wizard at the user group.

I’ll come back to Hong Kong for a day or so and then for the three day weekend (Buddha’s birthday!) will head up to Shanghai for the World Expo.  I’ll but a Telerik sticker on the door of the Bulgarian pavilion. Just hope that act of guerilla marketing doesn’t lead me to a communist Chinese prison…

The week after, I will head to Sofia and visit the Telerik mother ship for a few days. Then off to Romania to speak at a PMI conference, on yes, Scrum. A quick one day layover in Istanbul to visit the infamous anti-suckieness club President and Vice-President: Malek and Goksin. Not sure if they, now both being Microsoft employees, will make me go see customers or not.

Should be fun, I hope to see you at some of the events!

posted on Sunday, May 16, 2010 4:45:01 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Wednesday, May 05, 2010

I’ll be doing my (in)famous Scrum seminar in Bucharest, Romania on May 26th at Project Management Day, hosted by PMI and Microsoft. My talk is titled “To Scrum or not to Scrum.”

Agile project management and development methods are being adopted at many development shops.  After an introduction to the basics of  Agile and Scrum like: project planning and estimation, the Scrum Master, team, product owner and burn down, and of course the daily Scrum, Stephen, a certified scrum master, will show many real world applications of the methodology drawn from his own experience. Negotiating with the business, estimation and team dynamics are all discussed as well as how to use Scrum in small organizations, large enterprise environments and consulting environments. Stephen uses a very interactive style so participation is encouraged and there will be plenty of time for Q&A. This seminar is a jump start for preparing for a scrum master certification.

See you there.

posted on Wednesday, May 05, 2010 3:40:26 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Tuesday, May 04, 2010

About a month or so ago I showed on this blog how to connect to MySQL using Telerik's new LINQ implementation.  Today I will show you how to take it one step further and build an OData service automatically using the Telerik Data Services Wizard. Just for fun, we will also automatically add a full CRUD Silverlight application that consumes the OData service. We’ll do this all in 30 seconds!

To get started, you have to download MySQL 5.x and the MySQL Workbench and also, as my colleague Alexander Filipov at Telerik reminded me, make sure you install the MySQL .NET Connector, which is available here.  I like to use Northwind, ok it gives me the warm and fuzzies, so I ran a script to produce Northwind on my MySQL server. There are many ways you can get Northwind on your MySQL database, here is a helpful blog to get your started.

Let’s get started! First we will just build our model with Telerik’s new LINQ implementation. I will repeat the steps I showed off in this blog post. Start up the Domain Model wizard by right clicking on the project in Visual Studio (I have a Web project) and select Add|New Item and choose “Telerik OpenAccess Domain Model” from the new item list.

image

When the wizard comes up, choose MySQL as your back end and enter in the name of your saved MySQL connection.

image

If you don’t have a saved MySQL connection set up in Visual Studio, click on “New Connection” and enter in the proper connection information. *Note, this is where you need to have the MySQL .NET connector installed.

image

After you set your connection to the MySQL database server, you have to choose which tables to include in your model. Just for fun, I will choose all of them.

image

Give your model a name, like “NorthwindEntities” and click finish. Now you have a new Telerik Domain Model named NorthwindModel.rlinq.

image

Now we are going to use the Telerik Data Services Wizard to build our OData service endpoint via WCF Data Services (Astoria) and also automatically build a Silverlight client that will consume this service. The service has full CRUD capability and the Silverlight application is pretty basic, but wires up the application to the service and gives you the hooks to extend on.

We are going to use the “express” version of the Data Service Wizard and build the service and Silverlight client in less than 30 seconds! (Note: I showed how to do this using SQL Server here.) To do this, right click on the NorthwindModel.RLINQ file in the solution explorer and choose from the context menu: Data Services Wizard|Data Services for .NET 3.51 Sp1 Version 2 (Astoria)|Add to Project with new SL Client|WebApplication13.

(Note depending on which version of Visual Studio and what versions of WCF Data Services you have installed on your machine, the choices may vary.)

image

You will have to click OK to the standard “Add Silverlight Project” screen that Visual Studio gives you, but the wizard does all the work for you. When you run the application, the results are an OData service and a simple Silverlight CRUD application:

image

Enjoy!

posted on Tuesday, May 04, 2010 10:14:37 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, April 26, 2010

Last week I spoke at the Great Indian Developer Summit in Bangalore, India. This was my second year speaking at GIDS, so it was great to be back. Before the event Telerik’s Team Fantastic Four set up the booth and then hit McDonalds for a Maharaja Mac. Remember India does not eat beef, so we HAD to go to McDonalds and check it out! Imagine a McDonalds without a hamburger. Totally awesome. (Though we all preferred the McAloo, a potato patty sandwich.)

image

The event is really 4 conferences in 4 days. One day each on: .NET, Web, Java, and Seminars.

On the Day 1 (.NET) I spoke on:

  • Building Data Warehouses
  • Building Applications with Silverlight and .NET (and sharing the business logic)
  • What's new in SQL Server 2008 R2

No computer malfunctions like last year, my sessions went smooth. This is rapid fire presenting: only 50 minute sessions! With so little time, I had almost no slides and went straight to demo. It is hard to show data warehousing in only 50 minutes, but I focused on star schemas and ETL and I think it went well. Other than no AC in the Silverlight talk, the rest of the day went great.

Telerik had a booth at GIDS and we gave away tons of tee shirts and did hundreds of demos.

2010-04-20 11.45.55

Day 2 was “Web” day with mostly designers and Flash people. I was able to sneak a .NET RIA Services talk in there. I just started to code, no slides at all. In 50 minutes I was able to cover items 1-4 and 8 in Brad’s blog. (I also wanted to cover 5-6, and 9-10, however, 50 minutes was all that I had!) We had a lot of people come by the Telerik booth as well. Coming home from the National Science Center where the Summit is being held, we got stuck in a massive hailstorm. To be honest this video does not do it any justice, the balls were the size of marbles.

Day 3 was Java day, so we rested and hit the Bangalore Palace to see some sights. I particularly liked the room that had lots of paintings of nudes. :) It is good to be King (or Maharaja.) I also watched a lot of Indian Premier League cricket.

2010-04-19 15.31.01

Day 4 was the seminar day and I did my “Agile Tools and Teams” session that I have done before in Pune (see the link for the downloads). I was in rare form, of course decked out in my Rugby Jersey. There was no AC hitting the stage, so I went in and stole a fan from the conference center and put it on the stage. I challenged the audience to a trivia game and asked them where “Scrum” came from. Most guessed Ken Schwaber and I said that Scrum comes from Hirotaka Takeuchi and Ikujiro Nonaka, “The New Product Development Game”, Harvard Business Review, January 1986. Just for fun I quizzed the audience on the Rugby World Cup and the Hong Kong Rugby 7s. We had a great seminar, actually it was a fire hazard since people were sitting on all the available stairs and floor.

scrum

After the event, Team Telerik went out for some pizza and headed to the airport to go home. Two weeks in India just flew by. See you next year!

posted on Monday, April 26, 2010 6:36:51 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, April 22, 2010

Last week I spoke at TechEd India and the Visual Studio 2010 launch. It was a great event with over 3,000 attendees, far more than attended the Visual Studio launch in Las Vegas! Senior vice president of the Developer Division at Microsoft, S. Somasegar, did an awesome keynote. I did three sessions:

  • Building applications with OData
  • Building Line of Business Applications with WCF and Silverlight 4.0
  • Building Silverlight Business Applications with RIA Services

Something happened to me that never happened before in my 13+ years of being a professional international speaker: I lost my voice! I was in Indonesia the week before and picked up a small bug and had no voice. This was a new challenge for me, and Microsoft offered to cancel my sessions, but I figured why would I let no voice stop me from delivering my sessions!! So I decided to throw away the slides and just code. I had no voice anyway, so I spoke the universal geek language of code.

I think that the sessions went very well, however, since the code was written on the fly, I don’t have full demos available to download. For the RIA services talk, I ripped off Brad Abrams blog here and basically showed items 1-5, and 8-9. For the WCF/Silverlight session, I ripped off myself, you can see a walk through here on my blog (substitute the music data in my blog with IPL cricket teams since that is what I did in India). For the OData session, I have written a ton on data services here on my blog, and check back after TechEd USA and I will post a full demo with Silverlight 4.0 and the new OData client (which shipped yesterday.)

At TechEd, Telerik also had a booth and I tried to help out the best I could with no voice. We were bum-rushed for the free tee-shirts and we gave away about 300 tee shirts in about 1 minute.

2010-04-13 16.38.42

Telerik also had a party with the Indian MVPs at the Opus Lounge in Bangalore and we had some tee shirts for the MVPs. We made them put them on right there. :)

2010-04-14 20.12.25

We had some epic karaoke and I continued my tradition of singing with an MVP Lead female songs as Abhishek Kant and I sang “Like a Virgin” to bring down the house. What little I had of my voice was now completely gone!

2010-04-14 21.43.23

See you next year TechEd India!

posted on Thursday, April 22, 2010 4:33:08 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, April 19, 2010

This week I will be speaking at the Great Indian Developer Summit in Bangalore, India for the second year in a row. My sessions are:

GIDS.Net (Tuesday)

  • Data Warehousing Made Easy
  • What's New in SQL Server 2008 R2 (PowerPivot is shown here as well!)
  • Sharing Business Logic between Silverlight and .NET

GIDS.Web (Wednesday)

  • Building Line of Business Applications with Silverlight 4.0 (RIA Services)

GIDS.Seminar (Friday)

  • Agile Tools and Teams

In addition to my talks, Telerik will also staff a booth and have demos of all of our products and some tee shirts to give away. I will also be at the booth all day to answer your questions on my talks.

See you at GIDS!

posted on Monday, April 19, 2010 9:16:40 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Monday, April 12, 2010

I’ll be speaking at TechEd India and the Visual Studio 2010 Launch in Bangalore, India this week. I’ll be doing three sessions:

In addition, Team Telerik will be staffing a booth with Tee-shirts (hopefully if they get out of customs on time!) and live demos of our products and our brand new product to be announced today! See you at my sessions or at the booth!

Technorati Tags: ,

Bookmark and Share
posted on Monday, April 12, 2010 6:13:22 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [2] Trackback
# Sunday, April 11, 2010

Last month Telerik released its new LINQ implementation and last week we released the new Data Services Wizard for Telerik OpenAccess, which supports both traditional OpenAccess entities and the new LINQ implementation. I will a walk you through the process where you can connect to a database, add a new domain model, wrap it in a new WCF Data Services (Astoria) service, and add a CRUD enabled Silverlight application. All in 30 seconds!

Step 1: Build your Domain Model (20 seconds)

Open Visual Studio 2010 RTM (or 2008) and add a new ASP.NET project. Right click on the project and select Add|New Item and choose Telerk OpenAccess Domain Model from the item template list.

image

The Visual Entity Designer wizard comes up. Select the database server you are using in the first screen (SQL Server, Oracle, SQL Azure, MySQL, etc) and then also build your database connection string.

image

Next select the tables, views, and stored procedures you want to map and click finish.

image

Step 2: Using the Telerik Data Service Wizard to create the service and Silverlight client with CRUD operations (10 Seconds)

Now the easy part. Find the model in your project, it will be by default EntityDiagrams1.rlinq, and right click it to bring up the context menu.

image

Then select Data Services Wizard|Data Services for .NET 3.5 SP1 Version 2 (Astoria)|Add to Project with new SL Client|Your Project Name. This is the “express” version of the Data Services Wizard. From there it is almost on auto-pilot, you just have to confirm adding the Silverlight Application via the standard Silverlight dialog. All you have to do it hit F5 and run the application!

image

The wizard will create the new WCF Data Service (Astoria), add a new Silverlight application, add the service references, and build your standard CRUD forms in Silverlight, one for each entity you expose. While I suspect that you will want to skin the application and add some validation, the wizard is great for doing the plumbing work for all of the CRUD operations-leaving you to worry about the design and the business logic. We are going to add more to this wizard in the future, things like more control over the layout and validation, play around with it and let us know what is important to add!


Bookmark and Share
posted on Sunday, April 11, 2010 10:09:18 PM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, April 08, 2010

After a great beta cycle, Telerik is proud to announce today the commercial availability of the OpenAccess Data Service Wizard. You can download it and install it with Telerik OpenAccess Q1 2010 for both Visual Studio 2008 and 2010 RTM. If you are new to the Data Service Wizard, it is a great tool that will allow you to point a wizard at your OpenAccess generated data access classes and automatically build an WCF, Astoria (WCF Data Services), REST or ATOMPub collection endpoint, complete with the CRUD methods if applicable.

4-1-2010 1-39-01 PM

If you are familiar with the Data Service Wizard already, there will be two new surprises in the release version.

If you generated a domain model with the new OpenAccess Visual Entity Designer, you have only one file added to your project, mydomainmodel.rlinq for example. The first surprise of the new Data Service Wizard is that if you right click on the domain model in Visual Studio, you can use an “express” version of the Data Service Wizard and generate your service with just one click! This is pretty awesome, you can create your domain model from a database and create a service in well under 60 seconds.

4-1-2010 1-30-24 PM

Surprise number two is that if you are using the new Visual Entity Designer, we now give you the option, in both the full wizard and the right-click “express” version to create a new Silverlight application as a consumer of your new service. The Wizard will generate a Silverlight application with the full CRUD methods for you. You can go from File|New Project in Visual Studio to a full domain model generated from the database, a full WCF or Astoria service, and a fully functional CRUD Silverlight client in under 60 seconds!

4-1-2010 1-47-12 PM

The Silverlight application generation feature is a very “1.0” feature and we have big plans for it moving forward. We will look forward to your feedback as what to add to this application generation feature next. While I expect you to put your own skin on it and write some validation code, the application we build for you is a great starter and will save you from having to write all of the asynchronous CRUD code in your client. Visit our forums and let us know what you think.

Lastly, when OpenAccess releases its Q1 Service Pack later this month, the Data Service Wizard will be part of the main product install, so there is no need for a separate install moving forward. Our release cycle will now be in sync with OpenAccess and we have a lot planned for Q2, I will post an updated roadmap here soon.

Technorati Tags: ,
Bookmark and Share
posted on Thursday, April 08, 2010 9:58:27 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [0] Trackback
# Thursday, March 25, 2010

Last week Telerik released a new LINQ implementation that is simple to use and produces domain models very fast. Built on top of the enterprise grade OpenAccess ORM, you can connect to any database that OpenAccess can connect to such as: SQL Server, MySQL, Oracle, SQL Azure, VistaDB, etc. Today I will show you how to build a domain model using MySQL as your back end.

To get started, you have to download MySQL 5.x and the MySQL Workbench and also, as my colleague Alexander Filipov at Telerik reminded me, make sure you install the MySQL .NET Connector, which is available here.  I like to use Northwind, ok it gives me the warm and fuzzies, so I ran a script to produce Northwind on my MySQL server. There are many ways you can get Northwind on your MySQL database, here is a helpful blog to get your started. I also manipulated the first record to indicate that I am in MySQL and gave a look via the MySQL Workbench.

image

Ok, time to build our model! Start up the Domain Model wizard by right clicking on the project in Visual Studio (I have a Web project) and select Add|New Item and choose “Telerik OpenAccess Domain Model” from the new item list.

image

When the wizard comes up, choose MySQL as your back end and enter in the name of your saved MySQL connection.

image

If you don’t have a saved MySQL connection set up in Visual Studio, click on “New Connection” and enter in the proper connection information. *Note, this is where you need to have the MySQL .NET connector installed.

image

After you set your connection to the MySQL database server, you have to choose which tables to include in your model. Just for fun, I will choose all of them.

image

Give your model a name, like “NorthwindEntities” and click finish. That is it.

Now let’s consume the model with ASP .net. I created a simple page that also has a GridView on it. On my page load I wrote this code, by now it should look very familiar, a simple LINQ query filtering customers by country (Germany) and binding the results to the grid. 

   1:  protected void Page_Load(object sender, EventArgs e)
   2:  {
   3:      if (!IsPostBack)
   4:      {
   5:          //a reference to the data context
   6:          NorthwindEntities dat = new NorthwindEntities();
   7:          //LINQ Statement
   8:          var result = from c in dat.Customers
   9:                       where c.Country == "Germany"
  10:                       select c;
  11:          //Databinding to the Gridview
  12:          GridView1.DataSource = result;
  13:          GridView1.DataBind();
  14:      }
  15:  }

F5 produces the following.

image

Tomorrow I’ll show how to take the same model and create an Astoria/OData data feed.

Technorati Tags:

Bookmark and Share
posted on Thursday, March 25, 2010 2:37:56 AM (Eastern Daylight Time, UTC-04:00)  #    Comments [1] Trackback
# Saturday, March 13, 2010

This week Telerik released a new LINQ implementation that is simple to use and produces domain models very fast. Built on top of the enterprise grade OpenAccess ORM, you can connect to any database that OpenAccess can connect to such as: SQL Server, MySQL, Oracle, SQL Azure, VistaDB, etc. While this is a separate LINQ implementation from traditional OpenAccess Entites, you can use the visual designer without ever interacting with OpenAccess, however, you can always hook into the advanced ORM features like caching, fetch plan optimization, etc, if needed.

Just to show off how easy our LINQ implementation is to use, I will walk you through building an OData feed using “Data Services Update for .NET Framework 3.5 SP1”. (Memo to Microsoft: P-L-E-A-S-E hire someone from Apple to name your products.) How easy is it? If you have a fast machine, are skilled with the mouse, and type fast, you can do this in about 60 seconds via three easy steps. (I promise in about 2-3 weeks that you can do this in less then 30 seconds. Stay tuned for that.)

 Step 1 (15-20 seconds): Building your Domain Model

In your web project in Visual Studio, right click on the project and select Add|New Item and select “Telerik OpenAccess Domain Model” as your item template. Give the file a meaningful name as well.

image

Select your database type (SQL Server, SQL Azure, Oracle, MySQL, VistaDB, etc) and build the connection string. If you already have a Visual Studio connection string already saved, this step is trivial.  Then select your tables, enter a name for your model and click Finish. In this case I connected to Northwind and selected only Customers, Orders, and Order Details.  I named my model NorthwindEntities and will use that in my DataService.

image

Step 2 (20-25 seconds): Adding and Configuring your Data Service

In your web project in Visual Studio, right click on the project and select Add|New Item and select “ADO .NET Data Service” as your item template and name your service.

image

In the code behind for your Data Service you have to make three small changes. Add the name of your Telerik Domain Model (entered in Step 1) as the DataService name (shown on line 6 below as NorthwindEntities) and uncomment line 11 and add a “*” to show all entities. Optionally if you want to take advantage of the DataService 3.5 updates, add line 13 (and change IDataServiceConfiguration to DataServiceConfiguration in line 9.)

   1:  using System.Data.Services;
   2:  using System.Data.Services.Common;
   3:   
   4:  namespace Telerik.RLINQ.Astoria.Web
   5:  {
   6:      public class NorthwindService : DataService<NorthwindEntities>
   7:      {
   8:          //change the IDataServiceConfiguration to DataServiceConfiguration
   9:          public static void InitializeService(DataServiceConfiguration config)
  10:          {
  11:              config.SetEntitySetAccessRule("*", EntitySetRights.All);
  12:              //take advantage of the "Astoria 3.5 Update" features
  13:              config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
  14:          }
  15:      }
  16:  }

 

Step 3 (~30 seconds): Adding the DataServiceKeys

You now have to tell your data service what are the primary keys of each entity. To do this you have to create a new code file and create a few partial classes. If you type fast, use copy and paste from your first entity,  and use a refactoring productivity tool, you can add these 6-8 lines of code or so in about 30 seconds. This is the most tedious step, but don’t worry, I’ve bribed some of the developers and our next update will eliminate this step completely.

Just create a partial class for each entity you have mapped and add the attribute [DataServiceKey] on top of it along with the key’s field name. If you have any complex properties, you will need to make them a primitive type, as I do in line 15. Create this as a separate file, don’t manipulate the generated data access classes in case you want to regenerate them again later (even thought that would be much faster.)

   1:  using System.Data.Services.Common;
   2:   
   3:  namespace Telerik.RLINQ.Astoria.Web
   4:  {
   5:      [DataServiceKey("CustomerID")]
   6:      public partial class Customer
   7:      {
   8:      }
   9:   
  10:      [DataServiceKey("OrderID")]
  11:      public partial class Order
  12:      {
  13:      }
  14:   
  15:      [DataServiceKey(new string[] { "OrderID", "ProductID" })]
  16:      public partial class OrderDetail
  17:      {
  18:      }
  19:   
  20:  }

 

Done! Time to run the service.

Now, let’s run the service! Select the svc file and right click and say “View in Browser.” You will see your OData service and can interact with it in the browser.

image

Now that you have an OData service set up, you can consume it in one of the many ways that OData is consumed: using LINQ, the Silverlight OData client, Excel PowerPivot, or PhP, etc.

Happy Data Servicing!

Technorati Tags: ,,

Bookmark and Share
posted on Saturday, March 13, 2010 4:29:07 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, March 11, 2010

Love LINQ to SQL but are concerned that it is a second class citizen? Need to connect to more databases other than SQL Server? Think that the Entity Framework is too complex? Want a domain model designer for data access that is easy, yet powerful? Then the Telerik Visual Entity Designer is for you.

Built on top of Telerik OpenAccess ORM, a very mature and robust product, Telerik’s Visual Entity Designer is a new way to build your domain model that is very powerful and also real easy to use. How easy? I’ll show you here.

First Look: Using the Telerik Visual Entity Designer

To get started, you need to install the Telerik OpenAccess ORM Q1 release for Visual Studio 2008 or 2010. You don’t need to use any of the Telerik OpenAccess wizards, designers, or using statements. Just right click on your project and select Add|New Item from the context menu. Choose “Telerik OpenAccess Domain Model” from the Visual Studio project templates.

image

(Note to existing OpenAccess users, don’t run the “Enable ORM” wizard or any other OpenAccess menu unless you are building OpenAccess Entities.)

You will then have to specify the database backend (SQL Server, SQL Azure, Oracle, MySQL, etc) and connection.

image

After you establish your connection, select the database objects you want to add to your domain model. You can also name your model, by default it will be NameofyourdatabaseEntityDiagrams.

image

You can click finish here if you are comfortable, or tweak some advanced settings. Many users of domain models like to add prefixes and suffixes to classes, fields, and properties as well as handle pluralization. I personally accept the defaults, however, I hate how DBAs force underscores on me, so I click on the option to remove them.

image

You can also tweak your namespace, mapping options, and define your own code generation template to gain further control over the outputted code. This is a very powerful feature, but for now, I will just accept the defaults.

 image

When we click finish, you can see your domain model as a file with the .rlinq extension in the Solution Explorer.

image

You can also bring up the visual designer to view or further tweak your model by double clicking on the model in the Solution Explorer. 

image

Time to use the model!

Writing a LINQ Query

Programming against the domain model is very simple using LINQ. Just set a reference to the model (line 12 of the code below) and write a standard LINQ statement (lines 14-16).  (OpenAccess users: notice the you don’t need any using statements for OpenAccess or an IObjectScope, just raw LINQ against your model.)

   1:  using System;
   2:  using System.Linq;
   3:  //no need for an OpenAccess using statement
   4:   
   5:  namespace ConsoleApplication3
   6:  {
   7:      class Program
   8:      {
   9:          static void Main(string[] args)
  10:          {
  11:              //a reference to the data context
  12:              NorthwindEntityDiagrams dat = new NorthwindEntityDiagrams();
  13:              //LINQ Statement
  14:              var result = from c in dat.Customers
  15:                           where c.Country == "Germany"
  16:                           select c;
  17:   
  18:              //Print out the company name
  19:              foreach (var cust in result)
  20:              {
  21:                  Console.WriteLine("Company Name: " + cust.CompanyName);
  22:              }
  23:              //keep the console window open
  24:              Console.Read();
  25:          }
  26:      }
  27:  }

Lines 19-24 loop through the result of our LINQ query and displays the results.

image

That’s it! All of the super powerful features of OpenAccess are available to you to further enhance your experience, however, in most cases this is all you need.

In future posts I will show how to use the Visual Designer with some other scenarios. Stay tuned.

Enjoy!

Technorati Tags: ,,

Bookmark and Share
posted on Thursday, March 11, 2010 9:26:16 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, March 03, 2010

In an op-ed piece in this month’s SD Times, I make the argument that software development productivity tools have evolved over the years to become more mainstream. I make the case that while some developers shun tools, in reality they take for granted the tools they are using today that were not available 10 years or so ago, or were not that mature. For example today we use some tools without even thinking such as: SCM, build management, standards enforcement, ORM and UI components. Tools today save a team a tremendous amount of time and are the missing link in the software development process.

You can get the March issue of SD Times on the newsstands today or read my article online here.

Technorati Tags:

Bookmark and Share
posted on Wednesday, March 03, 2010 3:09:36 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, February 26, 2010

We had a great Agile seminar yesterday in Pune, India. You can download the seminar slides here.

A special thanks to Telerik, the Mahratta Chamber of Commerce, Industries and Agriculture and the team from e-Zest for planning such a successful event. Usually as the speaker I get all the glory, so here is the photo of me with the folks who made it happen, they deserve the glory:

image

Technorati Tags: ,

Bookmark and Share
posted on Friday, February 26, 2010 3:37:27 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Monday, February 22, 2010

Telerik has released the latest beta of the OpenAccess Data Service Wizard. We now support Visual Studio 2010 RC! You can also choose to use WCF 4.0 as one of the services you can build. Based on your feedback we also added a new feature: the ability to automatically generate dependent entities.

Download it today and give us your feedback. Next stop is the full release as part of our 2010 Q1 release of OpenAccess. See the OpenAccess roadmap here.

 image

Technorati Tags:

Bookmark and Share
posted on Monday, February 22, 2010 10:13:20 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Monday, February 15, 2010

The story of human achievement is almost always one of teamwork. While we celebrate individual accomplishments, like Neil Armstrong stepping foot on the moon, it is always the team that makes or breaks the effort. I have always been interested in why teams succeed; it is easy to figure out why teams fail. A lot of time we think that we need a team of “Ninjas” in order to succeed, or a superstar team leader. In reality we need neither the Ninja team nor rock star team leader. For better or worse, I have been leading teams for a long time and I maybe a decent team leader now, but I was not early in my career-I have made every mistake in the book! Upon reflection of my past successes and failures I recently turned my attention to the question of why do teams succeed?

The problem with answering that question is that each team is different and even if you measure one team over a period of time, chances are that they worked on different projects or with different users, so it is difficult to get reliable observations. To gain some reliable observations you would have to observe one team working on virtually the same project, with virtually the same users, over a short period of time.

The good news is that I did just that. About 10 years ago during the .COM boom, I was the team leader of a team that was working on a website. (Surprise, surprise back then!) We worked on two short iterations (we did not call them that since this was before “Agile”) that were very similar in scope and requirements and worked for the same users. One iteration failed completely (the second one) and one was a smashing success (the first one). What was the key difference between these iterations? Everything was the same, the users and the developers got along, all key members were engaged, all the requirements were clear. What was different?

During the first and more successful project , I was on the “disabled list”. My ankle and leg were hurt while rock climbing and I had to walk around with a silly cane. (My doctor wanted crutches, but I refused.) It hurt to walk, even to stand, so I tended to stay put in one place at a time. As luck would have it, this company was an aspiring .COM, so they had leased a ridiculous amount of office space since they were going to hire 500 more people overnight. (Remember those days?) Since it hurt to walk, I usually just camped out with the business users at a spare desk.

Sometimes I overheard something the users would say that would affect the system and just butt on in that conversation. Sometimes they wanted to bounce things off my head and since I was right next to them, we had a lot of ad hoc meetings. This produced a better quality of communication. Studies have shown that there are thousands of communication "points" delivered with facial expressions and verbal tones/speech patterns. This gets lost in email, documents, etc.

Besides the close proximity to the business users, the development team would be around a lot too. While email was popular back then, I believed (and still do) that in-person communication is better, so I would not reply often to emails (especially vacation requests), forcing my introverted developers to ask me things face to face. This lead to other mini-meetings with the users and developers; business users would also overhead a team member coming to me lobbying to cut or add a feature and butt into that conversation with their perspective.

When the second project started, I was almost healed, so I tended to hang out in the IT department more often. (I also started to walk around with a baseball bat instead of a cane, that that would frighten people who did not know me.) As I said before the second project was a big failure and we later figured out that my leg was the only variable that had changed. For the next project iteration, we made it a rule to have a technology person sitting with the business team. (The guy who suggested this won the first shift with the users.) The collaboration between the business team and the technical team was the deciding factor and I have stressed team collaboration ever since, and my career has been the better for it.

You may be thinking that this is impossible in today’s day and age with distributed teams and rapidly changing requirements. The company I co-founded a few years back, Corzen, employed this strategy, even though we had a distributed team with both remote employees and overseas contractors. At our Corzen headquarters in New York City, we had our seating arrangements in an “open” style where the business team and the technology teams all sat together at desks right on top of each other alongside the sales team. While it at times did suck (like when my girlfriend would call and everyone could overhear our conversation), it paid many dividends. When the salesperson obviously lost a sale because of a lack of a feature that you lobbied against, it is far more powerful to hear the play by play in real time than getting an angry email from him later on.

Corzen had remote employees as well as overseas contractors, and we collaborated and communicated well with them. Of course we could not have them sit with us in the “bullpen” as we called it, but we did involve them on very frequent calls and webinars with our business team. The business team would make all of their documents available on a share or Google documents and over-share information instead of under-share. During the design phases the team would always communicate well and keep that communication going almost daily. New team members were inserted all the time and would come up to speed very rapidly. Of course the technical team held daily scrums using Skype and reported both ways (to the tech team and the business team) what was going on. This process was so successful that it lead to a great deal of success and Corzen was acquired by a larger entity based in another country and it still operates this way.

So if I have to sum it all up and answer the question why do teams succeed, the answer is pretty easy: communication, collaboration, and being “in the flow” of the emerging process. I have always known this, but my experiences described above enabled me to re-discover it. The best teams can finish each other sentences. Successful projects that I worked on had high bandwidth communication and extremely small feedback cycles. Success projects communicate and work "the way humans" should work - more face to face, more verbal. They also didn't rely up documentation to collaborate/communicate need/specification. Users don’t have all the answers, the requirements and features need to be discovered jointly by having a technical team member embedded with the users, or tools that mimic the fluidity of being together. Toyota perfected this process twenty years ago; the agile movement that started ten years ago was a recognition of this, so we have the knowledge of what works and what doesn’t work on projects. Embrace collaboration, communication, and work “the way humans” work (or mimic that fluidity if your team is remote) and you will have successful projects all the time.

 

Technorati Tags:

Bookmark and Share

posted on Monday, February 15, 2010 2:46:36 PM (Eastern Standard Time, UTC-05:00)  #    Comments [4] Trackback
# Tuesday, February 09, 2010

.NET Ninja in training, Peter Bahaa, shows us how to build an AtomPub Endpoint using Telerik OpenAccess entities and the Data Services Wizard beta 1.

Telerik Data Services Wizard Beta1-ATOMPub from Stephen Forte on Vimeo.

Technorati Tags: ,,

Bookmark and Share
posted on Tuesday, February 09, 2010 4:11:38 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Saturday, February 06, 2010

Check out my pre-con at TechEd North America, Joel and I will be speaking on Agile. Register here. :)

PRC07 The Agile Methodology Demystified: Implementing Agile in Your Organization

Track: Development Practices

Speaker(s): Joel Semeniuk, Stephen Forte

Agile project management and development methods are being adopted at many development shops. After an introduction to the basics of Agile and Scrum, including: project planning and estimation, the Scrum Master, team, product owner and burn down, and of course the daily Scrum, certified scrum masters Stephen and Joel show many real-world applications of the methodology drawn from their own experience. Negotiating with the business, estimation, and team dynamics are all discussed as well as how to use Scrum in small organizations, large enterprise environments, and consulting environments. Next we discuss using Scrum with virtual teams and an off-shoring environment. We then take a look at some of the planning tools we will use for Agile Estimation, including planning poker, Microsoft Visual Studio Team Foundation Server 2010, and much more. We dive into some agile developer techniques such as TDD, Continuous Integration, and Dependency Injection, and round out the pre-con with a discussion on Agile developer tools and how they can help (and sometimes hinder) the development process. The speakers have a very interactive style so participation is encouraged and there will be plenty of time for Q&A. This seminar is a jump start for preparing for a scrum master certification.

 

Technorati Tags:

Bookmark and Share
posted on Saturday, February 06, 2010 3:56:32 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Friday, February 05, 2010

.NET Ninja in training, Peter Bahaa, shows us how to build a WCF Endpoint using Telerik OpenAccess entities and the Data Services Wizard beta 1.

Telerik Data Services Wizard Beta1-REST Collection from Stephen Forte on Vimeo.

Technorati Tags: ,,

posted on Friday, February 05, 2010 7:12:26 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, February 04, 2010

 SQL Server Modeling (formerly "Oslo") is a new model driven development paradigm. Developers can model their applications using the new M language. M allows you to define a structure for your data as well as represent it in graph based values. Representing values in the M language is very similar to JSON, which will allow you to represent your data in name/value pairs. Here is an example of M values in action:

People
{
     { Id=>1, Name=>"Steve", Age=>36},
     { Id=>2, Name=>"Mike", Age=>29}
}

Last summer, Telerik created the industry’s only LINQ to M (Values) implementation. The Telerik LINQ to M implementation allows the developer to use pure LINQ statements with blocks of M values, pure text or the results of a transformed DSL. With the new SQL Server Modeling November CTP there are some changes to the M specification, so we have updated our core DLLs to accommodate this. Download it for free here. Shoot me any feedback you have.

image

Enjoy!

Technorati Tags: ,,
posted on Thursday, February 04, 2010 2:50:39 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Wednesday, February 03, 2010

.NET Ninja in training, Peter Bahaa, shows us how to build a WCF Endpoint using Telerik OpenAccess entities and the Data Services Wizard beta 1.

Telerik Data Services Wizard Beta1-WCF from Stephen Forte on Vimeo.

Technorati Tags: ,
posted on Wednesday, February 03, 2010 1:55:44 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, February 02, 2010

.NET Ninja in training, Peter Bahaa, once again returns to show us how to build a WCF .NET Data Service (aka Astoria) using Telerik OpenAccess entities and the Data Services Wizard beta 1.

Telerik Data Service Wizard Beta1-Astoria from Stephen Forte on Vimeo.

 

Technorati Tags: ,
posted on Tuesday, February 02, 2010 1:55:39 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Tuesday, January 26, 2010

Do you know Excel? Answer a few quick questions at the Excelerators Quiz site, and find out how you rate. Let me know your results and you could even win a brand new HD monitor from Microsoft! The prize you can win will include a Dell ST2310 23 inch flat panel monitor, keyboard, and mouse. (Over $250 value.)

Here is how you can win the goods:

Go take the quiz and report here your results in the comments, or ping me on Facebook. Take the quiz between today and February 4th. I will decide the winner and send the results to Microsoft. (Tiebreaker will be a PowerPivot challenge I will dream up.)

This is one of only 5 or so “official” blogs where you can win; you can only enter once. :) You also have to be a US citizen to win (sorry to my buddies in Hong Kong!).

Good luck!

 

 

 

 

 

Technorati Tags:
posted on Tuesday, January 26, 2010 10:10:08 AM (Eastern Standard Time, UTC-05:00)  #    Comments [13] Trackback
# Monday, January 25, 2010

I’ll be speaking at the Great Indian Developer Summit from April 20-23 at the Indian Institute of Science in Bangalore, India. This will be my second time to the GIDS and it will be hard to top last year’s adventure of Video Drivers, Prison Riots, and Silverlight, but I will try.

developersummit (1)

I will be speaking on .NET day on:

  • Business Intelligence Design Patterns: BI Made Easy!
  • Sharing Code between .NET and Silverlight (This is mostly on SL 3.0, but will I show how you can do it with SL 4.0 too, which is *much* easier!)

On web day I will be speaking about:

  • Building Line of Business Applications with Silverlight 4.0

Sessions are only 50 minutes, so almost no slides and almost all demo.

For the Friday Seminar, I will be doing a 3 hour workshop on Agile and Scrum. I am going to try to make this completely interactive. If you are going for a Certified Scrum Master or Certified Scrum Developer, this is a great head start.

Telerik will be a Silver Sponsor and should have a booth and (if the customs agents like us) lots of Telerik Tee shirts to give away.

Hope to see you there!

posted on Monday, January 25, 2010 9:25:19 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Saturday, January 23, 2010

Last week Telerik released the Data Service Wizard Beta 1. It will automatically create for you the end points for an Astoria, WCF, or RESTful service. New in the beta of the Data Service Wizard is the ability of the wizard to automatically generate the DataServiceKey attribute required to make relationships in Astoria work.

When you use "Astoria" (ADO.NET||WCF) Data Services, by default Astoria tries to map the primary keys in your entities using a convention. This is important for your service to work. The mapping works out of the box for the Entity Framework, however, if you are using LINQ to SQL or Telerik Open Access, it does not since some of your tables may have a primary key that will not map to the CLR primitive types that follow the Astoria convention for key mapping. (Order Details in Northwind bombs for example since both of its composite key are entities and not primitive CLR types.)

There is a very simple fix for this. You have to make your entity a partial class and then decorate the entity using the DataServiceKey attribute, in the constructor. Recently we added support for this in the Data Service Wizard: by default we do this for you by adding a “DalDataServiceKeys.cs“ (or VB) file to your data access layer project automatically.

image

The code is show below for our DalDataServiceKeys.cs file shown in the Telerik.OA.DAL project above. You will notice on Line 36 we will even convert the complex type to a primitive CLR type so Astoria can handle it.

   1:  namespace Telerik.OA.DAL
   2:  {
   3:      using System.Data.Services.Common;
   4:   
   5:      /// <summary>
   6:      /// Category Class Data Service Key Fix
   7:      /// </summary>
   8:      [DataServiceKey("CategoryID")]
   9:      public partial class Category
  10:      {
  11:      }
  12:      /// <summary>
  13:      /// Customer Class Data Service Key Fix
  14:      /// </summary>
  15:      [DataServiceKey("CustomerID")]
  16:      public partial class Customer
  17:      {
  18:      }
  19:      /// <summary>
  20:      /// Employee Class Data Service Key Fix
  21:      /// </summary>
  22:      [DataServiceKey("EmployeeID")]
  23:      public partial class Employee
  24:      {
  25:      }
  26:      /// <summary>
  27:      /// Order Class Data Service Key Fix
  28:      /// </summary>
  29:      [DataServiceKey("OrderID")]
  30:      public partial class Order
  31:      {
  32:      }
  33:      /// <summary>
  34:      /// OrderDetail Class Data Service Key Fix
  35:      /// </summary>
  36:      [DataServiceKey(new string[]{"OrderID","ProductID"})]
  37:      public partial class OrderDetail
  38:      {
  39:      }
  40:      /// <summary>
  41:      /// Product Class Data Service Key Fix
  42:      /// </summary>
  43:      [DataServiceKey("ProductID")]
  44:      public partial class Product
  45:      {
  46:      }
  47:      /// <summary>
  48:      /// Region Class Data Service Key Fix
  49:      /// </summary>
  50:      [DataServiceKey("RegionID")]
  51:      public partial class Region
  52:      {
  53:      }
  54:      /// <summary>
  55:      /// Shipper Class Data Service Key Fix
  56:      /// </summary>
  57:      [DataServiceKey("ShipperID")]
  58:      public partial class Shipper
  59:      {
  60:      }
  61:      /// <summary>
  62:      /// Supplier Class Data Service Key Fix
  63:      /// </summary>
  64:      [DataServiceKey("SupplierID")]
  65:      public partial class Supplier
  66:      {
  67:      }
  68:      /// <summary>
  69:      /// Territory Class Data Service Key Fix
  70:      /// </summary>
  71:      [DataServiceKey("TerritoryID")]
  72:      public partial class Territory
  73:      {
  74:      }
  75:  }

This will enable you to use Astoria with OpenAccess for all of the tables in your database. I converted my Tech*Ed “Data Access Hacks and Shortcuts” session demo to use OpenAccess and Astoria from the Entity Framework in less than 5 minutes. (I will show it and give away the code on my blog in a week or two.)

image

Enjoy!

Technorati Tags: ,
posted on Saturday, January 23, 2010 6:24:52 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0] Trackback
# Thursday, January 21, 2010

I will be presenting a half day seminar on Agile Development, Tools and Teams on Wednesday February 24th at the MCCIA in Pune. The event is brought to you free by e-Zest, MCCIA, and Telerik. Seats are limited, to sign up in advance, please email seminar@e-zest.net.

The Program Details

One of the most popular Agile project management and development methods, Scrum is starting to be adopted at major corporations and on very large projects. After an introduction to the basics of Scrum like: project planning and estimation, the Scrum Master, team, product owner and burn down, and of course the daily Scrum, Stephen (a certified Scrum Master) shows many real world applications of the methodology drawn from his own experience as a Scrum Master. Negotiating with the business, estimation and team dynamics are all discussed as well as how to use Scrum in small organizations, large enterprise environments and consulting environments. Stephen will also discuss using Scrum with virtual teams and an off-shoring environment. We’ll then take a look at the tools we will use for Agile development, including planning poker, unit testing, and much more. There will be plenty of time for Question and Answer. This seminar is a jump start for a certified scrum master exam. 

Who Should Attend 

Developers and development managers, especially those using the Microsoft .NET platform. 


Schedule and Agenda

Seminar Coverage

Time Slot

Event Registration

9:00-9:55

Speaker Introduction

9:55-10:00

Introduction to Agile Development and Scrum

10:00-11:00

Agile Estimation

11:00-11:30

High Tea Break

11:30-11:45

Implementing Scrum with remote and offshore teams

11:45-12:15

Agile Tools, Test Driven Development, and Continuous Integration

12:15-12:45

Summary, Question and Answer

12:45-1:00

Conclusion of Program

1:00