The Secret To Implementing Effective Business Analytics (BA)

Business Intelligence (BI) and Data Analytics are surely gaining higher importance with the businesses worldwide. Importance of data mining and data enriching have never been felt more strongly before with zetabytes of data being created every day from various sources such as social media platforms and mobile devices. Considering BI and data analytics as pre-requisites for Business Analytics (BA), it is clear that the discipline of Business Analytics will catch more prominence as a practice in the corporates.

With the cloud computing as the next norm in IT, access to business analytics services will also be demanded in the cloud. The convergence of large data warehouses and business intelligence tools and processes is inevitable. But the question is, is Cloud Business Analytics already a mainstream? If not, then what do current trends say about its future?

Evolution of Business Analytics as a Practice

According to a research program conducted by Bloomberg Business Research Services in May 2011 (and as published by SAS in a whitepaperThe Current State of Business Analytics: Where Do We Go From Here?), some observations stand out and throw light on very important aspects of BA in organizations. One of the important insights is that BA remains in emerging state as far as using the technological tools effectively is concerned. Though as a discipline BA has gone mainstream, but many organizations still use traditional technology tools, Spreadsheets being the most common. Those organizations who do use more sophisticated tools do not know how to apply the results. Moreover, many organizations find it difficult to get proper talent for analytics.

Higher acceptance is seen by large enterprises. But the preference for BA is growing. According to a report by International Data Corporation (IDC), the world business intelligence (BI) tools market generated more than $4 billion in revenues in second half of 2010. For the same year, BI tools market grew by 12.7% year on year. Though the growth rate may seem modest, but it is the first time that the BI tools market has surpassed the $4 billion mark in six months itself. BI tools being the pre-requisite technology for enabling better and complete application of BA, the report by IDC indicates bright prospects for the BA market worldwide through the next five years. BA was reportedly one of the top IT priorities in 2011 for most organizations.

Why in the Cloud?

Biren Gandhi in an article – Cloud: A Catalyst for Commoditization of Business Analytics, has written that BA today is about creating value at the intersection of multiple business domains for business optimization and to derive sustained competitive advantages in the marketplace. Though organizations are sold on the importance of practicing BA for better business performance, but to move from just managing business domains to getting better business insight and planning for reducing costs has many roadblocks. Those who do use BA may not be getting ‘effective’ results out of it because of roadblocks such as lack of maturity of BA tools itself or high cost of owning them.

In the research program conducted by Bloomberg Business Research Services in May 2011, it was found that 51% of the respondents found the use of business analytics as somewhat effective. This can easily lead to the inference that either the tools are not mature (and hence not effective enough) or the the cost of adopting and provisioning new tools based on business needs are high. The BA tools vendors can plug the market gap by providing BA solutions in the cloud. Cloud can actually act as a catalyst for meeting the growing demand for BA as a discipline while keeping operating costs low for the customer organizations. Top BI tools vendors such as IBM, SAP and Oracle can add great value if they host their applications in the cloud. This will greatly facilitate better access to information across the organization and will not confine BA process and the resultant information within the functions or departments.

As always, we would love to hear your thoughts on this. Please share.

 

IMAGE SOURCE: http://www.computerweekly.com/blogs/open-source-insider/2010/10/open-source-business-intelligence-on-the-mobile-map.html

Key Practices for Agile ALM for Improving Productivity

We have been talking about Agile ALM for quite some time now. Of course we believe that the Agile ALM will become a requisite for accelerated application delivery coupled with superior software development quality. In fact, the future of application development or software engineering holds a strong case for hosted Agile ALM.

The few crucial technology trends have changed the needs of the businesses. It is a pressing need for the businesses to be able to adapt to the market changes and deliver faster to stay ahead of competition. Hence they need to build a capacity to switch to new software and place processes at a faster pace. This creates a demand for developers of the vendors or in-house teams to be more productive. This increased developer productivity can be achieved only when it is supported by appropriate processes and tools.

All these reasons not only make it necessary to use ALM by all types of businesses, it requires vendors to integrate Agile methodologies in the ALM tools and adopt some key practices to implement Agile ALM which support people and processes for improving productivity.

