I have a theory… help me prove it!


I have a theory that you can’t build amazingly great products if you don’t deeply know the customer.  Animaged the best way to get the visceral and lasting impression is to physically go see the customer work in their own environment. 

This where I need your help.    I am looking to get smarter about the way custom application development in small business really works.  While Microsoft has some great feedback channels for large ISVs and large business.  The small business is a slightly harder area for us because of its breath.  My, somewhat crazy, idea is to get folks from my team physically outside of the Microsoft campus and get a first hand experience of what life is like for folks doing custom application development in small businesses.   To make the logistics easier and to allow more of m y team to go, right now I am looking for folks in the Puget Sound area (for those not in the area,  I mean nearby Seattle, WA). 

What I am looking for is folks willing to host 2 or so folks from the product development team to come by and observe where you work, how you work, ask you about what problems you face, how you think about the world, etc.   The best visits for us would be ones that:

1. Are in small business (1-10 employees)…
2. An office in the Puget Sound  area – lots of times these are home offices or even garages..
3. Doing at least part time some sort of custom application development (building a time tracking app, heavily sharepoint customization, data entry application,office VBA work,  etc)
4. These apps can be for the companies internal usage OR to license to another company (for example a VAR) or even consumer facing web sites. 
5. These are often side job or “moonlighting” as well as full time jobs.
6. We are looking for a variety of technology usage both Microsoft and the other guys.  Some examples of what we hear folks are using include Access or VB6 or some VBA in office or some PHP or sharepoint.

If you or someone you know is interested in having a hand in shaping some future MS developer products, want to talk about how your business works, or even just wants to vent about some Microsoft technology please take me up on the offer!    Drop me an email brada@microsoft.com and let me know!  We have some scheduling folks that will contact you and ask a few questions to see if we can make a fit!

