Agile software development



Need more sales?


I'll start with an important note about the relationship between software development and sales before we go on. Always keep this in mind or you will have a product but no customers afterwards!

Agile software development is - just like traditional software development - probably not a solution for sales problems in most cases - it may help to release software faster and to improve the overall quality of your software, but don't make the mistake to think that it will *directly* increase your sales.

I strongly believe that sales are affected to least 80% by the marketing, not by the software type, feature list or quality. The low software sales problem can generally not be addressed by adding more and more features to the software itself (well, we'll suppose that your software is not complete crap now), if your sales are lagging begind you'll have to kick your sales and marketing people's asses!

> Read the marketing pages on this site if you wish to increase your sales!.



How I would define the software requirements


I think that most companies make the mistake to start with the "technical" software requirements when a new project is being launched. Don't forget that the success of a project always depends on the end users and customers, and that technical features are not the only element that will convince them or make them happy.

Option A: you're developing a software you intend to market yourself


Here you have some advantages as this situation allows you to take control of everything. Inhouse software development should always begin with a vision. First you need a great idea, and that idea should be a consensus of 80% by marketing desires (what do we WANT to do?) and 20% by software possibilities (what CAN we do?). The goal is to find an idea that is a) compelling and attractive for end customers and unique (marketing approach - we want as many potential customers as possible) and b) easy to realize (the software approach - we want to be ready with our product within a few weeks or months).

For the marketing stuff I suggest to take a look at the marketing pages on this site, we'll mostly talk about the software development process here. The software goal is to offer a ready-to-use product within a few weeks, and this should never take more than 2 or 3 months. If you want to make sure that you can meet your shipping deadline, use agile methods and implement only what you really need. You may add tons of new and cool features later when your software is already running, what you need the most now is a working products that generated sales and money!

Option B: you're developing a software for someone else


Most software companies are developing programs for other companies and not for inhouse use or internet services they're running themselves. The problem here is that the customer will tell you what he wants (or you'll have to ask for the info at least), and in most cases the customer THINKS he knows what's really needed, but in fact he doesn't. And this is where the waterfall model can become very risky, as you're developing a giant software construct and I can tell you that in 90% of all cases the customer will NOT be completely happy with the result, even if you did your best to fulfill all of his dreams (in fact the major problems is that the customer was not able to interpret his dreams in the beginning, or he simply had the wrong dreams).

This is where agile development methods can help to get a LOT closer to the customers real needs, and the customer will be much happier because a) he gets his product much earlier, b) he will really get what he needs and c) the end product quality will be better than traditional software (and if the customer is really lucky it may even cost less).

Agile companies are more successful


As mentioned above the "design" of the software should be a mix and consensus of product ideas, marketing strategies and software limitations. If you take a look at really successful modern companies you will note that the managers in such a company are ALL leading ALL of these processes. That's what makes these companies so strong - the management can generate ideas, imagine what kind of marketing can make these ideas successful and it can estimate what's the amount of work required to meet the targets and detect possible future problems.

In traditional companies the management comes up with some kind of idea (without having a clue about how something like this can realized), the marketing guys try to make the idea compelling for the customers (by adding more features that will be hard to implement) and the developers will have to write the code in a timeframe they will never be able to meet, so they will be stressed and they already know from the start that they will be blamed for the inevitable problems. Furthermore, the management will later make changes to the idea, maybe the marketing guys didn't understand what the management wanted and the developers don't have a clue how the management wants feature X to look like.

As you can see it's the communication that's the problem in most traditional companies. Agile companies are generally small (5 to 20 employees) and they're really taking care that EVERYONE in the company has a minimum of knowledge in all areas: marketing, sales, development and support. And the key to success is to have a management made up of marketing and development pros - did you note that all successful startups are lead by managers that do the most important parts of BOTH software development AND marketing themselves?

> Read more about agile and virtual agile companies on this site.

Less is more


Now that you have your product idea AND you know how you intend to market it you can proceed to the design of your first software prototype. Having a clear marketing focus is very important here, as this will determine what kind of features shall be included in your first program version. If your marketing vision and sales plan* is not 99% clear you will automatically add too many features, implement things you won't need, and you will not be ready with a high quality product within the expected time frame.

The goal is to develop the software by implementing ONLY what's REALLY NEEDED, but deliver this in an excellent quality. By "only what's really needed" I mean those features that are required to make the software work for your target customers so that you can start making money with it.

Another reason not to implement everything in the first release version is the fact that you simply can't imaging today what your customers will need tomorrow. You will implement code that nobody will ever need, and you may forget the really important things. That's human nature, and you can't prevent mistakes. So wait for customer feedback, listen to your customer needs and make them happy by shipping what they dream of.

But be careful, quickly implementing customer wishes requires a solid software base if you don't want your entire project to end in pure chaos. Agile development does NOT mean "Cowboy Coding" where you rapidly write some code and inject it randomly somewhere into your exisitng code base. Agile development means taking care about the details, try to take small steps, take them carefully, think before you act - but as soon as you're really sure what has to be done, do it and ship it to the customer. You will see that you will progress faster this way.

*) the sales are, of course, unpredictable, so I suggest to use an "agile" or "flexible" sales plan, but you should at least have a small idea how much of what you intend to sell, as this will also greatly influence your marketing approach.

Next page, please!


Read the next page to learn about the different agile principles


(c)1996-2010 Jos Kirps | All rights reserved | Privacy Policy | Site Map | Rate this site

Jos Kirps

About me
Blog
Contact
Important Stuff

Software Projects

CorneliOS WebOS
Joopita
Galaxiki
OLMO CMS
CIOS framework
OLEFA / AFELO

Music & Movies

Recording Studio
Cover Artwork
Pagan Lorn
Stag Wards

Manifests

Agile Development
Education
Marketing

Cool Stuff

Agile Development
Books
Marketing
Music
Movies
Physics
Technology
Various

Blog

Recent Posts
Progress report
CorneliOS BETA 1 available now
CorneliOS/CIOS strategy update
New Desdemonia website online
First proton beam collisions at the LHC

Last comments
Does it really matter where in Russia it is l...
Madonna sold 232 million albums and 150 milli...
Usually, CPAN install of DBD::mysql fails bec...
@ GG Make sure you've got XCODE dev tools ...
Very cool computers. Especially the Chip (ARM...

Categories
science
astronomy
music
movies
software
hardware
marketing
private

Archives
August 2010
July 2010
June 2010
more archives...

AddThis Social Bookmark Button
home page