Traditional ALM has always enforced pre-defined standardized processes through tools and people had to adopt software development based around the processes and tools. The end result of software delivery would never be what the customer has been looking for. Though the pre-defined processes would concentrate on maintaining certain levels of quality, often it would lead to delayed production and sub-optimal delivery of software to the end-user. But the traditional method of using ALM will not work in the wake of new trends. Organizations which focus on supporting people and processes through Agile ALM will improve productivity and therefore beat the competition.

”]More agility and impromptu strategies to evolve project specific processes is required in software development lifecycle. It is almost similar to the experiences originating from field sports.  The word Scrum (part of Agile methodologies) has actually been derived from Rugby.

Agile methodologies focus on developing processes and supporting people through tools. They focus on continuous delivery of the software so that the end-user feedback is received at early stages and the changes can be incorporated faster. It is important that Agile is combined with ALM to achieve increased developer productivity. A successful roll-out of Agile ALM requires its vendors to equip organizations by incorporating scope for following suggested vital practices. These practices are based on few of our observations and are congregated from the whitepaper – Redefining ALM with five key practices – published by ThoughtWorks Studios:

Evolve Processes

Agile ALM recognizes that the processes for two different software engineering projects cannot be same. Hence Agile ALM tools must be such that they enable the teams to discover and build their processes progressively. The Agile ALM tools must enable the teams to construct possible roll-ups for reviewing and governance which gives them a chance to reflect and improve upon their processes and also incorporate changes at short intervals that may be suggested by the stakeholders. This flexibility for continuous improvement is essential in Agile ALM tools so that the true benefits of Agile ALM are derived by the organizations implementing it.

Incorporate Heterogeneity

The second good thing about Agile ALM is that it appreciates presence of heterogeneity in different projects. For example, if an organization from Life-sciences industry wants to launch a new SaaS CRM product, then development work may happen based on loosely defined requirements. In this case, the team will need to come out with a prototype, only to improve it based on continuous feedback from a focus-group. On the other hand, if the same organization wants a feature enhancement in an existing product, then the team will have to work on very strict defined processes. Therefore, heterogeneity of situations makes it necessary that the Agile ALM tools also embrace heterogeneity so as to let different teams evaluate and build their own processes.

Collaborative Approach to Management

Flexibility to evolve processes under heterogeneous projects also facilitates collaboration among the team members and stakeholders at every stage of the software lifecycle. The collaborative approach of Agile ALM ensures continuous delivery of features weekly or even daily. It makes sure that the end product does not deviate from the requirements laid down by the end-users. Agile ALM tools should facilitate orchestrating of the entire development lifecycle, instead of stiffening the teams with pre-defined processes that come with traditional ALM tools.

What do you think should be a part of best practices for rolling-out Agile ALM in organizations? Please share your thoughts.

Enabling Business With Agile and DevOps

Innovations create new ancillary needs and if it is a disruptive innovation it creates entirely new markets. According to Wikipedia, disruptive innovation is defined as,

“A disruptive technology or disruptive innovation is an innovation that helps create a new market and value network, and eventually goes on to disrupt an existing market and value network (over a few years or decades), displacing an earlier technology. The term is used in business and technology literature to describe innovations that improve a product or service in ways that the market does not expect, typically first by designing for a different set of consumers in the new market and later by lowering prices in the existing market.”

Disruptive innovations create products which perform badly in the near term but ultimately change the industry and create a new value network of products and services around itself. The best example of a disruptive innovation is iPad by Apple, which created an entire new market.

In the same vein it is completely reasonable to say that Agile methodologies are also a part of disruptive innovation in the field of software development, creating new value network and improving the service. It takes the traditional waterfall approach to software development to a different level. Agile defines new set of methodologies through iterative approach to software development and brings in improved developer productivity and better software quality. It is even said to bring hyper-productivity in some teams.

Agile methodologies are said to fix the problems that arise out of software development life-cycle (SDLC) between the customer and the developers. For instance, it is next to impossible to collect all the information regarding the application to be developed right at the beginning. There is a big element of uncertainty at the customer’s end too because of which the customers (or stakeholders) need their vendors (or in-house developers) to be ready to incorporate changes rapidly into the software design. It is therefore imperative that there is a continuous customer engagement and at the same time it is important that the developers adopt changes rapidly. For this developers need to have flexibility incorporated in the SDLC and Agile methodologies bridge this gap.

