June 10, 2009

Developers live in a black box

One of the things I find most frustrating as a developer is that the people you do work for, be they clients or groups within your own company, have no idea what it is you really do. All they know is they want the final product and they want it to change their lives or make them money and they want it done tomorrow. 

This was highlighted to me today by a recent case of "but the kid next door can do it in 2 days for $100, why's it taking the other guy 3 months and $5000". We've all heard this a million times though fortunately has moved development beyond just html/css coding, it happens much less frequently. 

Here's the scenario as it went down. One company contracts out another to make an iPhone app for them. The contractor says it will take 2 weeks to do the development. The company hear's "it will be done in 2 weeks" and closed their ears to the part where the developer said "2 weeks to do – once all the planning is finalized". Three months later the company has finally managed to get all the approvals, decisions, wireframes and designs done and then wonders why it's taken so long. Meanwhile, a contractor has to move on to other projects and start their two weeks development in the next available block of time.

This is all fine, it's the normal state of things, the company with the idea never allows for the time it takes to develop that idea and put a focused plan on paper. Helping them do that is part of the developer's job. What really steams me is when "the kids next door" send an email saying, "hey we'll do your iPhone app for free if you give us x (whatver your company offers) in exchange and we'll do it in a week, we just want the exposure and access to x". Actually this part doesn't even cheese me as much as when the company turns around and says, if they can do it in a week, why has it taken our guy 3 months?

Reality check time. The folks doing it for free stand a good chance of not getting it done in the timeframe they say and they certainly aren't going to help you out when they give you a half-baked product full of bugs. They'll whip out the barebones requirements on their terms. They aren't working to serve your company's needs, they are working to serve their own. They want to be able to say "we've worked with brand y so you should hire us too!"  

I don't neccesarily think the idiom that "you get what you pay" for holds true for software development, but rather I think it's a lack of understanding about what developer's do and the relationship required between both parties. I also understand that often it's the developer's job to help the client understand what it is they do, but on small jobs (under $10k by my definition) there just isn't much time/money there to focus on this. You really ned to get in, get the work done and get out in order to be profitable.

For me the biggest challenge is often convincing the people I'm working with of the importance of project management, documentation and good communication strategies. Too often these things are seen as costly and time consuming. 

To you developers, I ask, how do you try and break out of your black box and explain to people what you do?

May 20, 2009

Why not an all Flash site?

I received an email today from a member of the FITC Community asking about our choice of Ning as the platform over something that was Flash based. Here's the email I received:

Question: The choice of Ning for a Flash based community seems kinda bass-acwards to me. It's maybe the best of the 2.0 Social web XHTML technology and it's an immense resource for the group but it's not a Flash site at all?
I suspect the choice was made because of the lack of any other Flash based option with these features BUT I am really curious about your thoughts and I would deeply respect and appreciate any insight you could give me on providing an alternative to Ning within a Flash ecosystem worthy of FITC.

The choice of Ning really had nothing to do with whether it used Flash or not. Our own site that we just relaunched before FITC Toronto only has a minimal amount of Flash on it and makes use of other technologies like AJAX and jQuery as well. We've had this debate with our user group over the years, whether a Flash user group should have a Flash based site. The reality is that after much experimentation, doing things like blogs and forums in Flash simply doesn't make sense. The text based model of html and css is much more suited to these sorts of applications. 

At the end of the day, Ning provides a very full suite of tools for building a community site and with their update to allow us to add applications to the group pages rather than just the user pages we can now build our own Flash widgets to use on the site if we find the need. Honestly, I think even if a Flash option did exist we wouldn't choose it. It would have to REALLY take into consideration accessibility and searchability issues, make sure each and every view could be deep-linked, etc. 

Not only do I not think Flash is right tool for this sort of task, but FITC has come to be about so much more than Flash that we really feel no need to force it down people's throats. Yes we focus on Flash, but we also try and give people the big picture of what's going on around them. We even had a Silverlight session when it first came out :)

