LavaBlast Software Blog

Help your franchise business get to the next level.
AddThis Feed Button

Franchises Can Learn From Software Startups - Part 2: Trends

clock June 23, 2008 09:18 by author JKealey

This article is the second of a three-part series related to technology in the franchise world. It discusses current trends in both the software and franchise worlds which are relevant, given the similarities illustrated in Part 1. Part 3 discusses what franchisors should be doing to react to this change in business context.

Fact: The world is changing. Technology is the catalyst.

Wicked technology The impact of technology on the way we do business is undeniable, and franchising is no exception. More often than not, franchise success stories list technology as one of the key elements to the franchise's growth. Five to ten years ago, most franchise systems recognized the value of a franchise intranet/extranet as a centralized franchise collaboration tool. More recently, the rise in franchise systems which allow absentee/semi-absentee franchisees has increased the need for software tooling that facilitates remote franchise management

Start thinking about who will be buying franchises in the next decade or two. These people have grown up with the Internet and do not know life without it. A very insightful read on this subject is Diana G. Oblinger's recent publication Growing up with Google: What it means to education as many of the concepts can be projected from current day challenges in education to tomorrow's franchise sales situation. The Net Generation (born after 1982) is now entering the workforce with university degrees. It won't take long for them to look at purchasing a franchise. Thanks to the Internet, the Net Generation has access to vast amounts of information which doesn't always work in the franchisor's favor. A single individual can report scams which rapidly make their way through the Internet. There are even blogs dedicated to reporting fraudulent business opportunities. This generation has learned to question authority and to go the Internet to prove their claims.

The widespread availability of high-speed Internet has not only impacted franchise operations: it has deeply changed our society. The latest trends in software have been user-empowerment (blogs), online collaboration (wikis), and social networking (for business or for fun). In case you didn't know, over a quarter of all Canadians have a Facebook account. If you're thinking that this is a fad for kids and teens, think again as over half of these users are over 30. Reacting today to these social and technological changes does not only help prepare yourself for the future, it also helps you understand your current operating environment because the facts of life for the Net Generation are also true for many older individuals which are no longer marginal.

A few trends in the software world...

Starting a software company on a shoestring has never been easier for a number of reasons. First, high quality open source tools, powerful software frameworks, and the availability of free web services allows competent software engineers to solve problems faster than ever. Second, infrastructure costs are negligible. Everyone already has a computer and an Internet connection... and working from home is an option for MicroISVs. Once you outgrow your basement or garage, co-working environments provide an affordable way to grow your company to the next level.  Even if you operate from home, you can still reach a very wide potential client-base thanks to the Internet and the same logic applies to any kind of business, not only software.

Another trend in the software world is that many cities (examples: Ottawa, Montreal) offer a vibrant software startup community which most people aren't even aware of. Founders are connecting and publicly sharing lessons learned. Funders are even connecting with founders at informal social events focused on growing the community. Twenty years ago, it would have been hard not only to meet startup founders but also to sit them down to hear about their experiences. Today, you can read about it on blogs and join up at local events... and if you're feeling old school, you can still buy books to learn the stories of other founders. As we all know, the Internet makes it easy to contact other people and collaborate online but it does also make it easier for people to meet offline for both business and social events. 

Finding and retaining good people is the single hardest task in a software company, even if you've got money to burn. Money is an incentive, but is far from being the most significant one for software engineers. Indeed, just take a look at Maslow's hierarchy of needs to discover esteem and self-actualization are higher in the pyramid yet cannot be purchased with money. What developers are looking for are interesting challenges in a great work environment and most large organizations are unable to take advantage of this fact, which push the best software engineers to work at smaller startups or even start their own company. The best talent have plenty of opportunities to pursue and consequently don't often look for jobs on sites such as Monster whereas bad employees always end up unemployed and pollute the system. The solution in the software world is to be active in the software community and utilize niche-specific job sites such as the Joel On Software job board.

... That are also present in the franchise world

Which one would you pick?In the franchise world where we are seeing lots of concepts, such as home-based franchises, growing rapidly because of their low start-up costs. Many people dream of being their own boss while doing something they love and it now easier than ever for them to start their own business. Striking gold is (and always will be) hard, but one can make a decent living with a MicroISV (thanks to niche markets on the Internet) or home-based franchises (thanks to franchisors who know what it takes to make the concept work). We're also seeing an increasing number of new franchise concepts, partially because the Internet has made it easier to contact experts in franchising (and vice-versa... which is not always a good thing).

I would love to say there is a vibrant startup franchise community on the Internet, but that is simply not the case. There are a few disparate local associations but the web is polluted with franchise opportunity websites, given the high commissions related to franchise sales. However, if you look hard enough, you can find a few good websites which unite franchisees and franchisors under one roof for discussion and collaboration. Furthermore, younger franchisors are turning to blogs and are openly discussion various lessons learned. It would be superficial and discriminatory to claim age is the only factor at play to explain the slower growth of a good online franchise communities, but it is a contributing factor given the fact that franchisors require a substantial amount of capital to launch a franchise. Few, if any, current franchisors are part of the Net Generation.  However, I am optimistic that a number of excellent franchise-related websites such as Blue Mau Mau, focusing on everything other than sales, will help grow the franchise startup community over the next decade thanks to collaboration between franchisors and various franchise service providers.