The whole concept of Agile is based on the fundamentals of collaborative self-organizing and cross-functional teams throughout the organization. If there is any disconnect between the teams involved, then Agile’s vision of accelerated delivery gets defeated. When you talk about operations side of the software development life-cycle, then this disconnect is often felt and this leads to the slowdown of agile processes, as the operations team is unable to cope up with the continuous deployment cycles required out of sprint-approach to software engineering. (A better explanation is given in 5 Steps on How to Achieve Hyper-productivity in a Team).

Here comes the growing need for DevOps. DevOps can be understood as a bridge between the developer teams and the operations team of the SDLC. Under the traditional approach, the development team writes the best of code and hands it over to the operations team to deploy. Often the code does not perform as per the expectations either because of infrastructure issues, lack of version support or architecture mismatch or simply because of lack of continuous collaboration between the development and operations teams, which leads to issues in reporting, security, back-up and provisioning.

DevOps try to solve this problem and avoid failure of the codes at the deployment stage. It aims to provide framework for fostering cooperation, learning and co-ordination between development and operations group in order to bring in more efficiency. DevOps environment helps system administrators and developers to build relationships, processes and tools that help them to collaborate better. DevOps models especially benefit processes like automation, capacity planning, back-up & recovery, security and provisioning as it improves the quality of interactions between the development and operations teams.

Due to some crucial technology trends and a foreseeable paradigm shift towards developer platforms, adopting Agile ALMs will become a necessity with many organizations. It will be easier for the SMEs and other micro organizations to adopt the Agile ALMs in the cloud. But the ‘disconnect’ between the development and operations will still be felt and they too will need the DevOps to run Agile effectively. In fact the SMEs will create a demand for DevOp tools which are integrated with other Hosted Agile ALM tools or at least be interoperable so that they do not increase the cost factor significantly.

Large enterprises who have their own customized IT stack, may find a stronger need for scalable and robust DevOps with the option to choose from cloud model or on-premise traditional model.

What is your opinion on demand growth for DevOps?

Emberjs vs Knockoutjs

BootStrapToday is around for about 2 years now. Recently we have been working on making it faster. We have done many small changes and will continue to make improvements. We are also working on redesigning the user interface to make it simpler for the user and more maintainable for us.

Some background:

BootStrapToday uses django and postgresql on the backend. On the browser side, we have used jquery and a lot of custom javascript and ajax calls. All this custom javascript is slowly becoming difficult to maintain. Also making sure everything works on all major browsers is difficult. For example, today when a user uses ‘quick edit’ to edit a ticket and submits it, updating the status of tickets in the ticket list requires an ajax call to server to get updated list. This  increases load on server. Later this year we are also planning on creating a mobile app.

Hence we are  redesigning the UI and have some idea of how things will look like. We are also  looking around for a javascript framework that can help in making these ideas into reality. I started by looking around and got a useful comparison of various javascript MVC frameworks.  After studying for some more time, I decided to do a quick prototype of ticket list and ticket details+edit display using the Emberjs(SproutCore 2.0) and Knockoutjs frameworks. I am not an expert in Javascript. Hence it took me some time to create two prototypes. The code is probably not the ‘best examples’ of using Emberjs or Knockoutjs but it gave us an insight into what will work for us.

Specifically we were looking for following features.

  • UI Bindings: Client side Template, declarative bindings to models and auto updating views.
  • Works well with Django.
  • Works with jquery and other existing components.
  • Ajax.

EmberJs (SproutCore 2.0):

Ember is javascript MVC framework. As the Ember introduction says

Ember makes it easy to divide your application into models, views, and controllers, which improves testability, makes code more modular, and helps new developers on the project quickly understand how everything fits together. The days of callback spaghetti are over.

Ember also supplies built-in support for state management, so you’ll have a way to describe how your application moves through various nested states (like signed-out, signed-in, viewing-post, and viewing-comment) out of the box.

First problem I faced with Ember is the ‘template syntax’. Ember uses Handlebars as template engine. At places Handlebar template syntax is similar to Django template syntax. So Django tries to parse this template and interpret it.  So the possible solutions were:

  • Use a different template system than Dajngo’s default template system. This was not a viable option since it meant that we  throw away all existing templates and also  educate the team on different template syntax.
  • Needed a way to tell Django ‘don’t interpret’ this part of the template. Unfortunately there is no good standard way to do this in Django. I ended up in using the ‘raw’ template tag described in ‘http://www.holovaty.com/writing/django-two-phased-rendering/’. However, this code is GPL licensed. We can use it for prototyping but we cannot include it in our product.

