<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ivesia Solutions Inc</title>
	<atom:link href="http://www.ivesia.com/blog/index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.ivesia.com/blog</link>
	<description>Software Development Services</description>
	<lastBuildDate>Thu, 09 Sep 2010 01:17:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.3</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Architecture driven software development ensures quality</title>
		<link>http://www.ivesia.com/blog/?p=208</link>
		<comments>http://www.ivesia.com/blog/?p=208#comments</comments>
		<pubDate>Wed, 08 Sep 2010 05:56:23 +0000</pubDate>
		<dc:creator>krishna</dc:creator>
				<category><![CDATA[Product Development]]></category>
		<category><![CDATA[Product Engineering]]></category>
		<category><![CDATA[enterprise software]]></category>
		<category><![CDATA[architecture driven development]]></category>
		<category><![CDATA[software quality]]></category>
		<category><![CDATA[software quality attributes]]></category>
		<category><![CDATA[user satisfaction]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=208</guid>
		<description><![CDATA[The one most important thing that can influence the quality of the software is the architecture used.  Software architecture plays a key role, and it is collection of design decisions &#8211; intended to ensure functionality and other quality attributes of the software like reliability, usability, scalability, efficiency, maintainability, and portability.
Software architecture represents earliest design decisions [...]]]></description>
			<content:encoded><![CDATA[<p>The one most important thing that can influence the quality of the software is the architecture used.  Software architecture plays a key role, and it is collection of design decisions &#8211; intended to ensure functionality and other quality attributes of the software like reliability, usability, scalability, efficiency, maintainability, and portability.</p>
<p>Software architecture represents earliest design decisions that are hardest to change, is a communication vehicle among stakeholders and are the most critical to get it right.</p>
<p>Architecting the software right ensures the business goals of high quality, quick time to market, effective use of limited resources, optimal leveraging of available skills, low cost production, low cost maintenance and mass customization, which results in improved efficiency and productivity.</p>
<p>In a rush to shorten the learning curve related to tools, technology, frameworks and processes and to get the development completed, very often basic development guidelines and quality attributes are ignored. Several transversal functions are unstated and are not met; basic principles of object-orientation and modularity are ignored. This is discovered too late in the cycle and this results in loss of quality of the software.</p>
<p>Architecting the software right allows you to create a template for significant parts of the code, say the primary types of components, thus ensuring that the common concerns such as modularity, error handling, logging and other quality attributes are met while ensuring that the developing team has a short learning cycle. This will allow them to get started quickly ensuring the business goals of quick time to market at lower costs are met.</p>
<p>Architecture driven development will ensure that software developed will be useful for the target audience accounting for the quality needs while adding value to both the user and the producer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=208</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Quality &#8211; what is it in reality?</title>
		<link>http://www.ivesia.com/blog/?p=203</link>
		<comments>http://www.ivesia.com/blog/?p=203#comments</comments>
		<pubDate>Thu, 02 Sep 2010 05:09:49 +0000</pubDate>
		<dc:creator>naruna</dc:creator>
				<category><![CDATA[Product Development]]></category>
		<category><![CDATA[Product Engineering]]></category>
		<category><![CDATA[enterprise software]]></category>
		<category><![CDATA[software testing]]></category>
		<category><![CDATA[software quality]]></category>
		<category><![CDATA[software quality attributes]]></category>
		<category><![CDATA[software re-working costs]]></category>
		<category><![CDATA[software user satisfaction]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=203</guid>
		<description><![CDATA[The moment we mention software quality, the first thing that comes to our mind is bug-free software. Is bug-free software the only thing about software quality?Absolutely not!
We can define software quality thus, it is a part of each phase of the development life cycle including testing and encompasses a whole load of factors and not [...]]]></description>
			<content:encoded><![CDATA[<p>The moment we mention software quality, the first thing that comes to our mind is bug-free software. Is bug-free software the only thing about software quality?Absolutely not!</p>
<p>We can define software quality thus, it is a part of each phase of the development life cycle including testing and encompasses a whole load of factors and not just bug-free and aesthetic software. These factors that are a combination of tangible and intangible sum of quality attributes like functionality, reliability, usability, efficiency, maintainability and scalability forms an important part of the software.</p>
<p>A bug free, aesthetically appealing product that fails to solve business problems of the target audience for which it was designed is a poor quality product. Essentially, software quality is about meeting user needs and it is about the quality attributes as much as it is about being aesthetic and bug-free.</p>
<p>An improved Software QA process has the potential to affect both the users and producers by:</p>
<ul>
<li>removing more bugs before the software is released</li>
<li>detecting bugs earlier in the software development life cycle</li>
<li>locating the source of bugs faster and with more precision</li>
</ul>
<p>This will reduce high re-working costs on the software and will help improve user satisfaction</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=203</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pair Testing &#8211; Have You Tried It</title>
		<link>http://www.ivesia.com/blog/?p=200</link>
		<comments>http://www.ivesia.com/blog/?p=200#comments</comments>
		<pubDate>Wed, 25 Aug 2010 06:39:02 +0000</pubDate>
		<dc:creator>naruna</dc:creator>
				<category><![CDATA[software testing]]></category>
		<category><![CDATA[testing challenges]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=200</guid>
		<description><![CDATA[Pair Testing is one of the interesting testing methodologies where a pair &#8211; developer and Tester, or 2 testers, or sometimes tester and business user will test the application. This kind of testing approach is followed in situations when the requirement and specification is not very clear or the team is new and need to [...]]]></description>
			<content:encoded><![CDATA[<p>Pair Testing is one of the interesting testing methodologies where a pair &#8211; developer and Tester, or 2 testers, or sometimes tester and business user will test the application. This kind of testing approach is followed in situations when the requirement and specification is not very clear or the team is new and need to learn the application in a short spam</p>
<p>Pair Testing gains the advantage of analysing the root cause of major bugs easily and since the tester is aware of bug root cause, he/she may start with exact test scenarios to capture bugs and can easily test the initial bug fixing status with the developer. The tester can learn more about the software application by exploring with the developer.</p>
<p>The following would be the gaining points when Pair Testing is followed</p>
<ol>
<li>Developer or business analysts approach the software from a different view. They think in good paths, for example “I have to create an address and edit the fields.” The testers will also look at the exceptions, for example “What happens when I create an address and press cancel instead of save…”</li>
<li>When Pair Testing is executed with a business analyst there will be automatically knowledge sharing between the business analyst and tester. The business analyst will share his knowledge of the application of business with the testers during the session.</li>
<li>If a new project is started with new team members there will be often a gap between testers and developers. By using Pair Testing the team members will work closely together and get to know each other better.</li>
<li>Working in Pairs keeps us sharp, we cannot doze off. We will keep each other sharp.</li>
<li>If we find problems and decide to register them in a bug registration system, the problem is automatically reviewed. We work in pairs, so the data we entered is immediately reviewed by the other one.</li>
<li>As a tester we will encounter mysterious bugs that seem to occur at random. In a Pair Testing session with a developer we could find a pattern and thereby the cause of the bug. The developer will probably see the link between the problems because he has knowledge of the software framework.</li>
<li>The last reason to use Pair Testing is maybe the most important one: It is fun; working together with team members is fun.</li>
</ol>
<p>Though Pair testing has so many advantages, there are some situations when this will not work out. Some of them would be</p>
<ol>
<li>All executed test should be automated. Since, the result of Pair Testing is findings and no test cases; we cannot use the output of a Pair Testing session directly for test automation.</li>
<li>Team members cannot work together. If we have two team members who cannot work together because their characters clash we should not go for Pair Testing. The team members must be able to communicate well and work together without quarrels.</li>
<li>If we are only going to execute structured test cases. It does not add any value execute the test cases together. This kind of tasks can be done by one team member alone.</li>
</ol>
<p>To conclude, Pair Testing is a combination of working together and testing. However, it has a lot advantages above “single” testing. There will be knowledge sharing (about testing and the Software Development process), to train new team members, break down barriers between team members. Still we need to be aware that we should use this testing only when possible and use it wisely.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=200</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Non-Functional Testing Too is important in QA Process</title>
		<link>http://www.ivesia.com/blog/?p=197</link>
		<comments>http://www.ivesia.com/blog/?p=197#comments</comments>
		<pubDate>Tue, 17 Aug 2010 14:50:45 +0000</pubDate>
		<dc:creator>naruna</dc:creator>
				<category><![CDATA[software testing]]></category>
		<category><![CDATA[QA efforts]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=197</guid>
		<description><![CDATA[Majority of the testers will focus more on testing the product against client requirements – which we mention as Functional Testing and pay less attention to non-functional testing. Non-functional requirements often play a significant role in differentiating between a product that is well received by customers vs one that may not do well in the [...]]]></description>
			<content:encoded><![CDATA[<p>Majority of the testers will focus more on testing the product against client requirements – which we mention as Functional Testing and pay less attention to non-functional testing. Non-functional requirements often play a significant role in differentiating between a product that is well received by customers vs one that may not do well in the market place. Some of the key non-functional requirements include Usability, Performance, Security, and Interoperability &amp; Compatibility. To be more precise, Functional requirements define <em>what</em> a system will do while Non-functional requirements describe <em>how</em> the system will do it. Non-functional requirements characterize the behavior that is required in functional requirements</p>
<p>There are some situations which really makes the QA users and project managers to think about importance of non-functional testing for their products. A few of them would be</p>
<ul>
<li>Multi-user application that has tones of great functional features but simply crawls or frequently hangs up when several users try to use the system</li>
<li>A web application that works best only in a limited set of browser types and versions on limited platforms and unfortunately there are users using and comfortable on other versions of browsers and platforms</li>
<li>An application that has sensitive data but is fairly easily susceptible to security breaches and exposure of sensitive information</li>
<li>Product containing excellent features, but vague for real time usage Actual Users because of poor user manual documentation</li>
<li>Project is fully complete and deployed in production systems but users could not able to access the system</li>
</ul>
<p> </p>
<p>In the above scenarios, the tester role is not only limited to test the product against the client specification, but also to verify non-functional requirements. Non-functional risks need to be evaluated and considered during project planning. During requirements phase, both functional and non-functional requirements need to be spelt out and considered by both development and testing teams. The following testing can be considered as a part of non-functional testing and should be performed for a successful delivery of a product and to help the marketing team for a better sale</p>
<ul>
<li>Perform Load Testing to see, how the product behaves under heavy stress/Load. Try to load the system with many users and complicated actions</li>
<li>Calculate the System performance and Response time and ensure product has good performance even during network traffic</li>
<li>Carry out installation testing and verify the product is easy to install without technical expert intervention. Even if it requires, make sure it needs minimal external guidance</li>
<li>Perform Stress and Volume testing to product</li>
<li>Concentrate on compatibility testing and ensure product behaves consistent in all most widely used browsers and operating system</li>
<li>Check for Security Testing which includes<strong> </strong>Application Security, Network Security, System Security</li>
<li>Give importance to documentation testing and verify User Manual Guide, Release notes are reflecting latest updates and highlights</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=197</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How can we do a good bug reporting</title>
		<link>http://www.ivesia.com/blog/?p=193</link>
		<comments>http://www.ivesia.com/blog/?p=193#comments</comments>
		<pubDate>Wed, 04 Aug 2010 14:55:06 +0000</pubDate>
		<dc:creator>naruna</dc:creator>
				<category><![CDATA[software testing]]></category>
		<category><![CDATA[testing challenges]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=193</guid>
		<description><![CDATA[It is a quite common comment received from a developer, that the Bug report is not clear. The steps to reproduce are Vague, captured screenshot is not effective, and many more are usual complaints which tester can hear in his career. Hence, reporting a bug efficiently and effectively is as important as identifying bugs. Reporting [...]]]></description>
			<content:encoded><![CDATA[<p>It is a quite common comment received from a developer, that the Bug report is not clear. The steps to reproduce are Vague, captured screenshot is not effective, and many more are usual complaints which tester can hear in his career. Hence, reporting a bug efficiently and effectively is as important as identifying bugs. Reporting a good bug is not hard, but many times we do it in a hurry and without putting our full attention into it and hence when a bug is not reported properly it may end up in</p>
<ol>
<li>Wasting our time to report bug incorrectly and additional time to correct and rewrite it</li>
<li>Wasting the time of other people who review it and trying to make sense of what we wrote</li>
<li>Reduce our testing professionalism, by writing a bug that is correct but incomprehensive</li>
</ol>
<p>The following components could be considered for a good bug reporting</p>
<p><strong>1. Short and precise title</strong><br />
Each bug should have its individual title. The title gives us the opportunity to quickly understand and remember what the bug is all about. The title cannot be generic (e.g. Error on Application), or too long. It should be one sentence, providing the highlights of the issue and the way to understand how a user could run into it.</p>
<p><strong>2. Concise but complete description</strong><br />
The description of the bug is where the tester can express his artistic sense and write what he thinks will help developers/business users to understand and handle the bug. Items like Steps to reproduce, consequences of bug, and suggested behavior can be included in the bug report</p>
<p><strong>3. Good attachments</strong><br />
Attachments always help the testers in forecasting the issues to developers. This is especially true when we need to show GUI malfunctions, error messages, and/or log files that compliment the description of our bug. One thing to take into account is to provide only the relevant information in attachment. This means that if we have a long log file we can attach only what we know is relevant and not all of it, and capturing the error screen part instead of pasting the entire screen window, etc. Use also zip files and compressed formats as attachments in order to save space.</p>
<p><strong>4. Complete definition of the categorizing fields</strong><br />
Information like Module, Infrastructure, Browser, etc. related to the functionality, in which bugs was found can be described.</p>
<p><strong>5. Correct Severity &amp; Priority</strong> Another big <em>Tester Sin</em> is to over prioritize bugs. Obviously tester is happy when he found a bug and want it fixed, but giving it the wrong severity will only make the person in charge of the bug angry and it will lower the chances of having this bug fixed. Creating and using a Severity Lookup table for bugs will really help testers to place correct and appropriate severity bugs</p>
<p>An example of a Severity Look-up Table that could be used will looks like below<br />
<strong><br />
S1 – Critical</strong><br />
A defect that causes the complete system to stop functioning or that will result in unrecoverable data-loss. The bug has no workaround. We can note down the important bugs that were reported from customers and we assured them will be fixed.</p>
<p><strong>S2 – High</strong><br />
The defect causes a part of the system to be inaccessible or to stop functioning. The bug has no workaround or it has a workaround that will not be easily found by users. High visibility GUI issues can come under this.</p>
<p><strong>S3 – Medium</strong><br />
The defect causes a non-critical failure on the system but it will allow users to continue working. The bug has a workaround that is relatively easy to find and will be acceptable by most users.</p>
<p><strong>S4 – Low</strong><br />
The defect causes no dysfunctions to the system and may even be unnoticed by most users. The bug has an easy workaround or may not even require a workaround at all.</p>
<p><strong>S5 – Enhancement Request or Suggestion</strong><br />
The items which the tester thinks, that it could be enhanced</p>
<p><strong>6. Follow-up and comment.</strong><br />
We should continue following up on our bugs, and providing comments when necessary. This is especially true when a developer or other stakeholder does not understand the bug, and either rejects it or delays it.</p>
<p> </p>
<p>When the above components are followed while reporting bugs, this will improve the tester efficiency and reduces the bugs being transported from QA and Development team.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=193</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Test on Tight Testing Schedule</title>
		<link>http://www.ivesia.com/blog/?p=188</link>
		<comments>http://www.ivesia.com/blog/?p=188#comments</comments>
		<pubDate>Wed, 14 Jul 2010 04:44:44 +0000</pubDate>
		<dc:creator>naruna</dc:creator>
				<category><![CDATA[software testing]]></category>
		<category><![CDATA[QA efforts]]></category>
		<category><![CDATA[testing challenges]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=188</guid>
		<description><![CDATA[Although proper testing requires substantial amount of time and effort in planning and execution, there are situations when time is limited and full-fledged testing runs against the time limitation. How can testers handle such situations?
When facing a limited time frame available for testing, we need to effectively use the available time and resources. Starting the [...]]]></description>
			<content:encoded><![CDATA[<p>Although proper testing requires substantial amount of time and effort in planning and execution, there are situations when time is limited and full-fledged testing runs against the time limitation. How can testers handle such situations?</p>
<p>When facing a limited time frame available for testing, we need to effectively use the available time and resources. Starting the testing of the project with an assumption that “<em>We can’t test everything, no matter what</em>” will really help in prioritizing tasks. Do a risk analysis to identify functionalities with the highest risks and functionalities that will be used by the maximum number of users. Do an analysis about what to test first and in which sequence.</p>
<p>Also, preparing a checklist that focuses on major key areas covered during testing will help testers, by ensuring that they are not missed out in the tight scheduled testing. The checklist should cover</p>
<ul>
<li>Functionalities that are most visible to users and those which are frequently used.</li>
<li>Functionalities that are very important for the intended purpose of the project.</li>
<li>Areas that contain more risk, i.e., those areas/items when broken, will bring the entire application down to ground</li>
<li>Newly added functionalities, since they are the least tested ones</li>
<li>Complex functionalities that are easy to misunderstand</li>
<li>Functionalities that had recent updates or bug fixes</li>
<li>Functionalities that were developed under schedule pressure</li>
<li>Functionalities that could cause the most customer support complaints</li>
<li>Functionalities which, if they go wrong, could result in bad publicity</li>
</ul>
<p>This is clearly not the only exclusive list of guidelines to test under tight testing schedule. But still, it covers many important areas that usually need attention. With the available checklist, proceed with testing the project and help the team deliver the project in time with the expected quality output.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=188</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How important is UAT</title>
		<link>http://www.ivesia.com/blog/?p=181</link>
		<comments>http://www.ivesia.com/blog/?p=181#comments</comments>
		<pubDate>Fri, 02 Jul 2010 04:48:48 +0000</pubDate>
		<dc:creator>naruna</dc:creator>
				<category><![CDATA[software testing]]></category>
		<category><![CDATA[software quality]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=181</guid>
		<description><![CDATA[Whenever a software organization delivers a new project or customizes an enhancement feature for an existing product, it always strives for client satisfaction. While various testing approaches and methodologies are followed within organizations to increase the quality of output, the most important testing for client satisfaction is User Acceptance Testing. During this testing, actual business [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever a software organization delivers a new project or customizes an enhancement feature for an existing product, it always strives for client satisfaction. While various testing approaches and methodologies are followed within organizations to increase the quality of output, the most important testing for client satisfaction is User Acceptance Testing. During this testing, actual business users will get to test the enhanced product. UAT (User Acceptance Testing) is the last major test before delivery. If UAT goes badly, it is fair to say that much of the good work prior to UAT is wasted.</p>
<p><strong>What is UAT (User Acceptance Testing)?</strong></p>
<p>The explanation of UAT is in its name. Taking each part separately explains what it is about.</p>
<ul>
<li><strong>User </strong><strong></strong>These are the real business users, who have to operate the system &#8211; usually the staff of an organization. System developers cannot play this role, as although they are expert at writing software, they are unlikely to know the nuances and the realities of the organization, beyond what they have acquired from the requirements specifications and other documents.</li>
<li><strong>Acceptance </strong><strong></strong>Acceptance means giving the confidence to the client that the product delivered will benefit them by satisfying their actual requirements and expectations.</li>
<li><strong>Testing </strong><strong></strong>Though the most common explanation of testing is to prove the system works, I would say a good test is also one that is designed to try and make a system fail, so as to expose its faults before it goes live.</li>
</ul>
<p>Bringing all the three together, the UAT can be explained as business users checking the system in the context of the business environment to ensure requirements satisfaction.<ins></ins></p>
<p><strong>Why is User Acceptance Testing Required?</strong></p>
<p>The simple answer would be protecting the product/system from harm while at the same time reducing Reputation Risk, Time Risk, and Resource Risk. Therefore the main reason for UAT is to identify what a system will do and how it will benefit the client before it is implemented in their live environment.</p>
<p><strong>How is User Acceptance Testing Performed?</strong></p>
<ul>
<li>The QA team creates a Test environment using the Client Live environment as a base and deploys the product and/or its enhancements.</li>
<li>They engage and coordinate with the client to provide information about the new features that are part of the release.</li>
<li>They hand over the Test Scenarios created for internal Testing to client to validate with their business requirements.</li>
<li>They assist business users in executing the Test Scenarios (and others as the client may determine) and confirming whether all requirements are satisfied.</li>
</ul>
<p><strong>What are the Benefits of User Acceptance Testing?</strong></p>
<p>Apart from the major benefit of the client gaining confidence in the system, benefits include</p>
<ol>
<li>Reduced system failure risk in Live Environment</li>
<li>Reduction in bug count reported from Production</li>
<li>Better understanding of process workflow by actual users</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=181</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iAd – Advertising through the iPhone</title>
		<link>http://www.ivesia.com/blog/?p=143</link>
		<comments>http://www.ivesia.com/blog/?p=143#comments</comments>
		<pubDate>Wed, 16 Jun 2010 05:34:45 +0000</pubDate>
		<dc:creator>sergeo</dc:creator>
				<category><![CDATA[Smartphone Application Development]]></category>
		<category><![CDATA[ADBannerView]]></category>
		<category><![CDATA[Ads in iPhone apps]]></category>
		<category><![CDATA[iAds]]></category>
		<category><![CDATA[interactive and live Ads]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=143</guid>
		<description><![CDATA[iAd is one of the latest offerings from Apple for their huge iPhone developer base. iAd is simply Mobile Advertising through iPhone. This is a great opportunity for iPhone developers who develop free apps to earn some income even while their apps remain free.
Using advertisements has two parts: first, developing the advertisements for the iPhone and [...]]]></description>
			<content:encoded><![CDATA[<p style="TEXT-ALIGN: left">iAd is one of the latest offerings from Apple for their huge iPhone developer base. iAd is simply Mobile Advertising through iPhone. This is a great opportunity for iPhone developers who develop free apps to earn some income even while their apps remain free.</p>
<p style="TEXT-ALIGN: left">Using advertisements has two parts: first, developing the advertisements for the iPhone and second, developing the iPhone application to show these Ads. Regarding the advertisements, these will be interactive as well as live (with videos, games, maps etc.) But the best part for developers is  the development of iPhone applications in which they can create banners to display these advertisements.</p>
<p style="TEXT-ALIGN: left">The selling and hosting of ads will be done by Apple. The developers can create applications using the classes and methods for iAds in SDK and allot space in the user interface to show these advertisements. Apple is sharing 60% of the revenues through such applications with developers. The model basically works based on the clicks and views of an advertisement through an application, similar to web advertising (note: Ad Sense).</p>
<p style="TEXT-ALIGN: left">The developer can use the <strong>ADBannerView</strong> class and its delegate methods to integrate iAds in their applications. They can allocate banner space of sizes 480 x 32 for portrait and 320 x 50 for landscape. These sizes can be achieved using the pre-defined constants <strong>ADBannerContentSizeIdentifier480&#215;32</strong> and <strong>ADBannerContentSizeIdentifier320&#215;50</strong>.The delegate methods like bannerViewDidLoadAd and didFailToReceiveAdWithError should be implemented to handle the various actions while an Ad gets loaded or a banner fails to receive an Ad.</p>
<p style="TEXT-ALIGN: left">iAds is a tremendous help to iPhone application developers to allow them to make money through facilitating advertisements through their applications. This model is expected to revolutionize iPhone application development.</p>
<p style="text-align: justify"><strong>Reference: </strong>For more details on <strong>ADViewBanner</strong> click <a href="http://developer.apple.com/iphone/library/documentation/UserExperience/Reference/ADBannerView_Ref/Reference/Reference.html" target="blank"><strong>here</strong></a></p>
<p style="text-align: justify"> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=143</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consolidation in Application Software space &#8211; it is scary!</title>
		<link>http://www.ivesia.com/blog/?p=172</link>
		<comments>http://www.ivesia.com/blog/?p=172#comments</comments>
		<pubDate>Thu, 03 Jun 2010 09:32:44 +0000</pubDate>
		<dc:creator>senraj</dc:creator>
				<category><![CDATA[enterprise software]]></category>
		<category><![CDATA[application software]]></category>
		<category><![CDATA[Software industry]]></category>
		<category><![CDATA[software innovation]]></category>
		<category><![CDATA[software valuation]]></category>
		<category><![CDATA[software vendor consolidation]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=172</guid>
		<description><![CDATA[Whenever I look at the applications software market, I get the scary feeling that most small and mid-sized application software vendors would be gobbled up by the larger ones. During one of my conversations with a pretty experienced and learned person in the industry, he was mentioning that there would be space for probably 10 [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever I look at the applications software market, I get the scary feeling that most small and mid-sized application software vendors would be gobbled up by the larger ones. During one of my conversations with a pretty experienced and learned person in the industry, he was mentioning that there would be space for probably 10 software companies in the world in the long run.</p>
<p>I assumed that the ten companies he was mentioning would be Microsoft, Oracle, IBM, SAP, HP, Adobe, Nintendo, Symantec, EMC and CA. These would anyway acquire the remaining players.</p>
<p>The challenges that application software vendors face are:</p>
<p>A. There is an open source offering in every segment that you operate</p>
<p>B. The big players bundle your offerings as an add-on to their enterprise offerings</p>
<p>Either way, the software vendor would find it difficult to survive and be profitable. Essentially, you either have to be big or have a really differentiated offering that others including the big boys find it difficult to offer. This means, they either join hands with you through partnerships or acquire you to add  capabilities to their offerings.</p>
<p>I see a lot of entrepreneurs today having acquisition as one of the key exit strategies. They even plan for it, but how successful they are when it comes to such plans are not clearly known. If you have to keep yourself away from getting acquired, then you have to be self funded or you have a differentiated offering, which is obscenely profitable.  Else, you have a 50x valuation, which any of these biggies will find it obscenely pricey and stay away from it.</p>
<p>This form of consolidation, is it good for the industry? Good or bad, it is inevitable as big guys want to grow bigger through both organic and inorganic routes. This is anyway not the end of the road for application software vendors, as more and more companies keep coming up with differentiated and innovative offerings, which will keep challenging the established ones. They in turn, would get gobbled up and the cycle would continue.</p>
<p>If you have noticed, the funniest part of this post is that I have not even touched on the poster boys like Google, Sales Force etc. and that gives me hope.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=172</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sending mail with attachment from iPhone Application</title>
		<link>http://www.ivesia.com/blog/?p=135</link>
		<comments>http://www.ivesia.com/blog/?p=135#comments</comments>
		<pubDate>Wed, 02 Jun 2010 05:12:17 +0000</pubDate>
		<dc:creator>sergeo</dc:creator>
				<category><![CDATA[Smartphone Application Development]]></category>
		<category><![CDATA[addAttachmentData]]></category>
		<category><![CDATA[data as csv]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[MFMailComposeViewController]]></category>
		<category><![CDATA[mimeType]]></category>
		<category><![CDATA[send mail]]></category>

		<guid isPermaLink="false">http://www.ivesia.com/blog/?p=135</guid>
		<description><![CDATA[iPhone applications dealing with data (Budgets, Sales, etc.) are much more useful when we can send the data through mail. The data collected can be moved to a central location and used by other  people or applications.
The iPhone SDK has provided developers with the MFMailComposeViewController class, which can be used to display a  standard interface [...]]]></description>
			<content:encoded><![CDATA[<p style="TEXT-ALIGN: left">iPhone applications dealing with data (Budgets, Sales, etc.) are much more useful when we can send the data through mail. The data collected can be moved to a central location and used by other  people or applications.</p>
<p style="TEXT-ALIGN: left">The iPhone SDK has provided developers with the <strong>MFMailComposeViewController</strong> class, which can be used to display a  standard interface that manages the editing and sending of an email message. This UI will have the facilities to add recipient mail ids in To, Cc or Bcc. There are options to specify the subject line and type in the content of the mail. The user can edit the initial contents you specify and choose to send the email or cancel the operation.</p>
<p style="TEXT-ALIGN: left">MFMailComposeViewController class also offers methods (such as <strong>addAttachmentData</strong>) to add a file/data as an attachment. This method supports most file formats. The file format is passed as a parameter (<strong>mimeType</strong>). The mimeType is generally divided into categories like </p>
<ul style="TEXT-ALIGN: left">
<li>application – formats like json, pdf etc… comes under this type</li>
<li>audio – most of the audio formats comes under this type</li>
<li>image – most of the image file formats are under this type</li>
<li>text – formats like csv, css, rtf, xml, rtx etc…</li>
<li>video – most of the video formats are under this type.</li>
</ul>
<p style="TEXT-ALIGN: left">So the mimeType for a CSV file will be specified as “text/csv”. Along with this, we will pass parameters for data as well as the filename to be used for the attachment.</p>
<p style="TEXT-ALIGN: left">The user can click on <strong>Send</strong> button in the UI to send the mail. The <strong>didFinishWithResult </strong>method, which is a delegate method of MFMailComposeViewController class can be implemented to get the status of the mail sent (like MFMailComposeResultCancelled, MFMailComposeResultSaved, MFMailComposeResultSent, MFMailComposeResultFailed). This status can be used to further handle or alert the user regarding the mail they sent.</p>
<p style="TEXT-ALIGN: left">Thus the developers can easily make use of the iPhone SDK to implement the mailing facility in their own application, which will add more value and make it more user-friendly.</p>
<p style="TEXT-ALIGN: left"><strong>References: </strong>More details on mimeType &#8211; <a href="http://www.iana.org/assignments/media-types/" target="blank">http://www.iana.org/assignments/media-types/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ivesia.com/blog/?feed=rss2&amp;p=135</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