Finding and retaining good franchisees is an obvious challenge in the franchise industry. Many new franchise prospects are surprised that they are being screened for quality and are unaware that, for new/small franchisors, their individual success can have a strong impact on the success or failure of the whole system. Most franchisors complain about the decreasing quality of leads via franchise websites and this poor quality is surprising given the parallel which can be made with online recruiting systems such as Monster. As more people look for franchise opportunities on the Internet,  it becomes increasingly important for franchisors to be able to efficiently filter through a larger volume of requests but also for them to be proactive about sales and marketing. This can be achieved by participating in online communities dedicated to their niche. Of course, time & effort is a valuable commodity and lower quality leads are to be expected when a franchisor doesn't proactively work on solutions on a daily basis. 

Summary

After discussing changes in our society, this article covered three core trends:

  • Younger people are starting businesses on a shoestring budget.
  • It is easier than ever to connect with other people and learn from their mistakes.
  • The big sites are saturated with people you don't want to hire or have as franchisees. 

Part 3 will talk about what you should be doing to make the best of this changing environment. Your homework for the next week is to participate in a few online communities of your choice (Franchise, Startup, or Local). Also, take a look at Franchise NewsBlast, which we are launching today.


kick it on Franchise NewsBlast


Franchises Can Learn From Software Startups - Part 1: Similarities

clock June 17, 2008 11:57 by author JKealey

The omnipresence of technology in our lives and the Internet has changed the way we do business. The software industry is not only one of the driving factors for this change, it is also one of the first industries to be influenced and react to changes in society. This contrasts with the franchise industry which is a bit old school... which has its pros & cons. Regardless, being abreast of current trends is helpful for any business and we feel franchisors can benefit from the insights of those with a software engineering background. Since LavaBlast builds software for the franchise industry, we’re at the junction point of two very different worlds ... which are more alike than you would initially expect. 

This article is the first of a three-part series related to technology in the franchise world. It focuses on similarities between franchises and software startups and serves as a premise to Part 2, which covers current trends in both industries. A comparable evolution in a changing context was to be expected, given the similarity between software startups and franchise systems. Finally, Part 3 discusses what franchisors should be doing to react to this change in business context.

For the sake of argument, let’s focus on small and/or new franchise systems. Why? There are numerous reasons:

  1. Innovation often comes from smaller, nimbler organizations.
  2. Over half of all franchise systems have less than 50 units. 25% have less than 10 franchise units
  3. Hundreds of new franchise concepts are born every year. Over 1000 businesses turned to franchising for expansion between 2004 and 2006.

Small franchises are similar to software startups in nature.

Building the next great thing There are numerous similarities between software startups and budding franchises: the strong need for domain expertise, the global potential, and they are both created to fill a gap in the market. However, their resemblance can be concisely be explained by looking at growth patterns and scalability.

In general, because of the very nature of software, software startups can achieve very high growth in a short period of time (examples abound!). Venture capitalists rate startups according to their scalability in order to obtain the highest possible return on their investment. This is done by building software which solves problems for a large group of people with little or no custom work required on the software firm's end to support a new user. Hosted software applications are installed once on the startup's web server and shared between customers, thanks to a scalable multi-tenant software architecture.  Additionally, the first hires in a software startup are crucial to building both v1.0 of the product and also the company’s culture. A solid team working together in the same direction is necessary to grow a successful company.

Franchises are similar because the concept must typically be tested and proven to be successful in its first location, akin to a software beta. Small business owners which turn to franchising as a growth strategy quickly discover than growing a franchise is a completely different ball game than making your first location successful. Scalability cannot be tacked on, it must be planned. The franchisor must find a scalable supply chain and must ensure the store look & feel is replicable. Unfortunately for some, purchasing store fixtures at your local flea market, police auction, or more recently eBay is not a replicable way to grow a franchise. The franchisor can't fly out to different cities to shop around for cool lamp shades for each new franchisee... Suppliers must be approved and utilized. The same is true for software where an integrated solution is the key to simplified franchise management. Furthermore, people with different backgrounds and skill sets are required to launch a successful franchise, and the first few franchisees are critical. As much thought (if not more) must be given when picking the first franchisees as the first hires in a software startup.

Additionally, the very nature of franchise systems implies that franchisees are geographically distributed. One might think this is not the case in software startups, but this is not totally true due to outsourcing and open source. Furthermore, even small software startups deal with international customers on a daily basis.  As such, the various stakeholders are not necessarily always in the same room ready to discuss business issues even though both are have to quickly react to preserve customer/franchisee satisfaction and grow the business.

Implications

We've just scratched the surface of why software startups are similar to small franchise systems. You may have other similarities in mind or you may disagree and have opposite feelings; in both cases, you are invited to share your opinion.

If you are a franchisor, why should you care about software startups? Simply put, software startups are more in tune with the impact of technology on our society which affects your franchise's operating environment. This subject will be covered in detail next week, in Part 2. In the meantime, you are invited to read Growing up with Google: What it means to education which explains the characteristics of the Net Generation you should be aware of, regardless of your background.

kick it on Franchise NewsBlast


Founders & Funders Montreal

clock May 15, 2008 10:44 by author JKealey

founders_funders We attended the second Montreal Founders & Funders dinner this week. Since I've noticed that all blogs assume that their readers know what the Founders & Funders event is (which is not the case), I thought I'd give a brief overview of this simple concept.

  • The organizers send invitations to a bunch of people who have manifested interest in the event (via an online form or in their network of contacts).
    • I don't know how the selection process works, but attendance is limited to the size of the restaurant.
  • The attendees arrive and network with other founders & funders.
    • No special organization - just put interesting people in a room with other interesting people and magic happens.
  • Sit down at a random table and enjoy the meal
    • I ended up at a table with a 50/50 breakdown of founders versus funders.
  • When you're done, network some more
    • There was a networking event after the meal where an invitation was not required.