BootStrapToday uses slightly older version of jquery. It seems Ember requires jquery 1.7 1.6+  (Edit : Peter Wagenet has clarified that Emberjs works with jquery 1.6+ ).

Ember properties and computed properties worked well. Also, I implemented a computed property which when called, queried the necessary data from server using an ajax call. However, it means every time when a property value is queried, it will result in an ajax call. Obviously that’s not a very good idea. However, Ember has a nice touch that you can make a property ‘cacheable’. Once you marked a property as cacheable(), it stores the last returned value and reuses that instead of computing it again. That worked well for reducing the number of ajax calls.

Then I tried to implement Ticket edit functionality using the existing Django form. Currently Ember documentation is very limited on how to use various HTML input fields, and there is no information on using existing html forms with Ember properties. I could not figure out how to reuse the existing  Django forms. It means I had to re-implement the forms as Handlebars templates and input field ids etc. have to match with ids that Django expects. Other option was to write custom form fields which will generate the Handlebars template code rather than HTML generated by default Django fields.  This means a lot of work and not much benefit. This is one area where Knockoutjs declarative data-binding shines.

KnockoutJS

Knockout (KO)  is javascript MVVM framework.  KO Observables page has a small introduction to MVVM pattern. Key features of KO as described on the KO Introduction page are:

  • Elegant dependency tracking – automatically updates the right parts of your UI whenever your data model changes.
  • Declarative bindings – a simple and obvious way to connect parts of your UI to your data model. You can construct  complex dynamic UIs easily using arbitrarily nested binding contexts
  • Trivially extensible – implement custom behaviours as new declarative bindings for easy reuse in just a few lines of code.

The big advantage that KO has over Ember is the documentation. The documentation and Live Examples are a GREAT way to learn and experiment with KO.

KO template syntax is different than Django templates. So using KO with Django templates is simple.

KO Observables is somewhat equivalent to Ember properties. However there are few key differences. In Ember, the dependencies of properties are defined by the developer. In KO Observables, dependencies among observables are automatically determined.  Now this is good and bad. The good part is that as a developer you don’t have to worry about explicitly determining and defining dependencies.

KO Computed Observables documentation says following about the dependency tracking.

It’s actually very simple and rather lovely. The tracking algorithm goes like this:

  1. Whenever you declare a computed observable, KO immediately invokes its evaluator function to get its initial value.
  2. While your evaluator function is running, KO keeps a log of any observables (or computed observables) that your evaluator reads the value of.
  3. When your evaluator is finished, KO sets up subscriptions to each of the observables (or computed observables) that you’ve touched. The subscription callback is set to cause your evaluator to run again, looping the whole process back to step 1 (disposing of any old subscriptions that no longer apply).
  4. KO notifies any subscribers about the new value of your computed observable.

The line in bold has a side effect.  Let us suppose that I want to load some property from server (like description of a ticket) when it is accessed first time. Now since KO invokes the evaluator function immediately, it means it will trigger an ajax query to the server even though user may not need the property. Since KO invokes evaluator function, to get the dependencies of Computed Observable, if there is some way to manually define the dependencies then this evaluator call is not required. I could not find a way to do this. Hence I have to do some tricks to load make necessary data from server when user needs it. Basically I load the data in some click handling functions.

Also I could not find anything equivalent to ‘cacheable’ in Ember.

At this point loading a ticket list from server and displaying the details when a ticket is selected from list was working using KO and Ember.

Then I started implementing ticket edit functionality and here KO has significant advantage over Ember for our needs.  Because KO uses declarative data binding, attaching KO observables to an existing Django form was trivial and I could reuse existing Ticket edit form.  For testing I used a simple function like the one given below to add ‘data-bind’ attribute to various form fields. Then I called the ‘form.as_table’ in template and the bindings worked like charm.

def add_databinding(form, fld_observable_map):
'''
add data binding attribute to all form fields.
'''
    for name, field in form.fields.items():
        if name in fld_observable_map:
            field.widget.attrs['data-bind'] = "value:%s" % fld_observable_map[name]

Both KO and Ember are useful and interesting frameworks (something you should keep an eye on). However, today KO satisfies our needs better than Ember.

Now we are working on a django app to simplify using KO with Django. I will keep you updated on any interesting things that happen along the way.

Scheduled Down Time for BootStrapToday

