Sunday, October 01, 2006

Developing Software Product vs Custom solution.. some random thoughts


Of late I have been thinking about this a lot. How is developing a software product different from building a custom solution. And quite often indulge into casual discussions with some of my friends out here in Singapore. I was thinking of putting together a well-structured elaborate post on this topic, but seems that it would take a while for me to sit down and collate all my learnings, discussions and thoughts on this. For now just thought of putting up random thoughts on this topic.

First of all let me put on the table, what I mean by Software product and custom solution. By software product I mean those set of software, which are build to sell off the shelf. These are the software, which are NOT developed for any specific customer, but for general use. Of course this software comes with various features and functionalities out of box and there are some points of extension and customization. The software product is installed or setup or implemented by the customer to address their specific business or personal need. There are tons of ways to classify the software product but the details are outside the scope of this post. But the basic principle of software product or to that matter any product is that it is meant for a particular community and not a specific customer. Needless to give the examples but nevertheless here are few: Microsoft Office, Acrobat Reader, Oracle database 10g etc

The other category is what I call custom solutions or custom software solution to be precise. By this I mean the software build to address a custom need. This solution is targeted for one particular customer or a particular requirement or a specific business processes. The software (or the solution) is not build to sell of-the-shelf. Even maintaining existing enterprise applications and enhancing them falls under custom solutions. A custom solution could be one build from scratch like a Web Based Budgeting and Reporting solution build using Java and HTML technology. Or it could be extending the functionality of standard applications by adding necessary customization.

I do acknowledge that there is no easy way to classify all that is happening in the software world into these two categories.  There are some things, which are in the boundary and don’t really fall straight in to one of this category. We keep hearing things like frameworks or blue prints, which are sold commercially these days. These frameworks are in turn used to develop custom solutions around it. So where do they fall? Similarly there are offerings forms Google like Gmail, or Clendar or to that matter any web service, which is out there in Internet. Should we call it a software product or a custom solution? Lets us keep ourselves away for all these debates.

Getting back to the main idea of the post: how does developing a software product differ from a custom solution.

Developing a software product according to me is:
  • More organized and planned engagement.

  • Lot of planning goes before embarking the actual development.

  • There is lot study done in terms of gathering the requirement.

  • Things like Focus group and user community are foundation for this product

  • Involves Studying features and functionalities of other competitive products in market.

  • Most of the time, a prototype or a proof of concept precedes the actual development

  • There is lot of flexibility while developing the software product it terms of choosing the technology, etc.

  • The teams are relatively bigger. Flexibility for the a developer to be focused on particular module or set of module

  • The quality process is more elaborate. Lot of testing both internal and external is done

  • API and maintaining reusable components libraries is critical

  • Wide adoption of software best practices and better design principles

  • Bug fixing and support is more comprehensive

  • Licensing and software delivery are important consideration

  • Software packaging and installation mechanism are important component

  • Change control is ubiquitous

  • System design documents are user manuals are of good quality. Also the documents are constantly maintained with the new release of software product.

On the other side developing a custom solution is:
  • Planning process is not very elaborate

  • Studying of requirement is not very comprehensive. At times requirement gathering processes continues long after the actual software development has started.

  • The scope of the solution at times is not well defined

  • Prototypes or proof of concepts is not that frequent.

  • In terms of choosing the technology or tools the decision has already been taken by the customer or the during the presales exercise

  • The teams are relatively smaller with one person playing multiple roles at times.

  • API and maintaining reusable components is not that critical if the custom solution is relatively small.

  • In larger solutions there is proper bug fixing setup. However for the smaller solution the bug fixing and patching is very adhoc

  • Licensing is not of that grave importance. However there is lot to deal with in terms of SLA (Service level Agreement) while delivering a custom solution.

  • Software packaging and installation mechanism are not of significant unless the solution is build for large user base, which needs to install the software on their PC.

  • Change control in place for most medium and large-scale custom solution.

  • Design documents are part of any custom solution project however at times these documents are not maintained with the new releases or the changes in the existing release.

All said, the above does not always stand true. With the smaller software product developed with Agile methodologies do forego some of the items mentioned in the software product development. Similarly with the large custom solution developed under a strict quality process does follow lot of the items in the software product development