It was a nice experience overall and the non-stressful environment was great (although some founders appeared quite nervous!). The crowd was very diverse and we covered a broad range of subjects, in both French and English. Unilingual individuals must have had a bit of trouble following everyone’s conversation but in general it was a very enriching experience. We ended up being so busy talking to everyone that the event just flew by, which confirms it was far from monotonous. We weren't looking for funding but we saw this event as a good opportunity for a first encounter. Going to such an event also reinforces the fact that it's a small community and I was surprised that lots of people had heard of us before, thanks to the hard work of the folks at StartupOttawa and MontrealTechWatch.

Some of the other founders at the event were:

The one improvement I would make for future events would be prepare and distribute a list of attendees a few days before the event. I personally prefer to do my homework before meeting a bunch of people. Furthermore, I met at most 20% of the people at the event and maybe missed out on some founders/funders with experience in retail environments.

Finally, Austin Hill had an open question: what could we do to get more people starting companies fresh out of university? I’ll possibly talk about my opinions on the matter in a future blog post. For now, let me invite you to review the Founders & Funders site and strongly incite you to see if such an event can be organized in your community.



Spolsky's Paradox

clock May 2, 2008 13:42 by author JKealey

Last week, I loaded up my blog aggregator and I was pleased to see Joel Spolsky had written a new article on architecture astronauts. He made a good point about how Microsoft is rewriting the same software over and over and no one seems to care. I totally agree with Joel's argument about architecture astronauts as we are wasting precious intellectual resources and solving the same issues over and over.  (Side note: an interesting read about how we're wasting massive amounts of brainpower.)

However, that's not what I'm writing about today. I found myself reading faster and faster as I progressed through the article, reading the last paragraph at a frenetic pace. You can definitely feel Joel's frustration - the big boys in the industry are "stealing" all the great programmers by offering starting salaries leagues above what smaller companies can offer. Why do I think Joel's frustration is paradoxical?

Joel's Premises

  • Hire only the top quality people
  • Treat your employees as if they were superstars in your beautiful New York offices - spare no expense.
  • Build a closely-knit team that works on challenging problems to retain your employees
  • Set an example as being the best damn place for a software engineer to work and inspire millions of developers to follow your example.

Joel's Aspirations

  • Recruitment problem: solved.
  • Develop and commercialize high quality software
  • Thanks to a well-defined (and very selective) hiring process, retire from software at age 45 to start your own avocado grove as a hobby.

The Contradiction

Okay... I'm generalizing just because I find it ironic to see Joel having hiring woes. Even if as a general rule things are going well, that doesn't mean you get anyone you want. Everyone has hiring frustrations, even those who set the example. However, I'm left to wonder... has anything changed in the context of hiring? Is there anything you need to do differently today to grab the best technical talent? I can't answer these questions myself, but I see lots of companies struggle with hiring.

I do agree that it is impossible for smaller companies to compete with some of these starting salaries (unless they are keen on burning VC money) but smaller firms do have (many) advantages. But what are they?

1. Get back in the kitchen and make me some pie

What I like most working for a startup (and it would be the case even if it wasn't mine) is the opportunity to touch a bit of everything (engineering, marketing, sales, legal, etc.). Even if you go work for a 40-person startup, if you're interested in contributing to elements which aren't related to your primary function (software developer), you probably can help out. For example, if you think the company's website doesn't communicate what the company does, you can take a step back, think about it a bit, and propose enhancements. (Complaining doesn't bring you anywhere, but constructive criticism helps everyone out!).

If you're a hardcore coder, you can still benefit from working for a smaller company, because you'll have a greater impact on the final product.

However, this fact is not something that has changed in the hiring context... what has?

2. Not everyone wants to work in New York, Redmond or Mountain View.

This is one key differentiating factor for startups. Not all of the world's most talented individual feel inclined to move to get a job and I feel the number of people who will start their own software business in their home town will increase in the coming decade. In the past, we've seen a few companies such as Eric Sink's SourceGear in Illinois do well even if their offices are in the middle of nowhere, so to speak. This is due partly because of increased high-speed Internet availability combined with the lower cost to start your own software business. I think we'll definitely see more success stories from entrepreneurs living in non-metropolitan areas over the next decade because starting your own business (or working for a local one) is such an attractive alternative. It's funny how making it easy to go global causes the creation of many smaller local hubs.

On a related subject, I don't recall that many local startups trying to recruit us while we were software engineering students at the University of Ottawa... there were a few but we were mostly solicited by IBM and Research In Motion (leading to the infamous "hey! do you want a RIM job?" quote). If you're a competent student today, you should definitely look around at local startups that are working on interesting concepts.

3. You can read about it on the Internet

There are tons of people talking about their software startup experiences on the Internet and it's easier to actively participate in the community today than it was a decade or so ago. I can't really see myself connecting to a BBS with my 14.4kbps modem to learn about software startups. Today, you can find people with similar interests very easily but, best of all, you can learn from their experience.

Rather than enumerate a long list of advantages that you wouldn't bother to read, I'd like to ask you an open ended question.

What do you think will change in the way we hire software engineers in the next decade?

Please feel free to discuss in the comments. Ideas: Outsourcing? Co-working? Telecommuting? Nothing at all?

kick it on DotNetKicks.com