Use the right tool for the job at hand.

April 8, 2009

Flash community set to weather the storm

At FITC Amsterdam Julie Campagna from the Adobe Edge newsletter was there to shoot a video and decided to guage how the economy has affected Flash designers and developers. The overwhelming response was that things are alright. Some people have seen a bit of a slow down, but others are on track or doing even better.

During the March FlashinTO Gathering, we posed this same question to a panel and Hugh Elliott said Flash is the best thing to be doing right now because everyone always wants banner ads. While banner ads won't support us all, there's definitely truth in this. Web based marketing has traditionally been a little more affordable and it certainly enables you to reach a targeted audience that's more likely to spend on your product/service even when money's tight. (I'm hoping to get the videos from this Gathering online soon).

Even struggling businesses such as the newspaper industry know that the web is their strongest chance of survivial. Witness today's announcement that popular Toronto blog, Torontoist has recently spun off into a new company thanks to investment money from three independant investors. Clearly online is the future of journalism for professionals and citizens. 

Watch the Adobe Edge video

March 9, 2009

Free apps are not the future

I'm a little late picking this up. Probably because I was in Amsterdam at the time. 37Signals' Jason Fired opened up the Future of Web Apps conference by talking about how the future of web applications will be about paying to use them.

Here's the source for this story on CNET: http://news.cnet.com/8301-13515_3-10170665-26.html

I couldn't agree more. Believing that there is enough advertising out there to support all these web applications is naive at best. I'm inclined to think that leaving advertising out of applications would leave more in the pot for websites that desperately need the ad money and will most likely always continue to be free. 

The model 37Signals has built is one I've always been a big fan of – and wish my old company had thought of many years ago as we might have done much better with some of the apps we were working on at the time. The idea of offering a functional, but very limited free version is so good for sucking people in. In fact it's worked on me with both BaseCamp and Backpack. I've since replace BaseCamp with Project Tracker and Backpack with Google Docs, but I did use both for many months and were I still freelancing would likely use BaseCamp.

A number of successful companies have adopted this approach. Most recently I tried out free versions of SpringLoops and BeanStalk, both are SVN hosting services. After setting up a project on each I decided to stick with SpringLoops. I use a free account for some personal stuff, but recently signed up to a mid-tier subscription service for use at work.

I'm not sure content based sites will ever be able to make money on anything but advertising, nor do they even want to charge the end user really. Ad money makes sense. But for a well developed service or application I think asking for money is completely fair. Perhaps we've only touched on this even. There are probably other workable models too, pay-for-use, pay-for-output, pay-for-cpu time? For high quality applications I think any of those approaches could work.

The "everything on the Internet is free" meme has to die eventually. It simply isn't sustainable. Open source developers all know this. This is why all the major open source projects also offer paid support or additional services based around the project. Downloading music and movies and TV for free can't last. This things all cost substantial amounts of money to produce and the people making them deserve to be paid. This is where I think the Internet wins. The creators can reap the majority of the wealth from their efforts, no longer requiring complex and costly distribution networks. And just like these more traditional media, cloud based applications will also need to tap into the user's wallet to sustain themselves. The difference now is that by eliminating the distribution channels, the creator can make more money but charge less for the product at the same time due to easy access to a global audience.

The final piece is where things get cyclical and sustainable for the web as a whole. Paid apps and services need to market themselves. Spend those marketing dollars on ad based websites. It's that easy. Now free content and paid services are supporting each other through completely different means but don't require much outside help. 

All this ties back to the game industry of course. These guys have been there and done that, even if they don't always realize it themselves. Text based MUDS like Achaea by Iron Realms have been doing micro-transactions for in-game items and benefits for eons and are still operating as very successful businesses. We aren't talking about the kind of money that WoW pulls in but it is definitely sustainable and profitable. EA is moving to an online model with Battlefield Heroes. Other smaller MMORPG's have also been very successful with varying payment models. The point is, you don't have to be huge to be a success. Small, efficient teams that make a good product can definitely pay the bills and even make some money to invest in other projects. It is possible to find enough people to keep a well thought out service going.

As always, this got a little more in-depth than I'd planned but I think this is a discussion that's worth having.

 

 

 

 

 

March 2, 2009

Some session notes from FITC Amsterdam 2009

 

As per usual, I didn't get to see many of the sessions at FITC Amsterdam this year. In fact I only saw four of them. Fortunately all four were amazing! Ralph Hauwert pulled off another top notch presentation. His real strength is showing his thought process and reasoning from the beginning of an idea through to it's final execution. In this case it was the build-up to the Flash Player 10 version of Papervision3D. Starting with some basic experiments in Actionscript through to the process of determining where the strengths of Pixel Bender and Alchemy were and how they could be applied to 3D processing. All this culminates in a brand new release of Papervision3D targeted at FP10 that is capable of rendering tens of thousands of polygons or as Ralph showed in another demo, putting half a million particles on screen.

Balazs Serenyi showed us Sourcebinder, a project he and his team at Visual Minds have been working on. I remember the first version of this I saw was extremely interesting, but man have they ever taken it along way since I first invited them to FITC. Sourcebinder is a visual, node based development environment for rapid prototyping of Flash applications. With nodes already written for nearly every major API you can think of, this thing is pretty powerful. The two use cases I see for Sourcebinder are the rapid prototyping of both commercial and art projects, but also for teaching students. Seeing quick results is really important in teaching something new. This is why we all write a "Hello World" app when we start out. You see the results of your code on screen with a high degree of immediacy and that is rewarding and encourages you to do more. Sourcebinder let's you take extremely complex ideas and quickly get a result in real-time while masking the complexity of the various pieces of the project. Even better, the source code of your project is highly organized and is a great starting point to take the idea to production.

Jared Ficklin has been talking about sound in Flash for awhile and it shows. He gave a really well polished and high energy session on using mic activity level and computeSpectrum to visualize sound. What's unique about his approach is his real world sound visualizations that help you understand what's going on. On stage he had a giant vortex cannon made out of a trash bin and a tube full of styrofoam particles, both of which make seeing air movement and sound waves easy. He also showed videos of his fire based visualizers, a Reuben's Tube and a flame table. If you are coming to FITC Toronto, expect to see these things in action at one of the parties or another event just for the fire. It's hard not to love a presentation that has the presenter dancing around on stage.

The session that touched me the most was Keith Peters' on the Art From Code. Not much fancy here, basic black text on white background for slides, occasionally complimented by some of his work, but the content was great. One of the things Keith was really driving home was how important it is to be able to code without obstruction. He's at a point where he simply sits down and his ideas flow out his fingers. He stressed knowing your IDE of choice and your language of choice really well so that they don't hinder you. For experiments he is big on using just the Flash environment since it let's him get results with the most immediacy. This really hit home for me. I work this way with ColdFusion. Not exactly a sexy language like it's flashy cousin Actionscript 3. I can just write code without thinking. My IDE suites my style well and I know 90% of the language without a conscious thought. I want to be this way with Actionscript. I know it fairly well and can do complex things with it, but it doesn't just flow. I have to spend a lot of time looking up API's and sometimes even syntax or structure. It isn't a natural experience for me…yet. I think I want to focus on making this happen this year. I finally have some project ideas I want to take on and I'm hoping this will help me get up to speed so I can code my thoughts directly.

I truly wish I'd been able to catch more sessions, but hopefully I can catch some more in Toronto in April. Should be good. In the meantime, I think I'm going to dig into Sourcebinder and do a presentation on it at FlashinTO this month. I want to show it to some of the teachers and see what they think about it as a learning tool, or even for rapid prototyping of interactive projects.