This is to inform all BootStrapToday users that BootStrapToday will be down for schedule maintenance and upgrade from 21st January 1430 hrs IST to 1800 hrs IST.

Thanks for your support & co-operation.

Cloud ALM – An Enterprise Market Disruption Strategy for SMEs?

The biggest problem that SMEs face today is that the playing field is not leveled for them. SMEs typically take a beat from the large enterprises at the technology and the scalability front. Due to lack of up-to-date technology and constraints for scaling up rapidly, SMEs always find expanding their business as the real challenge.

The high upfront cost of buying licenses for owning the IT or getting customized software application developed does not permit the small players to automate processes completely and competitively. Yet the ALM as a process is necessary requirement even for the SMEs to be competitive in the future. This argument will be understood in much stronger way if you refer to the following two articles:

  1. Application Lifecycle Management through Cloud and Agile – A Case for Hosted Agile ALM
  2. Rise of Developer Platforms – A Paradigm Shift

Historically, software development has grown more complex and the tasks involved have developed the need to automate the complete software development cycle. Early on, the automation started with development of tools to control and manage source code versions, based on the Source Code Control System (SCCS). Software development needs further evolved and gave shape to Integrated Development Environments (IDEs). All these efforts were to automate and integrate the features of the SDLC and thereby maximize the productivity of developers.

Moving on, the software development has further felt the need to integrate other stages outside the core of software development but which are closely involved in shaping an application. These are requirements gathering, architecture designing, deployment and management, and these together form the basis for Application Lifecycle Management (ALM).

ALM does not happen as a single step in a single instance, but it happens at various stages engulfing the traditional SDLC and reaching beyond. In order to automate the processes SMEs usually invest in buying tools that fit best in their overall ALM strategy and then try to integrate them. But wouldn’t it be better if the ALM functionalities required for automation were built in a single platform and that was also available in cloud?

So, can ALM Platforms in the cloud bring the change that the SMEs are looking for? Yes, certainly it can. It can level the playing field for the SMEs. Since cloud computing provides reduced cost of using technology, it can be the answer to the prayers of many SMEs. Here are some benefits why I think Cloud ALM will be the business disruption strategy for SMEs:

Low Capital Investment

Utilizing IT services on pay-per-use reduces the upfront capital investment drastically as utilizing IT in the cloud comes at a fraction of the cost of buying on-premise IT infrastructure. It releases much of your budget for other business functions. This gives plenty of scope for the SMEs to become more competitive vis-à-vis the larger enterprises.

Improved Productivity

ALM tools, which integrate the complete application lifecycle and make application development a more managed business process, enable SMEs to improve the developer productivity. The developers can focus more on business requirements and programming than on mode switching due to use of disconnected tools for various processes in the entire application lifecycle. As explained in the earlier point, the ALM tools in the cloud can further add to the appeal – improve operational efficiencies of the SMEs – to make it a tool of top choice.

Robust Scalability

Most of the time SMEs are not able to scale up and hence they lose business to larger enterprises. Since business is variable and uncertain, SMEs would not want to invest further if there is no certainty of long-term ROI. With hosted ALM tools it becomes easy to scale-up because cloud gives you the option of scaling up or down as per your business requirements with just a click of a button. So you need not invest heavily just for scaling up for one of your customers by opting for traditional way of owning IT.

Our team at BootStrapToday has done immense research on software development and, coupled with our own programming experiences, have integrated features like Version Control, Tracking System, Milestones, Git & Subversion Hosting, and Knowledge Repository, and have weaved intelligence in our ALM Platform. We are developing an Integrated and Intelligent ALM platform for complete project management, and which is already available as SaaS and has an option for in house set-up also.

What is your take? How do you think ALM will chart the future of software development? Share your thoughts here.

Why Is Freemium Model Best For Your SaaS Start-up?

Freemium is a portmanteau and is a type of business model which is very popular with web based service or product companies and has been taken from the print media industry. First coined by venture capitalist Fred Wilson, it has seen tremendous popularity especially when many start-ups, who have executed their pricing through this model, have been very successful in low cost customer acquisition.

I had pointed out in my earlier article that if you are contemplating on starting a SaaS business, then you have to appreciate the fundamentals of low cost customer acquisition through accelerating organic growth and by “getting found on the web”. This article is an extension of the same fundamental. The fundamental of ‘freemuim’ is to understand that the free subscription means free selling of your start-up through improved utility and deep customer engagement which helps in spreading word-of-mouth and accelerating inbound marketing strategies for organic growth.