Co-working environments are good for software startups

clock April 26, 2008 23:53 by author JKealey

The Code FactoryA month or so ago we mentioned co-working environments in one of our blog posts about startup lessons. It appears we're now the number one hit on Google for co-working software startups. When I first heard of co-working, I assumed they were mainstream because the added value these environments bring to software startups is so obvious. However, they are an emerging trend in the software world and you should expect to hear more about them in the future. 

The advantages of co-working environments:

  1. It provides a location where members of a small core team can meet, brainstorm, and work on their new idea.
  2. It is a low-cost alternative to renting/owning your own office. You can use the space as much or as little as you need it and don't need to buy chairs, desks, a photocopier, fax machine, espresso machine, routers, etc.
  3. It opens the door to meeting new people and networking with peers in the same industry.

In a sense, they improve on the familiar software engineering lab environment that is available to university students and we know universities help create startup hubs.

Given the fact that it has become so inexpensive to start your own software company, co-working environments are a perfect fit for the small software start-ups that want to strike it big but have limited resources. Furthermore, who better to help you with your software startup business plan than someone who's gone through the process in the past? Most government agencies that help you start your business don't fully grasp software companies, but the people in a software co-working environment do!

Rather than ramble on about why co-working environments are so great, I'd like to make an announcement: 

LavaBlast Software will develop an industry-specific POS and interactive kiosk for The Code Factory, a new franchisor in the co-working arena.

The Code Factory will open their first location within a couple weeks. Ian Graham, the founder, is very much involved in the Ottawa startup community and this co-working space will definitely help budding software entrepreneurs in the Ottawa-region. The first event to be held at the Ottawa location will be the Ottawa Web Weekend, who is currently looking for more programmers for the event!  Those of you who are not familiar with the franchise industry (and thought it was limited to McDonalds and Subway) might be surprised to see a co-working environment using the franchise model but you'd be surprised by the wide variety of businesses that do (software shops, web design shops, etc.)!

Not only are we very happy to have a new franchisor on board, we're especially excited by the fact that The Code Factory will be out first client outside the child-related retail industry to use our industry-specific interactive kiosk as a key differentiator.



Should you judge a software engineer based on their hygiene?

clock April 19, 2008 16:32 by author JKealey

Although you may have landed on this page thinking you'd get clever insights on how to tell a coworker that bathing is not optional, I'm actually talking about their computer desktop hygiene. Look at the following desktop screenshots and imagine you have to hire a software engineer for your firm... who would you hire?

Clutterred 1920x1200 Smooth 1600x1200

What? You actually picked one of the two? I'd fire YOU for deciding without knowing anything about the context! :)

You might not be able to guess at first, but these desktops come from very similar people who are equally important in their respective teams. Both are perfectionists, both are versatile, both produce quality code, and both are pragmatists. Both loved Arrested Development and can't wait for the movie!  Both care about usability and software engineering. However, both are also very dissimilar in many regards. Instead of boring you with an enumeration of differences, I invite you to look at a coworker's desktop and see what you can learn.

Different people, different desktops.

As research for this post, I wanted to examine the commonalities and differences between the best software developers. I found lots of interesting classifications for software engineers. Rather than repeat what's already been said, let me point you to a few different sites.

  1. Synthesist, Idealist, Pragmatist, Analyst, Realist
  2. Scientist, Craftsman, Playboy (and regular "Employee")
  3. Elf, Dwarf, Ninja, Pirate
  4. Morons and assholes

 

One could also extract common personality traits:

  1. Pessimistic
  2. Angered by Sloppy Code
  3. Long Term Life Planners
  4. Attention to Detail

 

The more I did research, the more I was overwhelmed with a feeling of "Who the hell cares? Why am I wasting my time doing this research?" (which might ironically be due to the fact that I'm a pragmatist). Concretely, flagging someone as a particular type of person (with their strengths and weaknesses) appeared to be pointless because it's impossible to systemize people and, quite frankly, it's downright condescending.

Different individuals, great teams.

Although trying to assign personality types to people is elitist, the act of looking at the various classifications is an enriching experience. Taking a step back and evaluating yourself using personality traits instead of how many features you built this month, you'll learn more about yourself. I'm the first one to push self-help books into the shredder, but identifying key strengths and weaknesses with regards to your current context allows you to build a stronger software startup thanks to diversity. Anyone can have a great idea but you need strong people to execute on that idea. If you've ever watched Dragons' Den (Canadian version or UK version) where entrepreneurs try to convince angel investors to put their hard-earned money in their startups, you've probably noticed that the idea means nothing if the entrepreneur isn't as brilliant as their concept.

Joel Spolsky and Jeff Atwood?

Last week, I was surprised by the announcement that Joel Spolsky and Jeff Atwood were launching a new company together. Jeff points out that occasional disagreement is healthy and normal, which is totally true. If you'd have a week to waste, you could compare and contrast these prominent bloggers but you'd end up seeing they complement each other. I listened to their podcast to figure out what they were going to do with stackoverflow and the idea is quite interesting. Simply put, a developer community based on the right values of collaborative problem solving. (Question: Am I the only one who gets impatient listening to conversations and who prefers straight to the point blog posts?)

I can't wait to see what they're going to come up with, because they're basically solving a problem similar to one we've identified in the franchise world. If you spend 15 minutes googling franchise websites, you'll discover that all these sites have a sleazy-edge to them, just like experts-exchange. Commissions are big in the franchise sales world and it has basically corrupted the web community. A nice software engineering capstone project (at the end of the bachelor's degree) would be to create such as site and allow people to collaboratively identify the best franchises for potential new franchisee (minus the sales gimmicks). (Sidenote: Turning that into a profitable business is another story and would require careful thought but it does seem like a startup with benevolent aims).