26 comments:

Abhinav said...

Good analysis!

Andrew said...

Your blog is worth bookmarketing, and I'm going to let some of my marketing partners know about your useful resource. Discover how 2 top affiliate marketers lay out entire affiliate marketing systems and reveal all their short cuts, proven tactics, success stories, and guarded secrets, so you too can start to earn jumbo-size affiliate checks home based business

Tango Boy said...

I appriciate your analysis. I was going to do same but just gave a thought to google it. You have covered most topics and put down in nice language.

Congrats, Good work.

vishnuprasath said...

We are experts in the field of web designing with latest tools, technology and people with the right skill sets.
We develop static as well as data enabled dynamic web sites with flash developed by our own multimedia division.

houston Kenna said...

hi,
i just wanted to say how much i enjoy reading your blog. in a world full of spin, it's nice to get some fact-based analysis.
keep up the good work.
POP Displays

Palani said...

My cousin recommended this blog and she was totally right keep up the fantastic work!
software product engineering

viji said...

Wonderful blog & good post.Its really helpful for me, awaiting for more new post. Keep Blogging!


Software Product Development

ranjini said...

Great thoughts you got there, believe I may possibly try just some of it throughout my daily life.


Software Product Development

shree nath said...

his is an excellent post. I learned a lot about what you talking about. Not sure if I agree with you completely though
web hosting

Jordan Mallory said...
This comment has been removed by the author.
Jordan Mallory said...

It is important when developing a new product to do research on Custom Product Development ideas. This can help people educate themselves on how innovators and businesses spread product ideas that can help a concept make it to the market.

Kumar Anil said...

I was looking for something like this and I am so glad that I finally found it.
Thanks...
Computer Software System

John Dudley said...

Acetech who have been one of the leading software development company in Delhi giving creative custom software development to meet interesting business challenges for the absolute most distinguished organizations and associations in the country.

Andrew Anderson said...

Companies rely on Latitude 40 Consulting to help them realize their business goals with quality custom software built just for them. We help enterprises make the most of their investments by using best-practices methodology to tailor comprehensive business solutions – solutions that can grow as you grow and change as the business changes… without costly re-engineering. This provide maximum return on investment for your custom software investment dollar.
Custom software development

Raj Solanki said...

Just the right and informative post to read. Thanks for sharing the informative post.
Software Development Company in Indore

Cms vggroups said...

Hi! I have 1.5 years experience. I search in Google so Many Websites & Blog but you’re blog and post really is too good its title, description, images your content style is really good and I feel glad when post read Custom Software Application Development

Srinadh said...

A smallish campaign with a homemade list would not be likely to yield much of a result. To achieve anything worthwhile, a much more aggressive effort is needed. Then, the age-old value analysis applies: projected earnings = margin on total projected sales - cost of campaign.

Bhavesh Kavad said...

Thanks for sharing such a useful and informative post.

ASP.NET Company India

Harshad Patel said...

Good information thanks a lot and keep doing this kind of posts.Software development company india

Web Development Company Toronto said...

Thanks fro sharing this useful post about custom app development.
This is very helpful for all of us

Prachi Sharma said...

Analogica Data is one of best product developement company in india,developing a product means developing a bond with your clients and businesses. The strength of the relationship depends on the functionality and Product Development Service Provider
.

Prachi Sharma said...

Analogica Data is the best Product Development Service Provider in India due to our core competencies in product development. we provide Top Product development Services India.

Logistic Solutions said...

Great Blog. Thank you for sharing Information. if you’re looking for the custom software development companies, Logistic Solutions is the best option. contact us :732-457-0016, For more info click custom software development services

Pals said...



This is really nice. Thanks for sharing this informative article.


Custom Software Development India - Nintriva

IICE-Indore said...

I am really happy to say it’s an interesting post to read . I learn new information from your article , you are doing a great job .
Software Development in Indore
Keep it up

Mike said...

Good Analysis,
Great points you have shared with us and I am working on Bespoke software development company and this blog is remain helpful.
Thanks for sharing this blog among us.