Freemium model essentially means that you give away the basic services of your product as free either for a limited period or for a limited number of users, and charge a subscription fee for more sophisticated part of your services. The catch here is that the utility of your service or product should be high enough to keep your target customers engaged deeply, so that the cost of losing the service is perceived higher than paying for the premium version of that service. In short, your service must serve a strong unmet need so that it becomes an indispensable thing with the customers upon them experiencing it.

If you are a SaaS provider, then the economics of cloud will prompt you to bring down your subscription charges to a reasonable level such that conversion from a free subscriber to a paid one does not become difficult for the customers.  The conversion ratio of paid customers to free subscribers will be higher for your SaaS start-up.

The freemium model is best understood with an example. Dropbox, which is a storage service in the cloud, allows you to store your data in the cloud for free up to 2 GB of storage space. Now 2 GB can be used up very quickly. But its convenience is so high and the need so strong, (secured back-up of your data and convenience of accessing your PC from anywhere) that the more you use the service the more you need it. Of course there have been other players offering the same services as Dropbox, but being early and using the freemium model, they have succeeded in further deep-rooting the need for their services. If at all you want to switch to another such service provider, you will end up spending a lot of time in uploading gigabytes of your data. Instead it makes more sense to subscribe for Dropbox’s premium services and upgrade your storage limit.

Depending on the type of your SaaS business, you can choose the freemium model which suits your business model best. Usually there are four types of freemium models, as written by Chris Anderson in his post for Wired Blog Network:

  1. Time limited: For example, 30-day free trial and then pay.
  2. Features limited: Get basic version free (always) and pay for more sophisticated features.
  3. Seat limited: Get free for certain number of users and pay for more number of users.
  4. Customer type limited: Free for certain type of customers (e.g., start-ups) and paid for others (e.g., larger enterprises with employees greater than 1000).

So, if you are a start-up and are sure that you are servicing a strong unmet need, then it is easy to go for the Features limited model, as the utility of your service will drive the word-of-mouth and the free version will keep getting your top-of-the-funnel filled. You can do a similar brainstorming for weighing the pros and cons of other freemium models to arrive at the one best suitable for your business.

What is your take?

Top 10 Success Mantras for SaaS Business

Let’s face it. Starting-up your business is not easy. Running your own business (typically in the first two years) is a rough terrain to traverse. Many roadblocks can get in the way to your growth path and you may hit a dead end. To avoid hitting dead ends, here are top 10 mantras that you can follow if you are contemplating on starting a SaaS business.

1. Large Total Available Target Market (TATM)

Evaluate if the target market that you have identified is large enough or not. As a SaaS service provider, you will have to incur upfront capital expenditure to build the infrastructure required to run the SaaS service. On the contrary, your revenues per month per client will be of small denomination. Remember, SaaS is about accessing IT services economically. The TCO (total cost of ownership) for the clients should be lesser in the long-term for them to be able to see business value in SaaS models. To reach profitability you will have to generate volume business. Hence the TATM for your SaaS business must be large enough.

2. Identify A Strong Need Area

When ideating for building a SaaS business, it is better to do due diligence before defining your service area. As a start-up to succeed, it is important to receive early adoption of your business to be able to build a strong growth trajectory. This can happen only when your service meets a strong unmet need. A strong growth curve early on will bring profits to you much sooner.

3. TATM Should Be Accessible

It is normal for any SaaS business start-up to first approach the SME/SMB market as their sales cycle is typically shorter than that of the larger enterprises. Moreover, large enterprises have their own multi-layered IT stacks across departments, which make them slow to adapt to any change. Therefore, you should make sure that the SME/SMB segment that you are targeting is not too difficult to reach.

4. Keep Cost of Acquisition Low

You have to agree that SaaS is a volume driven business. To generate volume the cost of acquisition must be keep as low as possible. As a service provider through web, you should make sure that you are able to reach your target customers via web. Web is the best way to keep your total cost of acquisition low. This comes as the direct fall-out of the mantra #3, that your target customers must not be too difficult to reach.

5. Create Demand Side Pull

Keeping the fundamentals of SaaS in mind, it is imperative to keep the acquisition costs low as the revenues per client are small. In this type of business the hard selling tactics might prove cost intensive. The best way is to get found on the web and have the prospects sign-up to try your product. Once the prospects try your product you can build a customer relationship in order to convert them into paid customers.