Speaking of Joel Spolsky, have you heard of the upcoming Business of Software 2008 conference? The speaker list simply knocked my socks off (and not just because a higher percentage of speakers have names starting with the letter J). I hope we can free up the time and find the money to attend this event because it certainly will be an enriching conference for all those attending. Apart from Spolsky's great books, I'm a big fan of Eric Sink's Business of Software and Jessica Livingston's Founders at Work

Conclusion

In case you're wondering, I'm the one with the horrible looking desktop (weird side note: my second monitor actually has no icons on it) while our keyboard-bashing friend Jean-Philippe has the elegant looking one. We can also see is that his office desk is as nice and clean as his computer desktop. I'm not at all ashamed of my desktop even though people usually can't contain their surprise when they see it. One of my strengths is to quickly and efficiently find my way through chaos and it reflects the volume of diverse tasks I tackle each and every day. Seeing someone's desktop can help you learn more about that person, but you can't jump to any conclusions. I pay close attention to detail when it's important (pragmatism again!) but you'd never be able to guess that after looking at my cluttered desktop (unless you're reaching for explanations).

In any case, if anyone has cared to read up to this point, I'd be curious to glance at your desktop! 

kick it on DotNetKicks.com


How do you keep from going crazy?

clock April 3, 2008 13:10 by author JKealey

Broken Wings When launching your own software company, expect an emotional roller-coaster ride. You're responsible for your own success and it can become stressful. Fortunately, it doesn't affect me too much, as I've been doing my own thing for almost a decade. However, whether you're a software engineer, a graphic designer, or even a PowerPoint slide monkey, you do need to find a certain balance in your every day tasks to avoid going crazy. Personally, I work on tons of different tasks in a day (marketing, sales, scripting, development, bug fixing, testing, deployment, web changes, documentation) and I find it is one way to find a balance during the day. After hours, I enjoy the time I spend off the computer with various activities and hobbies. Lots of people, including Etienne, enjoy playing video games to reduce their stress levels.

What does Steve, our talented art director, do when he's off hours? He creates video games! (Okay, he actually goes out with friends and plays hacky sack much more than he does game development, but that's beside the point). Steve has been developing games for years, as a hobby. He hasn't released that many, but many of his games have been played a couple million times. Over the course of the past year, while we were developing LavaBlast's software infrastructure, Steve developed a new game with his brother and it is called Broken Wings. Today, he's officially launching the game and I'm personally inviting you to spend a few minutes to try it out! It is a totally amazing airplane arcade game with RPG elements (whip out your Core2Duo!) Tell your boss it's a great way to keep from going crazy! :)

On a more serious note, what I find the most exciting about this game is that for the first time in years, Steve's gaming hobby can finally generate a few bucks. In the past, people stole the Flash SWF from the website and posted it on their crappy game portals, stealing all possible advertising revenues that could have been generated. In January, we found GameJacket, a software startup that specializes in putting advertisements inside Flash games. (They are a competitor to MochiAds.) Steve will also be able to monitor how often the game is played after spreading virally on the Internet.

Finally, the game features music by a local band called A Plot Against Me. These guys are simply amazing... it's worth it to try the game out just for the music. They were finalists for the Live 88.5 Big Money Shot and almost won a quarter million dollars in December. Personally, I listen to lots of music because it boosts my productivity and helps me retain my sanity.

What do you do to keep from going crazy? Oh, you're a big Dr. Phil fan, are you?



Upcoming StatCVS/StatSVN Release

clock March 31, 2008 13:40 by author JKealey

locAs you know, LavaBlast develops most of its applications using Microsoft technologies but we like to dabble with other technologies. We're behind the open source movement and have worked on a few open source projects, mainly in Java. One of these is StatSVN, a tool that retrieves information from a Subversion repository and generates various tables and charts describing the project development. It's so great even Eric Kemp used it on SubSonic. The tool uses StatCVS internally and I've recently been promoted to the project admin status on SourceForge (along with Benoit Xhenseval of Appendium). StatSVN has not evolved much in the last year, since the release of v0.3.1, but we've recently done a few enhancements.

Current improvements to both StatSVN and StatCVS

  • StatSVN: Faster diffs.
    • StatSVN now takes advantage of a new Subversion 1.4 feature which allows us to perform one svn diff per revision, instead of one svn diff per revision per file. If you don't have 1.4, the old behavior will continue to work.
    • The Apache project blocked our demo because we were doing too many svn diffs on their servers. Hopefully, this will solve this situation in addition to making everything faster.
    • You can still use the old mechanism by using the -force-legacy-diff command line option, should you encounter any problems with the new feature.
  • Both: Export to XML format.
    • A new -xml option generates XML files instead of the typical HTML reports.
  • Both: Now showing affected file count in a commit.
  • StatSVN: The revision number shows up on the commit page.
  • StatSVN: Added support for -tags-dir as a way to specify 'top' directory where the tags are stored, defaulted to "/tags/".
  • StatSVN: Added support for a -anonymize command line option, to anonymize committer names
  • ... and a few minor things.

 

*** Download the alpha version ***

We're looking for some outside help

Instead of releasing v0.4.0 prematurely, we'd like to ask you to help us out!

1) Beta testers and benchmarkers

