Why in-house development never works

So your company is starting a new project and you need a piece of software. There are similar third party apps out there but they don't do exactly what you need. Custom Software Development

So what do you do? Develop a new one in-house right? DON'T!

All software needs to develop over time, much like business or science, not only because the demands on them change but because the users change. As the world moves forward people learn new things and develop, if your app, tool, function or software does not it will become less usable even if it still performs the necessary function.

Third party developers work full time to make sure their software is good. Your in-house team does not. If you're lucky or experienced enough to know that everything has to be updated from time to time you'll schedule development time from time to time to update your app. But it's still lagging behind the third party version. It might do exactly what you need, but that need will probably change faster than your app is updated.

Many companies grow into this problem and than takes it to it's logical extreme. Make the team a dedicated department of your company.

But now you've basically created a company. And this team will get more and more out of touch with the goals and difficulties of the original company. Not to mention that to grow they'll need to meet demands from outside the parent company.

There is another way to do it. Use third party apps. If the software takes over a function in your company, so that you can't change it, you were in a lot of trouble before the software fails you anyway.

UPDATE: After some constructive criticism from  Christopher McCann I'm forced to admit that the post is rather Utopian since it depends on not having to replace legacy systems that already lock you in to a certain way to handle data. I still prefer the idea that data should be more important than system, but it is Utopian, anyway thanks Christopher!

UPDATE2: After even more criticism, this time from Magnus Engdal, I must concede the point that while my slightly Utopian post might be true for LAMP software it doesn't really work for MS systems because of the size of the community and availability of solutions.

Mac developers as secretive as Apple

Regardless of what OS you like it really is the applications that make up most of your experience on a computer. Some applications become iconic to the platform they are built for becoming inseparable from the experience. And when they disappear, the platform trembles. My recent move from Windows to Os X has made me realize that Apple's insistence on aesthetic applications from developers really does make an impact for the end user.

Which is why it saddens me when my two favorite developers Atebits and Cultured Code, makers of Tweetie and Things respectively, both have disappeared from they're online homes.

They are still there, small updates trickle out. But from the devs themselves there is not a sound to be heard. The last post on the Atebits blog was in November, Cultured Code hasn't let out a peep since September.

They seem to have learned the same secretive style that Apple is so famous for. But for small application developers this can be a fatal tactic.

Delivering perfect polished updates to any product is every developers dream. But we all know from the large hulking creations of larger development companies that this strategy is flawed. Without releasing updates consistently to the end user you might be heading in the wrong direction without ever knowing it.

If the web in the last few years has taught us anything, it is that focus and communication is key to any feature. Twitter is more focused than Buzz, Google Apps  have a constant stream of features being tested compared to the take it or leave it strategy of MS Outlook.

So please Apple developers, don't hide behind a wall like Apple does. Come out and talk to us, what are you  working on? How is it progressing?

When you're releasing updates to each physical product every 18 months you might need to work in secret silence. But when you're creating a better Twitter app, you can at least let your waiting fans know how it's going.

The Prestige Problem

Prestige is usually a problem in organizations and development alike. People with too much prestige become complacent some of the time and obstacles for the organization, most often this happens not on purpose but because of the real prestige the individual has earned over years of work.

Because of this problem many companies and developers strive for prestigeless workspaces. They ask for prestigeless applicants and so forth. But this attitude lacks a basic understanding of prestige.

Prestige is a cultural gauge which we use to measure ourselves with. If you as an individual do good things and make good things happen you usually acquire prestige from your surrounding social circle (whether privately or professionally). But if you perform poorly or bring about negative effects you usually lose prestige.

While this system is far from perfect (a single mistake might wipe you out) and for form fair (seeming to deliver gives as much prestige as actually delivering, presuming you can keep the facade up) it is still a social system all organizations should be aware of. No one can be completely free from prestige. And they should not either.

Prestige is usually the most direct form of reward individuals can see as a result of their work.

But we also need to be really wary of prestige, it can lead to horrible evils in any organization. Perhaps it might help if we start thinking about prestige as something less durable. What do you think?

The Genuine Man

The marketplace has changed radically in the past 5-10 years. All of a sudden we find ourselves in the middle of crashing multinational corporations that aren't as flexible or personal as smaller firms. The shift that has happened is a shift towards quality. Consumers today look for genuine experiences. Genuine products from genuine companies with individuals working for them, not the grey wall of suits in the giant corporations of the 80's and 90's.

But this shift has missed a small but vital point in itself. If we all look for genuine content for our lives, and that content is provided to us in genuine, but still, designed ways. Doesn't that make us anything but genuine?

In persuing the genuine experience are we trying to be genuine ourselves and if so, what does that really mean?

How can a person be genuine? Or better yet, how can a person not be genuine? Finding genuine experiences and genuine products might actually be helping in becoming more genuine people. More individual, with more specialized products. Only consuming what we really want to and not following exclusively the main stream of content.

This is a huge problem for companies today as everything from entertainment to basic services strive to be more genuine and personal without loosing it's cost efficiency. This is especially interesting for game developers as all games are crafts of art and love. There are no non genuine parts of a game. So we could, theoretically, make the entire process of creating a game, selling the game and living with the game a genuine experience available for the consumers.

But how could we do this? Well, what is a genuine experience? Creating a genuine experience is hard no doubts, and this is just a theory of mine. But let's begin with making customers part of the process from the start. Customers could be allowed to invest in the process and through investment get discounts on the finished product as well as more information about the development process such as developer commentaries, alpha footage and maybe even product testing. How much disclose is already a very fine balance and selling the information to the customers would make it even more so. But it would help keep development agile and make the product as well as the development a lot more genuine.

The product itself is actually the simplest step to make more genuine. Simply replace the word product with experience and rethink it. Very few products sold today are simply products made to used and thrown away.  Start thinking about your products as experiences for the user and a completely new dimension for sales and value becomes visible. Does a player want to pay for content? Yes. Does it need to be large expensive expansion packs of ontent? No.

There are of course an infinite amount of possibility to what we can do to improve the genuine emotional impact of our products and services. But taking the first step and doing anything at all is really the hardest part.

Welcome the genuine consumer into the marketplace and start your company on becoming more genuine today. Shift happens, either we lead that shift or we're left behind by it.