6. Cash-in the Organic Growth Strategy

Again, this is the direct fall-out of the mantra #5. To create a demand pull, you should use the free marketing tool available on the web to get found by the prospects. Tools, such as blogs, presentations, whitepapers, case studies, webinars, videos etc. should be published in order to create an online buzz about your product. The catch here is that the content generated should be interesting, relevant to the target market and be compelling enough for them to try your free version.

7. Drive Affiliate Programs

Everything about building a successful SaaS business boils down to increasing volume and keeping acquisition costs low, while leveraging the viral effects of web. Yet another important strategic handle for achieving this is running affiliate programs for your SaaS product. Affiliate programs simply spread out the entry points to your product across the web.

8. Be Cloud Friendly

Do not try to build a SaaS product which provides a stand-alone service. Your SaaS should be able to talk to other software and hardware either on web or at on-premise IT stack. If your SaaS product is not built to leverage these issues, then you might have a hard time closing your sales. It is best to make your SaaS product open standards-based API friendly or even better offer integration solutions to different sets of customers.

9. Provide Customization

As a continuation of mantra #8, providing integration solutions is almost a necessity today. Leaving integration to the customers defies the logic of lower TCO for the customer as the customer will have to spend man-hours in getting the service up and running and also lose on the time-cost factor. Your SaaS product should be able to handle automated customization for your customers and this should be achieved at the architectural design level of your SaaS product.

10. Leverage Crowd-sourcing

Another way to keep your costs low is to encourage product enhancements through crowd-sourcing. Crowd-sourcing as a strategy has proven to bring about very good results with low cost to the company. This has especially been a great hit in the technology world.

Do you think there can be more mantras for start-up success in SaaS business? Share your thoughts here.

 

Rise of the Developer Platforms – A Paradigm Shift

As a part of technology evolution, software development has itself developed and matured a lot. When the desktop PCs made the headway, there was an era of software application boom which would run on the desktop PCs as single client. The developers could know a programming language and do the client-side coding in a particular programming framework. The software would be delivered via shipments. It was simple enough.

But when the World Wide Web became more universal, all this started to change. More software was being shifted to the web. This era demanded more of robust server-side coding as the number of users during runtime would significantly be higher.

Today the landscape for the developers is very different. Some of the factors which have caused this change are:

  • Costumer behaviour
  • Cultural shift towards mobile work policies
  • Dawn of cloud computing as the de-facto model

The end users (customers) are more adept and are addicted to the mobile and distributed work policies, which require their applications to be accessible from anywhere at any time. The availability of more software-as-a-service (SaaS) through internet has contributed to this change. And of course, SaaS has seen a wide acceptance as it has directly shown an increase in software development velocity and hence in developer productivity too.

Today developers need to develop software that deals with multiple types of access points – mobile devices and desktops. The code needs to be built in a way which is suitable for the application to run in resource constrained and slow mobile devices. At the same time, it should also be suitable enough to run on traditional desktop computers and laptops. Multiple access points at any instance make it necessary that the server side should be able to handle multiple types of customers. All this must be in real time and runtime without crashing. Server-side coding and client-side coding is a must for developers now and these in turn should be interoperable. Third party integration, such as Facebook, Twitter and Google+, is also a necessary feature. The end-user expects 24×7 accesses to the apps. This further necessitates capturing networking issues also during the development stages.

Combine the above requirements, and you need a versatile team of developers and some maybe with two heads and four hands!!!

The developers need to do server side programming as well as client side programming and maybe in more than one language, deployable on more than one OS and accessible through more than one type of internet enabled device – feature phone, smart phone, iPad, laptop, desktop etc. If you go by the traditional way, developers need to manage many types of environments through the application development cycle to be able to meet the above requirements. This reduces developer productivity significantly.

There is a case for something more magnanimous and righteous such as a developer platform. Developer platforms and IDEs can have non-app specific code built-in by default. While even the non-app specific codes cannot be embedded as a ‘cookie-cutter’ feature, it can to a large extent reduce the redundant part of the development cycle – redundancy being segregated based on different industries. These will directly increase the productivity of developers.