Before going with a full blown release, we want to ensure that the new StatSVN diff works as intended in various contexts. It works on our repositories, but we'd like you to run it on yours. We want to ensure it works well regardless of the operating system, your language, the type of files in your repository, the number of revisions, etc. Ideally, you'd time the whole thing and let us know how much faster it is. Furthermore, if you're a real zealot, you'd compare the line counts computed by both algorithms to ensure they match. (The counts are cached in a local XML file... very easy to compare the results).

2) Minor bug fixing & improvements

We've basically fixed the issues that annoyed us personally, but there are some that remain in both the StatCVS tracker and the StatSVN tracker. You may also be interested in creating new reports, which you think would interest the community.

3) Cool enhancements / external projects.

StatCVS/StatSVN can now export XML. This enables you to create new applications that use the computed data... why not whip up a cool dynamic web application? As a demo, I've imported the XML in ASP.NET and used the Open Flash Chart control we've blogged about in the past.

pie

4) Up for a challenge?

Subversion supports move operations and CVS doesn't. While developing StatSVN, we decided we'd treat moves as a delete-add sequence, for simplicity's sake. However, this does generate inaccurate statistics. If you're in for a challenge, you could tackle this StatSVN enhancement. We prototyped something in the past, but it ended up being too slow for production use.

 

A few links

 

Conclusion

Even though StatSVN/StatCVS are Java-based and most of our readers operate in the .NET space, the application itself is platform independent. Personally, I enjoy loading up a recent version of Eclipse and working in Java once in a while because it helps me observe the best in both worlds. I much prefer coding in C# because of the easier string manipulation and the fact that everything is an object so you don't have to explicitly create an Integer object from your int to insert it into a collection. However, when working in VS.NET, I dearly miss the automatic incremental compilation feature that Eclipse runs when you save a file. 

kick it on DotNetKicks.com


Scripting an ASP.NET installation in Win2k3

clock March 27, 2008 08:26 by author JKealey

A month ago, I posted an article on a few console commands for managing ASP.NET applications and IIS. In the weeks that followed, I was contacted by my old friends at iWeb Technologies to help them automate their ASP.NET setup. I spent a couple hours creating the required scripts and I thought I'd post my real world example here!

By the way, iWeb is an exceptional web hoster (1TB of space, unmetered traffic, unlimited domains, $3 a month, and excellent technical support; what more could a web developer want?). I've been with them for nine years already!

Scripting the creation of a new website and configuring it for ASP.NET

Task: Given a domain name (lavablast.com) and a network/local path (\\fileserver\hosting\www.lavablast.com\web\ or c:\inetpub\wwwroot\www.lavablast.com\web\), setup IIS so that ASP.NET works on the root of the domain.

  1. Create an application pool
  2. Create a web site and associate it to the application pool
  3. Ensure both that the www subdomain works (www.lavablast.com and lavablast.com should load this website)
  4. Enable ASP.NET v2.0 on this website.
  5. Give ASP.NET read/write access to the folder.
  6. Add default.aspx to the default documents.

 

I ended up using the ADSUTIL.VBS script for most of these tasks. I used the iisweb command to create the web application, but it doesn't support network paths. I create it using a temp local path and end up using adsutil to change it to a network path. 

My googling skills are what made this task so short. Here are some of my references:

Finally, the IISBatchUtils collection of scripts provided the most help. Here's why. 

I have created batch files to make adding new websites to the server very quick and easy. The only tricky part about setting up new websites from batch file (or the command line) is that Microsoft's ADSUTL utility does not correctly add host headers like it says it does- rather than appending the new headers, it blindly sticks them in and possibly covers existing host headers that might already be set up.

I used both the original adsutil, Josh's modified adsutil, and some of his code to extract the site id from the IIS Metabase by using the site name.

The script

See the actual script for the variable definitions.

:Create
REM Step 1 - Create Application Pool
CSCRIPT //nologo %IWEB_ADSUTIL% CREATE w3svc/AppPools/%IWEB_DOMAIN% IIsApplicationPool
 
REM Step 2 - Create WebServer
iisweb /create %TEMP% %IWEB_DOMAIN% /d %IWEB_DOMAIN% /ap %IWEB_DOMAIN%
 
REM Step 3- Find new SiteID for further scripting. 
cscript //nologo iisbatchutils/translate.js "%IWEB_DOMAIN%" > siteid.txt
for /f %%I in (siteid.txt) do SET IWEB_SITEID=%%I
 
REM Step 4 - Add www. to site URL - uses their own custom adsutil because of bug in the normal one. 
cscript %IWEB_ADSUTIL2% append w3svc/%IWEB_SITEID%/serverbindings ":80:www.%IWEB_DOMAIN%"
 
REM Step 5 - set various website permissions. 
cscript //nologo %IWEB_ADSUTIL% set w3svc/%IWEB_SITEID%/accessread "true"
cscript //nologo %IWEB_ADSUTIL% set w3svc/%IWEB_SITEID%/accesswrite "true"
cscript //nologo %IWEB_ADSUTIL% set w3svc/%IWEB_SITEID%/root/AppFriendlyName %IWEB_DOMAIN%
cscript //nologo %IWEB_ADSUTIL% set w3svc/%IWEB_SITEID%/root/path %IWEB_Path%
cscript //nologo %IWEB_ADSUTIL% set w3svc/%IWEB_SITEID%/root/DefaultDoc Default.htm,Default.asp,index.htm,Default.aspx,index.asp,index.html
 
REM Step 6 - Cleanup
del siteid.txt
 