Comments (10)

  1. Most small businesses don’t do custom software development, unless you include creating spreadsheets. However, there are plenty of small businesses that do custom software development for other small businesses. The niches are so small there is never a "designer" in the sense that Microsoft envisions for the designer/developer split.

    You have a good idea there.

  2. Frank Hileman is right, that there is a lot of small business out there that develop custom applications for other smaller business, but the problem that most of them faces is that the customer demand compare to cost of actual performing the development can drive you insane. Because customer are alway asking for more without wanting to pay the price.

    Good Idea that you team is trying to work on understanding custom application development in small business really works.

  3. Jacob says:

    I disagree with Frank, but I understand his perception. I blogged about my situation with small companies recently (http://scruffylookingcatherder.com/archive/2007/09/06/small-company-development.aspx), not to be an attention whore or anything, but the fact is that I do exactly the kind of development you say you’re looking for.  It’s a programming niche that flies under the radar to a large extent because the developers there tend not to be terribly vocal and don’t bring attention to themselves. They don’t have large training budgets so you don’t see them at conferences or conventions and since developers tend towards the introverted you don’t hear from them often either.

    That said, I think you are making a mistake doing your information gathering in or near Seattle. I know that keeps your costs down, but Seattle is too unique to give you a representative picture, IMO. The presence of Microsoft so close by will warp the skill and toolsets of developers you find there (friends of friends giving an in for the MS company store, for one). You’ll either get a surplus of skilled developers because Microsoft draws them close without sucking them all up, or a surfiet of skilled developers because Microsoft sucks in all the talent. The likelihood of a balance is small, I’m thinking. Either way, I’ll bet that the picture you develop in your local observations will actually do more harm than good if you’re trying to understand small-shop development in the broader context.

  4. MattH says:

    Obviously "most" small businesses don’t do custom software development, but I think there are tons of small businesses that do custom software development.  I also think there are lots of large companies that work in small independent units, like a small business would.  

    This sounds to me like a first step in the research so the Seattle area makes sense.  I don’t know how you could possible justify the cost of sending people all over the country unless you first check out the local options.

    I have long criticized Microsoft for developing tools that make for good presentations and nice conjecture but that don’t stand up in the "real world".  Click-once, for example.  After convincing my company to use Click-Once for internal, utility applications we found several problems when we attempted to use a click-once application during the build process.

    Anyway, I applaud the efforts of you and your team Brad.

  5. Jeff says:

    Now Brad, you see, if you had switched it around so some of us small business developers like myself could come out to the campus and see how you and the other big boys go about developing your applications so we could see what we could take back from your processes (and that experience )to our own business(es) that’s where I think things could get juicy!  We get to learn from the guys who wrote it, they get tons of feedback from us, everyone wins.

    Have a registration / random drawing of 50 or 100 folks and go that route. Trust me, I think that way your more apt to get the results you’re really after.

    Your way sounds like you’re trying to bring the mountain to Mohamed, instead of sending Mohamed to the mountain. True, while its not my office and my machine per se, its a whole lot easier to duplicate a single machine home office (or a 5-10 machine LAN) than it is the way things actually work on a Microsoft campus.

    I’m willing to bet a lot of the small business dev’s like me could really benefit from just seeing the process first hand. I know for me, I’m trying to develop a process that I can use across multiple scenarios, but you guys have already been doing that for years! Save me some time and headache, show me how you do it, what the pros and cons were that led you to where you are. If we got a chance to get our feet working with you on code as well, then that would be gravy.

  6. Andrew Steele says:

    I think MattH had a really good point about individual organizations in large businesses operating in a similar fashion to small businesses.

    That said the one advantage that developers in a large corporate environment are able to take advantage of that small businesses are unable to is the availability of corporate resources.  While my development group is small (5 people) we have the advantage of enterprise solutions to version control, databases, web servers etc.  Aside from the "funny money" that passes from our organization to the organizations that support these services I do not have to consider what it means to maintain those resources.  While these outside organizations do not directly contribute to our application development process they alleviate a lot of the burden that a team of similar size would face in a small business.  It is their efforts that allow me to concentrate on my specific task without worrying about computer maintenance and other day to day administration burdens.  Honestly, I cannot imagine what it would be like to work in a small business environment without these resources and I applaud Brad’s decision to send members of his development team out to experience what a small business developer does.

  7. Lynn Eriksen says:

    Hey Brad, I am one of those introverted developers that never blogs, 100% self taught, never goes to conferences (cannot afford it), and develops custom web apps for other small businesses.

    I think you are right – it’s of utmost important to have a deeply collaborative relationship with customers in order to build products that work for them. I hesitate to call them ‘Amazing’, especially at the code level, but they do give my clients advantage in reaching their clients, or in reaching out to their community.

    These clients all have a similar mind approach:

    1) They innately plan on doing things in phases, even if that takes a long time.

    2) They are not afraid of conversing about possibilities, and will allow time to think of a recommended approach.

    3) They openly share their business process/concerns as it applies to a project, even in detail.

    Most importantly they also tend to follow the ‘ask forgiveness’ instead of ‘ask permission’ principle which allows to take more personal stock in what is being developed.

    With these customers there is not a massive, all encompassing vision. (In fact, customers with the ‘all encompassing vision’ at this level usually fail because they usually put their tech desires before business reality.) However, they do a good job of adding meaningful features over time and connecting seemingly disparate features as they get new ideas and/or client feedback. For some of these customers their web sites have been in ongoing development for so long there are distinct technology and design layers.

    The down side to this development process is that the web sites are at best patch-quilt, at worst a mongrel. Here is a breakdown:

    1) Due to the long iterative approach these sites are highly custom and would be impossible to scale for multiple customers or support in a resale scenario.

    2) Code quality varies, there is practically no documentation, and features are not always presented in what would be retrospectively logical.

    3) These sites have ‘loose ends’ – places where functionality stops abruptly or changes style/appearance from one place to the next.

    Large iterations outside of day-today maintenance usually occur 2-4 times a year, and most of the time we work through the possibilities and numbers beforehand. I communicate directly with these clients and usually just keep my boss ‘in the loop’ as the work is planned and proceeds. These iterations usually take between 10-30 hours to complete and will sometimes leverage preceding work.

    Any tools or frameworks you provide in or out-of-band that are straight-forward, comprehensive and easy to discover I use. For example, the Asp.net AJAX extensions make life fantastically easier. I would estimate that it allows a reduction of effort to build slick AJAX-style apps by an order of magnitude. The Update Panel is the biggest win I’ve seen since view state (know the pros/cons on both).  

    I would suggest a dual track approach for your investigation. Get to know local dev shops in your area, but also begin to open a dialogue with small dev shops in general here on the web.

  8. I can’t believe it’s already Sunday. I’ve been spending all weekend (and the last few weeks) as a returning

  9. Brian Thomas says:

    I think that you’d do yourself a favor by expanding your criteria for small businesses. I work at a company where we have 100 people and I think that the development needs for a company with 10 people probably isn’t much different than those with 100.

    Other people here have stated that most small businesses hire their work out. While I can’t agree or disagree with those statements, I know a few not-for-profits in my area that employ around 10 people and they do custom development. Unfortunately, my area is the Midwest which also falls out of line with your criteria.

    However, I worked at one such place and can tell you that there tends to much more freedom to innovate in smaller companies because they can’t afford the overhead of project managers, CIO’s and such. However, budgets tend to be smaller so the use of open source tools becomes more necessary but that’s not really a bad thing.

    For what it’s worth.

  10. zzz says:

    Why am I reading this as "I need to visit couple companies for drawing up some conclusions that support my theory (agenda)". Add there some selection process for picking up the ideal choices that suit to proving whatever you want to prove and it sounds like waste effort as it would be so easy to call out that maybe the business you visited were biased to driving your idea.

    In short: "I have a theory… help me prove it!" isn’t the best phrase to start any objective data gathering mission which is what the rest of the post sounds like.