Now push this case onto the cloud and you have further positioned yourself for a case of hosted developer platforms. Cloud, which can bring in many advantages such as cost saving, automation, and scalability, offers a chance to present platform-as-a-service (PaaS) for developing and deploying applications. The developer productivity is directly increased multiple times by using these robust developer platforms. It lets them concentrate entirely on core product code and not worry about managing servers, scalability & reliability during heavy loads, OS patching or deployment. They do not have to worry about maintaining different developer environments throughout the application lifecycle.

So what remarkable features and services must a developer platform provide?

Integrated application development environment: This essentially means that Developing, Testing, Deployment, Debugging, Maintenance, Storage and Security are all provided on the same environment.

Built-in Scalability, Reliability and Security: This means that the developer platforms must be able to handle sudden surge in application users and be reliable enough to provide back-ups and manage secured data transfers among different data centres during heavy loads.

Connectivity to multiple data sources: As a natural offset of the solution that developer platforms promise to provide, they should have seamless connectivity to multiple data sources, to be able to provide a versatile development environment.

Secured Collaboration between teams: Any development work is divided into teams and the final modules are delivered by various teams for the final release. A developer platform must ensure collaboration as a feature, where different teams can share information and experiences especially during compilation, testing and bug fixing activities. At the same time the source codes must be packaged such that the hackers do not get in during source code transfer. The storage and reuse capability for source codes should also be a feature of the developer platforms.

What do you think?

Application Lifecycle Management through Agile and Cloud – A Case for Hosted Agile ALM

Application Lifecycle Management (ALM) has evolved through years and is going to witness a landmark change in its form 2012 onwards. ALM, by definition, is a process of managing the entire lifecycle of software engineering through governance at various stages. These stages of software engineering include requirements gathering, architecture designing, coding, testing, debugging, and release management. The ALM is actively supported by tools and is said to improve developer productivity and software quality as the team follows best practices throughout the software development lifecycle.

ALM is seen best accepted by organizations dealing with larger projects (i.e., the large enterprises), and does not sell very well with the SMEs. But once the ALM tools are offered as SaaS Agile ALMs, the resistance by SMEs in adopting ALM will reduce.

Since ALM is a process it continues to evolve. The best practices keep getting introduced as part of ALM processes. Agile methodologies are also now into mainstream with various styles of its adoption into application development lifecycles by various organizations. It has been noted that the Agile methodologies should be integrated into the ALM processes in order to bring about a combined synergic value (following the dogma of ‘the whole is greater than the sum of its parts’ by Aristotle) for increasing developer productivity and software quality along with reduced time to the project release.

The biggest problem of available ALM stack solutions is that they are too tool-heavy. Agile integration with ALM tools will be beneficial only when there is flawless horizontal and vertical automation. In the era where the case for embedded software development in hi-tech devices and smart mobile devices is gaining high momentum, Agile methodologies are in great demand. Organizations can see clear benefits of engaging with Agile methodologies for their multifaceted software development. Naturally this pull – being from the demand side – has drawn Agile into mainstream computing. This trend has also brought a paradigm shift in development industry and has given rise to the developer platforms in the cloud.

Agile adoption, which is also akin to Just-In-Time (JIT) concept of production (evolved in manufacturing segment), will especially benefit in a scenario where the stack consists of hosted developer platforms with automated and integrated IDEs, and integration with SaaS ALM tools. The true automation of processes is optimally feasible only through cloud solutions. Hosted developer platforms and the need for one-point solution for Agile ALM will force vendors to come up with service models in the cloud providing business value to their customers. We will see emergence of many Agile ALM tools in the near future as the most widely accepted way to application development.

Demand for mobile development environments is also on exponential growth. The iPhone, iPad (supported by iOS) and other smart mobile devices supported by Android have opened up many possibilities in application development. Many large enterprises encourage the distributed work culture and use of smart mobile devices in order to improve their productivity and keep costs at bay. There is growing trend where employees have a say in defining their work schedules. This creates a need to stay connected (almost always) and for effective collaboration for managing projects. It also creates a need for more enterprise applications that are deployable on mobile devices.

Such work trends will necessitate adoption of both processes – Agile and ALM – in hosted environments for managing projects with higher development velocity and higher individual productivity. Vendors in ALM market will now offer solutions with Agile methodologies integrated with the ALM tools and they cannot be shy of hosting them in the cloud. Clearly, there is a strong case emerging for hosted Agile ALM in the near future.

What do you think of it? Please share your thoughts.