GOTO End

 

What about setting up IIS to use ASP.NET v2.0?

I did find a link showing me how to change the ASP.NET version from v1.1 to v2.0 using regiis, but later discovered that this stopped & restarted all websites... something catastrophic to do in a production environment. All the hosted websites (not only the new one) would lose their session state, for example. Fortunately, I found that you can change the root website and any new websites created afterwards will inherit the default ASP.NET version. Run the following once:

@echo off
echo WARNING: THIS WILL CHANGE THE DEFAULT ASP.NET VERSION FOR ALL NEW SITES TO V2.0
pause
 
REM will propagate to new sites. 
%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis -sn W3SVC/
 
REM does not propagate
REM cscript %IWEB_ADSUTIL% set w3svc/accessread "true"
REM cscript %IWEB_ADSUTIL% set w3svc/accesswrite "true"

 

Scripting the deletion of a website

Deletion is much simpler, as you can see below.

 

:Delete
iisweb /delete %IWEB_DOMAIN%
CSCRIPT //nologo %IWEB_ADSUTIL% DELETE w3svc/AppPools/%IWEB_DOMAIN%
 
GOTO End

Conclusion

I had a fun time perfecting my scripting skills while creating a concrete example that solves someone's problem. I discovered that the devil is in the details, but that numerous people have worked on similar problems in the past. I ended up creating another script which runs this one numerous times, according to actions found in a local text file. Simply put, iWeb's PHP system appends operations to a file (create this site, delete that one, create this other site) and mine performs the operation and empties the task list. That way, the script can be run periodically and all the PHP coders need to do is append to a particular file.  

Download the code.

kick it on DotNetKicks.com



Software Startup Lessons (Part 3) - Marketing, Sales & Growth

clock March 25, 2008 08:11 by author JKealey

We invite you to read Part 1 and Part 2 if you haven't done this already. A few days ago, Paul Graham had the following to say about our type of startup:

In an essay I wrote a couple years ago I advised graduating seniors to work for a couple years for another company before starting their own. I'd modify that now. Work for another company if you want to, but only for a small one, and if you want to start your own startup, go ahead.


The reason I suggested college graduates not start startups immediately was that I felt most would fail. And they will. But ambitious programmers are better off doing their own thing and failing than going to work at a big company. Certainly they'll learn more. They might even be better off financially. A lot of people in their early twenties get into debt, because their expenses grow even faster than the salary that seemed so high when they left school. At least if you start a startup and fail your net worth will be zero rather than negative.

Paul Graham

Lesson 10) Listen to your customers

screaming customers Some recent blog posts loudly taunt readers with titles such as I Repeat: Do Not Listen to Your Users. Of course, this is all just a blogging strategy as the end message is simply to spy on users to learn what they are doing with your software, not just listening to what they say they're doing.

Founders At Work informs us that a critical lesson when starting your own software company is to obey your customers, not your thick 75 page business plan. If they repeatedly ask for a module which you didn't plan for, and they're offering you money to build it, do it. It is not uncommon to read about companies starting out with a particular vision, building some internal tools to help them produce the target software, and ending up selling those internal tools instead. The original vision died, but they still built a successful company by being flexible and re-orienting their strategy depending on what the market dictated.

We lived this lesson first hand because our website was visited every day by independent store owners, looking for a particular piece of software. Even if they saw it was a solution for franchisors, they contacted us, wanting to purchase the software. We initially declined, but after thinking it through, we launched a side product targeted at independent stores. For our company, it's easy to spin-off products to target retail stores by cutting off all the integration built into FranchiseBlast. In our eyes, the product doesn't have the same value but, outside of the context of a franchise, it is a viable option.  Who knows, we may branch into software for independent retailers in the coming years (but I prefer our niche :) ) For now, it's a simple sideline to fund our core development. We also confirm the fact that it takes three times as long to develop a product as it does to create it for a single customer.

Furthermore, because we're self-funded, I feel we have a competitive advantage over our VC-funded competition. Our competitors want to skip the flat part of the growth phase and jump directly into the areas of highest ROI. Generally, this means developing one-size fits all software with (if you're lucky) tons of configuration options. We're not attacking the problem in the same way because we're building our architecture organically, refactoring when necessary. In the end, we don't tack on features, we analyze franchisor business processes and produce good solutions for them (both from an engineering perspective and a customer satisfaction perspective). This added personalized touch and desire to adapt to their operating environment is our competitive advantage.

Lesson 11) Software Sales

Because we're a small startup lead by developers, and because we think it's good for us, our developers do a little bit of everything which includes helping out with software sales and marketing. One of our partners is our salesman for the larger projects, but we're still actively involved. We've launched a small software product as a sideline because we had been getting inquiries for it on a weekly basis. It's something we already had and could launch without taking precious resources away from our main focus.

Here are some of our conclusions, from our perspective. Simply put, put yourself in a position where people want to purchase something from you as soon as possible.

Pushing your product is very hard.

Sending emails to potential customers: this generally does not work. We never send out mass mailings; we've spent a few dozen hours navigating hundreds of franchisor websites and picked half a dozen that we feel we could truly help. The experience was enlightening because we could extract patterns from the our potential clients' websites. However, in 2008, getting replies for an email is much harder than it was a decade ago when we first started our web design business. Spam has ruined email for people like us who take the time to write precise, customized emails. Back then, people didn't get that many emails and took the time to reply. Today, most people don't take the time to reply.

Cold calling is an arduous task and although the return on investment varies per product and industry, it is an essential part of business. Anyone can do the job but even professionals find it hard on one's self-esteem. Persistence is key.  For more tips, read this article

The long tail effect is very real, people come to us.

An insightful (and motivating) book is Chris Anderson's The Long Tail. To summarize the book in a sentence relevant to this section, given the negligible stocking/distribution costs of software and the ease of which we can search through the very large selection of different software which can be found on the Internet, it is now possible to create profitable businesses by developing software that targets a very precise niche. Simply put, create quality software that solves a particular niche's problem and people will find you, thanks to the Internet. We've experienced this first hand and confirm it is true.

Reality is a bit more complex than a simple if you build it, they will come, because you need to need to know your niche, work on marketing, getting in the search engines, figuring out the right price, etc. A more precise (yet recursive) statement would be if you build and promote something worth buying, they will buy it. In any case, in our first year, we reinforced our preconception that it is much easier to sell software to someone who comes to you than it is to push your software to someone who's not interested.

Karma: the simple solution for software engineers

Work hard and build a quality product. Assuming you are working on something with a reasonably sound business model, you're number one priority should be your product. There are lots of things to think of concerning marketing and sales, and you'll slowly learn to understand them if you have an open mind. In most contexts, writing good software is much more difficult than learning the ground rules of marketing and sales. Work hard, be honest, be open minded, and good things will happen. (Also, keep an eye out for the many people who don't follow these rules and try to screw you! :))

Lesson 12) Finding Other People

Running your own business is all about contacts (pretty much anything is!). At some point or another, you'll need to hire someone, partner with other companies, and find people to sell your product or services to. The more people you know, the better it is. You need to know people (and people need to know you) to be able to grow. We spent the biggest part of our first year working hard, undercover, and this was one of our mistakes. We weren't really trying to be undercover, but we weren't doing anything for people to know we existed. It took us a while to bother throwing our website online because we were so busy with our projects. Bad decision. The sooner your website is online explaining what you do, the sooner it gets on Google and the sooner people start finding you. Today, our blog (even if our readership is limited) helps us find and collaborate with many other people. We weren't sure what to talk about at first (we still aren't!) but we're having tons of fun.

Coworking

image We just learned about Coworking last Friday and it's something really interesting!  Here is a quote from the Wikipedia entry that best describes what Coworking is:

"Coworking is an emerging trend for a new pattern for working. Typically work-at-home professionals or independent contractors or people who travel frequently end up working in an isolated way. Coworking is the social gathering of a group of people, who are still working independently, but who share values and who are are interested in the synergy that can happen from working with talented people in the same space."

We have been working from home for the past year and it can sometimes become difficult to spend your days alone.  We are communicating continuously inside the company, but sometimes you need to see people! Here in Montréal, we have Station-C that opened on February 4th 2008!  It is definitely not as expensive as renting your own office and you get to see more people right away, to exchange and make new friends.  When you work from home, the possibilities of making new friends at work are pretty limited even if you have 400 of them on Facebook!

Networking

Networking is definitely something every entrepreneur should develop.  Here in Montreal we have the JCCM (Jeune Chambre de Commerce de Montréal  / Young Chamber of Commerce of Montreal).  Software engineers are not renowned for their social skills, but we're still businessmen so we have to make new contacts and meet new people!  What is nice with the JCCM is that you can network with people who are in the same situation: they are starting new businesses and/or are working from home.  You can meet people that have the same problems as you do and can collaborate to help each other.  Furthermore, networking with people of the same age group may help you develop professional relationships that will last throughout your career. Networking is a crucial part of any business and can improve the way you solve problems because you know who to call when something happens. As with anything, finding a good balance is essential (you need to find more experienced mentors!).

Business Plan

Before launching our company, we worked on a short business case and participated in a Technology Venture Challenge. We didn't win, but it was a very beneficial experience because sitting down and thinking about what the hell you're trying to accomplish is a very rewarding process. We wrote the plan for ourselves, but we had the chance to talk to top technology entrepreneurs, investors, and business professionals.  They helped us drill down and learn our strengths and weaknesses. Recently, we wanted to repeat the process and found a local full-length business plan contest. Again, the contest is a simple external motivation to get things done by a particular date but we're doing it for ourselves. Hopefully we'll get to meet more interesting people and it will allow us to grow as businessmen. We strongly recommend writing a business plan, but only if you're going to do it right, for yourself. If you're going to botch the process, don't bother. The most valuable part is the forced introspection; if you skip that, you'll simply produce a useless 50 page document. 

Hiring

We expect hiring to be our next challenge and are very inspired by Joel Spolsky's book on hiring. We're not too sure how applicable his strategies are in the first years or when you're not located in a metropolis, but it is good to have something to aspire to.  We expect to grow the team at the end of the year, and we're already looking for great candidates. Interested? :)

 

Conclusion: Infinite Number of Lessons

We could ramble on and on about things we learned during our first year. Simply put, the number of lessons are infinite.  We did perfect our technical skills but we did most of our learning in other areas.

Here are some lessons we could have talked about but chose not to:

  • Keeping up to speed with technological changes
  • How automation/scripting helps you save time
  • Don't forget the legal issues! Contracts, open source licenses, copyright, trademarks, etc.
  • The importance of a great web hoster
  • Versatility is key

We may post other lessons in the future, but for now we plan on creating a few technical posts with sample code. Be sure to let us know what kind of posts you like to see on our blog!

kick it on DotNetKicks.com



Month List

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2017

Sign in