<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Software Performance Engineering</title>
	<atom:link href="http://walterkuketz.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://walterkuketz.wordpress.com</link>
	<description>Finding Slow</description>
	<lastBuildDate>Fri, 17 May 2013 19:33:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='walterkuketz.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Software Performance Engineering</title>
		<link>http://walterkuketz.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://walterkuketz.wordpress.com/osd.xml" title="Software Performance Engineering" />
	<atom:link rel='hub' href='http://walterkuketz.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Application momentum</title>
		<link>http://walterkuketz.wordpress.com/2013/05/17/application-momentum/</link>
		<comments>http://walterkuketz.wordpress.com/2013/05/17/application-momentum/#comments</comments>
		<pubDate>Fri, 17 May 2013 19:33:13 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Nonfunctional Requirements]]></category>
		<category><![CDATA[SPE BoK]]></category>
		<category><![CDATA[Transaction Performance]]></category>
		<category><![CDATA[high frequency trading]]></category>
		<category><![CDATA[Response time]]></category>
		<category><![CDATA[Software Performance Engineering Body of Knowledge]]></category>
		<category><![CDATA[Transaction distribution]]></category>
		<category><![CDATA[Transaction model]]></category>
		<category><![CDATA[Transaction sensitivity analysis]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=215</guid>
		<description><![CDATA[Calculating system momentum &#8211; A market basket of transactions and an index Can we use momentum as a derived value or index to alert us to impending problems with the application or system? Well, the transaction response time is really a byproduct of the workload on the system resources. So, may be a better way &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/05/17/application-momentum/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=215&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h1><a href="http://walterkuketz.files.wordpress.com/2013/05/market-data.png"><img class="size-medium wp-image-217 aligncenter" alt="Market Data" src="http://walterkuketz.files.wordpress.com/2013/05/market-data.png?w=313&#038;h=166" width="313" height="166" /></a></h1>
<h1>Calculating system momentum &#8211; A market basket of transactions and an index</h1>
<p>Can we use momentum as a derived value or index to alert us to impending problems with the application or system? Well, the transaction response time is really a byproduct of the workload on the system resources. So, may be a better way to look at it is; does the workload have momentum? Is the workload increasing or decreasing? Borrowing from Physics, momentum is equal to mass times velocity.</p>
<p>We could use transaction complexity to represent mass, we all know that some transactions are heavier than others. However, using response time as velocity really does not work. Instead I could use the transaction arrival rate to represent velocity. Then I could say that the transaction or system momentum is increasing as the arrival rate increases, taking into account the weight of the transactions.</p>
<p>What I am looking for is a communication vehicle to let non-technical people know how the health of the system is.<br />
<em>Momentum is equal to the transaction weight times the arrival rate of the transactions</em>.</p>
<p>I need to pick a rating or scale for my transactions; 1,5,10. Then there is an overall transaction arrival rate and an individual transaction arrival rate. I need the individual transactions in order for the momentum index to have a chance of being relevant.</p>
<p>M = (T1 * T1 TPS) + (T2 * T2 TPS) + (….) or index?</p>
<p>This would be a very custom index for each application. It represents a market basket of transactions. Much list an EFT represents a basket of stocks.<br />
Also, what I want to determine is how quickly the momentum is changing up or down. If I can get the real-time transaction arrival rates, then I can use the momentum to get an early warning of trouble in the system. Another term, might be a volatility index for the application. Can I get the alert in the front-end of the application early and the correlate with all the system resource monitors.</p>
<p>For this I need to borrow from the Financial markets High Frequency Traders. They have tools and techniques that track large amounts of market date in real-time and try to jump in-front of the market momentum. In need to jump in-front of my system momentum.<br />
The faster I can determine that the arrival rate of the heavy transactions is increasing, then I might be able to jump in-front of that and prevent an application or system outage. I need to calculate the rate of change in real time of the arrival rates. I need a to see that at a clock tick at time zero, the arrival rate is 10 TPS and the transaction response time is 300 ms. Then I need another sample at the next clock tick to calculate the TPS is now 11, and the response time is 305 ms. Perfect for using HFT techniques.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=215&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/05/17/application-momentum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>

		<media:content url="http://walterkuketz.files.wordpress.com/2013/05/market-data.png?w=300" medium="image">
			<media:title type="html">Market Data</media:title>
		</media:content>
	</item>
		<item>
		<title>A software benchmark or a performance test; is there a difference</title>
		<link>http://walterkuketz.wordpress.com/2013/05/09/a-software-benchmark-or-a-performance-test-is-there-a-difference/</link>
		<comments>http://walterkuketz.wordpress.com/2013/05/09/a-software-benchmark-or-a-performance-test-is-there-a-difference/#comments</comments>
		<pubDate>Thu, 09 May 2013 12:27:17 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Software Performance Model]]></category>
		<category><![CDATA[Software performance requirements]]></category>
		<category><![CDATA[SPE BoK]]></category>
		<category><![CDATA[PE Team]]></category>
		<category><![CDATA[Software benchmark]]></category>
		<category><![CDATA[Software Performance architect]]></category>
		<category><![CDATA[Software performance engineering]]></category>
		<category><![CDATA[Transaction response time]]></category>
		<category><![CDATA[Value of Software performance engineering]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=210</guid>
		<description><![CDATA[So, what is the difference between a Software Benchmark and a software performance test? The key difference is the size of the bet the business has placed on the outcome of the project. There are hardware benchmarks, database benchmarks, and of course the Transaction Processing Council (TPC), with a long list of standard benchmark tests &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/05/09/a-software-benchmark-or-a-performance-test-is-there-a-difference/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=210&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://walterkuketz.files.wordpress.com/2013/05/model-test-case-execution.png"><img class="alignnone size-medium wp-image-212" style="width:383px;height:278px;" alt="Model test case execution" src="http://walterkuketz.files.wordpress.com/2013/05/model-test-case-execution.png?w=300&#038;h=225" width="300" height="225" /></a></p>
<p><em>So, what is the difference between a Software Benchmark and a software performance test?</em><br />
<em> The key difference is the size of the bet the business has placed on the outcome of the project</em>.</p>
<p>There are hardware benchmarks, database benchmarks, and of course the Transaction Processing Council (TPC), with a long list of standard benchmark tests for companies. The Software Benchmark I am referring to in this article it about the custom application benchmark; designed for your particular business or industry. The best way for a business to make a critical bet the company decision is to define, design and execute a Benchmark for its unique workload and transaction volumes.</p>
<h1><span style="color:#0000ff;"> Who uses a benchmark</span></h1>
<p>The Software Benchmark is needed to determine if the business will use the new application or technology for business advantage. The workload must be well defined, the database must be at production sizes, and the system resource consumption must be clearly monitored. When the benchmark is executed and the question is answered; all the details, the facts, the database demographics, the workload, must be clearly understood by the business decision makers. The Benchmark team must get the test right, in the allocated timeline, if the benchmark takes too long, then you have your answer. The results of the Benchmark typically undergo tremendous scrutiny. A third party is often required to provide the needed visibility and help pass the scrutiny.<br />
There are two categories of companies that undertake a benchmark;<br />
1) Software vendors – the companies that make the software application<br />
2) Consumers of the software – the companies that will use the application for business value</p>
<p>The software performance test is usually for a project or program already underway, the application and technology are already decided. Performance testing is used to make sure the Releases will meet the Service Level Expectations. The Workload for each test may focus on specific parts of the workload and skip others for a given Release cycle. The performance test plan may include;<br />
1) Component testing<br />
2) Duration testing<br />
3) Stability testing<br />
4) Failover and failback testing<br />
5) Also, a round of tuning may be added</p>
<h1><span style="color:#0000ff;"> Benchmarks for software vendors</span></h1>
<p>The business has decided to move the product in to the large client segment of the market. As such, they need to demonstrate that their application will be able to scale to what their market considers to be large, 10 Million accounts for instance. The application must perform well at this level. The key business transactions must still respond in less than two seconds. The overnight processing must still be able to be completed in the defined window, say 4 hours to complete the billing process.</p>
<p><strong>The bet: Business and revenue growth in the large segment of the market. Repositioning of the company in the marketplace in relation to competitors</strong>.</p>
<h1><span style="color:#0000ff;">The consumers</span></h1>
<p>There are a couple of scenarios for this category. One is the business is already considered large in the marketplace, they already have 10 Million accounts or more. However the systems in place are older with restricted functionality that is not easily changed. The business needs to add new features to stay ahead of the competition. The second case is a growth plan, where the business believes to increase its market share, it must grow significantly. The business may currently serve 1 Million accounts, but now have a three year business plan calling for a growth plan to 50 Million accounts. They need a technology platform that can scale with them.<br />
The bet for an already large business: Maintain the current business and add new features quickly on a new platform. Stay a market leader, if the new platform fails, you are no longer the market leader.</p>
<p><strong>The bet for a growth business: Easily acquire new accounts and gain market share, or stumble</strong>.</p>
<h1><span style="color:#0000ff;">Implementation approach</span></h1>
<p>The software benchmark is an event for the business. It is highly visible to Sr. Management, if you are the software vendor, it might be highly visible to your sales pipeline. There may be significant deals waiting on the outcome.<br />
There are typically three to four phases required. Even before that, the organization must review the resources required, people, time, equipment, and budget. The focus on a benchmark can distract already busy people. The developers of the code may not have the time or the skills to design and execute a formal Benchmark. The same for the QA team. A Benchmark may require the use of an external testing lab in order to get the proper configuration. The Benchmark project must be treated as a distinct project.</p>
<h1><span style="color:#0000ff;">Critical areas</span></h1>
<h2>Business goals and objectives</h2>
<p>Clearly state the purpose, to demonstrate the system can safely support the workload of 10 Million accounts. To demonstrate predictable scalability of the application as the workload increases.</p>
<h2>Workload profile</h2>
<p>In order to gain value from the benchmark, you must have an accurate workload. There will be several user profiles for the online component, with the detailed steps they take through the application. For instance, the casual users, the new users, the power users. There must be a representative batch component as well. As the online purchase transactions will drive the invoice creation process in the batch schedule. There could be a month end process and a quarter end process.</p>
<h2>Database size and demographics</h2>
<p>The data distribution must be well understood and clearly defined. If you have 10 Million accounts, some are active and some are closed. There may be a residential profile and business profile, with different numbers of details under each. For instance, an insurance policy can have one driver or four drivers, plus the cars. For a web shopping cart application, there can be four years of historical purchases. Your database needs to simulate this.</p>
<h2>Performance testing process</h2>
<p>The performance testing process must be completely visible and flawless. Generally, you do not have time to rerun a Benchmark. The testing scenarios, test execution, metrics and monitoring must be complete. Many tests may be executed in order to get you ready for the official set of benchmark tests. You need to have a very good test results archive system, because you may not have to completely evaluate the test results, until the end.</p>
<h2>Results analysis and executive summary</h2>
<p>How do you know you ran a successful test? All the detailed results must be compiled and summarized into an executive view. The virtual web transactions and the batch processing must have detailed results. The Virtual users will record the response time of each request. The you must provide the response time distributions, 50th, 75th, 95th. Plus you must include the transaction per second load. Under 10 TPS, the 95th percentile was 2.5 seconds.<br />
The batch processes must include the rate of processing. The rate for the entire Process, there were 5 million invoices processed in three hours. Also the critical path programs must be clearly identified.</p>
<h2>External Vendor lab</h2>
<p>Often times, in order to hit the 10 Million account target, the Benchmark requires the use of an external lab. The Benchmark may require a large server or large number of servicer, the database server may need to be large and the data storage may need the newest vendor equipment. The marketing department may have signed a deal with the vendor to use their equipment for a reduced price to use the equipment and be part of a press release.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/210/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=210&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/05/09/a-software-benchmark-or-a-performance-test-is-there-a-difference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>

		<media:content url="http://walterkuketz.files.wordpress.com/2013/05/model-test-case-execution.png?w=300" medium="image">
			<media:title type="html">Model test case execution</media:title>
		</media:content>
	</item>
		<item>
		<title>Software Performance Artifacts in the SDLC</title>
		<link>http://walterkuketz.wordpress.com/2013/04/08/software-performance-artifacts-in-the-sdlc/</link>
		<comments>http://walterkuketz.wordpress.com/2013/04/08/software-performance-artifacts-in-the-sdlc/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 14:19:18 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Nonfunctional Requirements]]></category>
		<category><![CDATA[Software performance requirements]]></category>
		<category><![CDATA[Software Requirements]]></category>
		<category><![CDATA[SPE BoK]]></category>
		<category><![CDATA[Agile development]]></category>
		<category><![CDATA[Jmeter]]></category>
		<category><![CDATA[Performance Artifacts]]></category>
		<category><![CDATA[Response time]]></category>
		<category><![CDATA[Value of Software performance engineering]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=205</guid>
		<description><![CDATA[Performance artifacts in development Where are your requirements and development performance artifacts? Over the years of being a performance engineer, I have been involved in a number of projects related to performance and scalability readiness assessments. This involves evaluating the software, either from a vendor or developed in-house, to determine if it has been designed &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/04/08/software-performance-artifacts-in-the-sdlc/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=205&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://walterkuketz.files.wordpress.com/2013/04/archeology.jpg"><img class="alignnone size-medium wp-image-204" alt="Archeology" src="http://walterkuketz.files.wordpress.com/2013/04/archeology.jpg?w=300&#038;h=199" width="300" height="199" /></a></p>
<h1>Performance artifacts in development</h1>
<p>Where are your requirements and development performance artifacts? Over the years of being a performance engineer, I have been involved in a number of projects related to performance and scalability readiness assessments. This involves evaluating the software, either from a vendor or developed in-house, to determine if it has been designed and developed with performance and scalability goals. During this readiness assessment project, myself and the team I work with, will look for non-functional requirements for the key business and system transactions, and development guidelines and artifacts that track or measure service time during the development and unit testing phase. Finding performance early.</p>
<h2>Non-Functional requirements</h2>
<p>To start, there are non-functional requirements that should have been defined for the development team. The team develops the code to make the business functions real. The next question is where does your Software development lifecycle and methodology (that’s right, I said methodology) have activities and artifacts specific to performance, scalability, and stability? For example, the application needs a change to the pricing calculation, or order history functions, how fast should it be? Where is it specified that it still needs to be 300 milliseconds after the functional change? Initially the non-functional requirements have specified that the pricing calculation must be completed in 300 milliseconds for average complexity and 600 millisecond for complex calculations. Can you point to the artifact(s) where that is defined in your methodology? Before the developer begins coding, is he or she aware of that?<br />
Then we look for guidelines for developers and services provided by a framework. Has the Performance or Architecture team defined a set of guidelines for the developer to use when building this type of service? Is the use of caching been defined, who verifies the database access and SQL statements are optimal? Where is that captured, what artifacts captures this? Does each developer understand the proper use of logging and code instrumentation, or is it part of the development framework? For the case of the Pricing service, each method must measure service time (internal), and each exposed public service must have a service time measurement.</p>
<h2>Continuous Integration</h2>
<p>A key artifact to look for is the results from the Weekly or daily build process. Are there test results for the internal method calls and external service calls? Junit will support the internal verification and Jmeter can support the external verification. In order to get value from this, the testing database must be robust (not simply single rows with no history). But, how can you use the response results during development to indicate eventual production performance? The value comes from comparing build to build, for instance, did the service time change radically? This can be an early indicator. However, often times the development environment changes or the database changes. The Performance Engineer must show the business there is value by maintaining consistency in the development environment. With a consistent development environment you can show that the service time of the pricing service has significantly changed, well before production.</p>
<h2>Key Performance artifact</h2>
<p>For the Jmeter test case: For build 1, the Pricing service is measured at 1.000 second. The goal is 300 milliseconds. Or, what if the service time is 100 milliseconds? Then you need to track the service time from build to build to monitor for consistency. If the 100 milliseconds goes to 1.00 second, how did that happen? Did the environment change, did the developer add new code to the function? You must evaluate this, as you found it early.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/205/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/205/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=205&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/04/08/software-performance-artifacts-in-the-sdlc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>

		<media:content url="http://walterkuketz.files.wordpress.com/2013/04/archeology.jpg?w=300" medium="image">
			<media:title type="html">Archeology</media:title>
		</media:content>
	</item>
		<item>
		<title>Speed limits</title>
		<link>http://walterkuketz.wordpress.com/2013/04/01/speed-limits/</link>
		<comments>http://walterkuketz.wordpress.com/2013/04/01/speed-limits/#comments</comments>
		<pubDate>Mon, 01 Apr 2013 13:23:38 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Machine Data]]></category>
		<category><![CDATA[Operational Intelligence]]></category>
		<category><![CDATA[Transaction Performance]]></category>
		<category><![CDATA[April First]]></category>
		<category><![CDATA[Nonfunctional Requirements]]></category>
		<category><![CDATA[Real time payments]]></category>
		<category><![CDATA[Response time]]></category>
		<category><![CDATA[Software performance engineering]]></category>
		<category><![CDATA[Speed limits]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=197</guid>
		<description><![CDATA[Dateline Monday April 1st. Big Data and Software performance engineering combine to help eliminate the Government debt, with the ability to collect real-time speed information from every car on the high-way and instanet performance optimized analytics. Speed Limits In an effort to continue to reduce the national and local government debt, the Car makers and &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/04/01/speed-limits/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=197&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h1></h1>
<p><a href="http://walterkuketz.files.wordpress.com/2013/04/odometer.png"><img class="alignnone size-medium wp-image-199" alt="Odometer" src="http://walterkuketz.files.wordpress.com/2013/04/odometer.png?w=300&#038;h=202" width="300" height="202" /></a></p>
<h1></h1>
<h1><span style="color:#3366ff;">Dateline Monday April 1st.</span></h1>
<p>Big Data and Software performance engineering combine to help eliminate the Government debt, with the ability to collect real-time speed information from every car on the high-way and instanet performance optimized analytics.</p>
<h2>Speed Limits</h2>
<p>In an effort to continue to reduce the national and local government debt, the Car makers and the Secret lab from the government have created the ability to enable every car to instantly broadcast its current speed and plate number, encrypted of course, only readable by those who need it.  This allows the state and Federal government to instantly collect new revenue.  The wireless broadcast of the automobile speed and plate number will be good within a ½ mile range of the car, where the remote collectors can assess the fines as they happen.</p>
<p>There are a few options for the program; before each driver is charged, they will be given the option of speeding for the day or just this instance.  This allows the driver to purchase in bulk and at a reduced rate for the day.  If you have urgent meetings during the day, this will allow you to continue to speed and will not be pulled over the rest of the day.  This is a new and revolutionary take on the Speed Pass.  They still have to work through refunds when the driver cannot exceed the speed limit.  Perhaps, roll it forward.  People can enable payment through iTunes, Paypal or credit cards.</p>
<h2>Upcoming Releases</h2>
<p>It is rumored that the next Release of the program will introduce a step program, increments of 5 MPH over the posted limit to create a new premium tier option.  Also, the government is looking at maximizing its revenue by not allowing the Insurance companies to hit the driver with a surcharge for speeding. One anonymous insurance source is quoted as saying “What the hell?, we’ll show them whose boss.”</p>
<p>The implications for Big Data and performance engineering are tremendous.  This type of service offering by the Federal and state governments was only possible by the breakthrough advances by the Big Data and Software performance industries. A long time data and performance engineer, Chris says &#8220;This is an outstanding combintation of the two domains and wants to know if its Shovel Ready&#8221;,</p>
<h2>Airlines get in the act</h2>
<p>In a related story on remote monitoring, payment and data collection; a Major Airline is looking at adding remote sensors in every seat to record the weight of each passenger.  Then after deep analytics, the system will charge people more that are over the average weight for an adult.  They are still in Beta, working through how to identify males and females based on name, when to take the reading and what if people change seats.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/197/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/197/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=197&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/04/01/speed-limits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>

		<media:content url="http://walterkuketz.files.wordpress.com/2013/04/odometer.png?w=300" medium="image">
			<media:title type="html">Odometer</media:title>
		</media:content>
	</item>
		<item>
		<title>A Top Ten List of Software Performance problems</title>
		<link>http://walterkuketz.wordpress.com/2013/03/18/a-top-ten-list-of-software-performance-problems/</link>
		<comments>http://walterkuketz.wordpress.com/2013/03/18/a-top-ten-list-of-software-performance-problems/#comments</comments>
		<pubDate>Mon, 18 Mar 2013 20:56:09 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Recent performance events]]></category>
		<category><![CDATA[Transaction Performance]]></category>
		<category><![CDATA[Project risk profile]]></category>
		<category><![CDATA[Response time]]></category>
		<category><![CDATA[Software performance engineering]]></category>
		<category><![CDATA[Software Performance testing]]></category>
		<category><![CDATA[Web performance requirements]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=190</guid>
		<description><![CDATA[Some of the top reasons that your application/web site/mobile app is slow; 10) I thought you turned off the diagnostic logging 9) Do you really have to index a table with five years of history and one Billion rows 8) You doubled the number of calls from the application tier to the database tier for &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/03/18/a-top-ten-list-of-software-performance-problems/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=190&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://walterkuketz.files.wordpress.com/2013/03/swslowperf.png"><img class="aligncenter size-medium wp-image-192" style="width:356px;height:259px;" alt="SWSlowPerf" src="http://walterkuketz.files.wordpress.com/2013/03/swslowperf.png?w=300&#038;h=225" width="300" height="225" /></a></p>
<p>Some of the top reasons that your application/web site/mobile app is slow;</p>
<p>10) I thought you turned off the diagnostic logging</p>
<p>9) Do you really have to index a table with five years of history and one Billion rows</p>
<p>8) You doubled the number of calls from the application tier to the database tier for the same workload and were surprised by the increase, which no one noticed until production.</p>
<p>7) They moved the application server to another continent</p>
<p>6) They virtualized it (you weren’t using all the real CPU anyway)</p>
<p>5) You wrote your own caching component and didn’t really understand the impact of flushing the cache</p>
<p>4) Even Amazon Web Services stops allocating Servers (thought you could buy your way out)</p>
<p>3) The Marketing group ran a hugely successful ad on a major TV program and you under estimated the new workload. The good news is you and the CIO are on a first name basis.</p>
<p>2) They upgraded to a new version of the Application server/database server/etc. and no one thought a performance test might be needed.</p>
<p>1) The business critical Applications don’t have performance goals, how do you know its slow?</p>
<p>Also, I like &#8220;Is there really a difference between polling and event driven programming?&#8221;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/190/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/190/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=190&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/03/18/a-top-ten-list-of-software-performance-problems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>

		<media:content url="http://walterkuketz.files.wordpress.com/2013/03/swslowperf.png?w=300" medium="image">
			<media:title type="html">SWSlowPerf</media:title>
		</media:content>
	</item>
		<item>
		<title>Software performance requirements &#8211; Business workflow</title>
		<link>http://walterkuketz.wordpress.com/2013/03/13/software-performance-requirements-business-workflow/</link>
		<comments>http://walterkuketz.wordpress.com/2013/03/13/software-performance-requirements-business-workflow/#comments</comments>
		<pubDate>Wed, 13 Mar 2013 11:35:59 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Nonfunctional Requirements]]></category>
		<category><![CDATA[Software performance requirements]]></category>
		<category><![CDATA[Software Requirements]]></category>
		<category><![CDATA[Transaction Performance]]></category>
		<category><![CDATA[Response time]]></category>
		<category><![CDATA[Software performance engineering]]></category>
		<category><![CDATA[Transaction response time]]></category>
		<category><![CDATA[Web site nonfunctional requirements]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=184</guid>
		<description><![CDATA[Business workflow, business process The System response time must not impact the workflow. The transition from transaction to transaction must be seamless and the user must not notice the system.  One might even describe the interaction between the person and the system as graceful and flowing, where the system responds before they can even finish &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/03/13/software-performance-requirements-business-workflow/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=184&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p><a href="http://walterkuketz.files.wordpress.com/2013/03/workflow.png"><img class="aligncenter size-medium wp-image-181" alt="Workflow" src="http://walterkuketz.files.wordpress.com/2013/03/workflow.png?w=300&#038;h=225" width="300" height="225" /></a></p>
<h1>Business workflow, business process</h1>
<p>The System response time must not impact the workflow. The transition from transaction to transaction must be seamless and the user must not notice the system.  One might even describe the interaction between the person and the system as graceful and flowing, where the system responds before they can even finish a sip of their coffee, do your users cozy up to the system (too far??).</p>
<p>Understanding each workflow in the application is crucial to setting the proper response time goals of the application. This is required to set up the software performance requirements for the system and for each transition that supports the workflow. The systems today are highly distributed with web servers, application servers and web services, and message hubs and multiple database, etc.  In the software requirements phase, once the workflows are defined with performance goals, it is critical to make everyone who makes a component in the workflow aware of those goals.</p>
<p>There are call center workflows, document management workflows, order placement workflow, business intelligence and analytical workflow, and of course Big Data workflow.</p>
<p>When in the software requirements phase you might consider this checklist for the workflow;</p>
<p>1)      Identify the workflows: Have the key workflows been defined that have performance requirements and are the response time goals defined?</p>
<p>2)      Duration: have you defined the overall duration of the workflow? How long should the call center interaction by?</p>
<p>3)      Downstream processing: Have you defined when the data from the workflow must be available for the downstream workflows?  For instance, after collecting a customers demographic information and vehicle information, when is it available for rating a policy? 30 seconds, 24 hours?</p>
<p>4)      Business transactions: These support the workflow. Have performance critical business transaction been defined, with response time goals?</p>
<p>5)      System Transactions: These support the business transactions. Have you defined the response time goals for critical systems transactions supporting the critical business transactions?  This is where share system transaction can be found, have your requirements captured enough performance information to tell the developer how fast this system transaction must be and how many transactions per second it will support?</p>
<p>6)      Performance budget: Now that you have a business transaction response time goal, have you allocated the response among all the technical components supporting the business transaction? You should create a system interaction diagram to help with this, defining the time allocated across the tiers; client, web, application, message hub, database.</p>
<p>7)      Database query requests: Have you categorized your database queries? Simple transactions to the complex? Is there a response time goal for each? Is there difference between the first request and subsequent request?</p>
<p>8)      Report requests: Have you categorized the report request types?  Simple reports are 2 seconds, complex multi table grouping, ordering reports take longer that cross fiscal quarters?</p>
<p>9)      Discussion and negotiation with the end-user or business sponsor.  All along you must be in discussion with business people who own the system. The role of the architect is to work with the business to tell them what is possible and how much it will cost. The business priorities are critical.  The business might want to spend the extra money to have near real time reporting to gain advantage or they might be satisfied with a four hour reporting window.</p>
<h1> How to handle the response time discussion</h1>
<p><span style="color:#3366ff;">Categorize:</span> You should look to categorize the response time into; satisfied, tolerating, frustrated and abandonment. Two seconds could keep the people satisfied, while eight seconds will make them frustrated for an online transaction.  Another transaction at five seconds could keep people satisfied and 15 seconds make them frustrated.</p>
<p><span style="color:#3366ff;">Percentiles:</span> You need to establish a goal for what percentage of the user population would be satisfied, 50<sup>th</sup>, 80<sup>th</sup>, 90<sup>th</sup> percentile? 90 percent of the people should have a satisfied experience.</p>
<p><span style="color:#3366ff;">Under what load</span>: You need to discuss with the business people that there is a normal workload, a peak workload, an above peak workload and define target for each.  This business might ok with a relaxed target where the people are tolerating or frustrated for a period of time during a peak load for a short duration.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/184/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/184/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=184&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/03/13/software-performance-requirements-business-workflow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>

		<media:content url="http://walterkuketz.files.wordpress.com/2013/03/workflow.png?w=300" medium="image">
			<media:title type="html">Workflow</media:title>
		</media:content>
	</item>
		<item>
		<title>Software performance requirements</title>
		<link>http://walterkuketz.wordpress.com/2013/03/09/software-performance-requirements/</link>
		<comments>http://walterkuketz.wordpress.com/2013/03/09/software-performance-requirements/#comments</comments>
		<pubDate>Sat, 09 Mar 2013 11:19:39 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Nonfunctional Requirements]]></category>
		<category><![CDATA[Software performance requirements]]></category>
		<category><![CDATA[Software Requirements]]></category>
		<category><![CDATA[Transaction Performance]]></category>
		<category><![CDATA[Project risk profile]]></category>
		<category><![CDATA[Value of Software performance engineering]]></category>
		<category><![CDATA[Web site nonfunctional requirements]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=174</guid>
		<description><![CDATA[How fast, how many users, how many transactions. Zoom, Zoom. Software performance requirements is about setting the performance and scalability context for getting the design and development right for your web application, your web service, your messaging hub, your reporting system, your mobile device. I am creating a few checklists; Project risk profile: Is performance &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/03/09/software-performance-requirements/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=174&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h2 style="text-align:center;">How fast, how many users, how many transactions. Zoom, Zoom.</h2>
<p><span style="color:#0000ff;">Software performance requirements</span> is about setting the performance and scalability context for getting the design and development right for your web application, your web service, your messaging hub, your reporting system, your mobile device. I am creating a few checklists;</p>
<ol>
<li><span style="color:#0000ff;">Project risk profile</span>: Is performance important for this project and what works against performance in the project?</li>
<li><span style="color:#0000ff;">Business workflows</span>: What is the duration of a workflow, how many types of workflow and what is the peak workflow?</li>
<li><span style="color:#0000ff;">Application business volumes and growth</span>: The application automates the workflow with transactions and how will the volumes grow?</li>
<li><span style="color:#0000ff;">Non-user interaction processes (batch, messages):</span> This is about component throughput, how many orders per second?</li>
<li><span style="color:#0000ff;">Communication to down-stream SDLC processes and phases</span>: Setting the stage for design and development.</li>
</ol>
<p>Here is a checklist to help set the context for your team;</p>
<p><span style="text-decoration:underline;">Project Risk profile:</span> These are the overarching performance and capacity considerations that the entire team must be aware of. This would communicate to the team that the business just acquired 2,000 new stores and this new application must now process twice as many users and orders in the same time. Or a new government regulation will be in effect that requires every retail brokerage order to have additional review that must not slow down the order processing system.</p>
<ol>
<li>Performance risk: Has performance or scalability been defined as a risk? Have you asked the business this question, or the production operations team?</li>
<li>Extreme response times: Are there key business transactions with extreme response time requirements? User response under one second, a component that must process 500,000 transactions per second. If you have one second to respond to a user request, you better make sure the developers know this.</li>
<li>Batch windows: Is there a very strict batch processing window and is the current system neat the end of the window? Yes, there are still large batch systems, that process tremendous volumes of data, for instance Mutual fund calculations.</li>
<li>Third party: Does the system depend on third party software to complete the workflow? This could be software you buy and install as part of your application, or you could be using a Web Service.</li>
<li>Third party SLA: Do the third party’s provide enforceable Service Level Agreements? Are you using a SaaS vendor and do you specify the response time?</li>
<li>Peak Workload: Have the key business transactions been evaluated to determine average and peak workloads? And is there process in place to review these?</li>
<li>Calculation: What are the key calculations and how is their response time influenced by the type of calculation (some do more work than others). Are there key pricing calculations, or rate quoting engines, or preference calculations, inventory allocation, etc. I have seen a few pricing calculations get caught-up in the volume discount calculation, and go from 100 milliseconds to 1 second.</li>
<li>System Peak: What are the attributes that drive the peak load of the application? Is it seasonal, advertising driven, back to school, weather related (insurance claims), and do you model the peak? How many developers are not aware of the peak?</li>
<li>Regulatory requirements: Is there an auditing component, reporting timeline, are there large volumes of data required to capture and provide to an agency?</li>
</ol>
<p>Your projects must have a performance risk profile defined. There may be no risk, or there may be significant risk.</p>
<p>The next post will be about the business workflows.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/174/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/174/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=174&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/03/09/software-performance-requirements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>
	</item>
		<item>
		<title>performance engineering organization alignment</title>
		<link>http://walterkuketz.wordpress.com/2013/03/01/performance-engineering-organization-alignment/</link>
		<comments>http://walterkuketz.wordpress.com/2013/03/01/performance-engineering-organization-alignment/#comments</comments>
		<pubDate>Fri, 01 Mar 2013 11:40:42 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Nonfunctional Requirements]]></category>
		<category><![CDATA[Software Requirements]]></category>
		<category><![CDATA[SPE BoK]]></category>
		<category><![CDATA[PE Organizational Model]]></category>
		<category><![CDATA[PE Team]]></category>
		<category><![CDATA[Software Performance architect]]></category>
		<category><![CDATA[Software performance engineering]]></category>
		<category><![CDATA[Value of Software performance engineering]]></category>
		<category><![CDATA[Web Performance]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=167</guid>
		<description><![CDATA[Where does a Software Performance Engineering team fit into the Enterprise? Shared services and business units Many Performance engineering teams end up somewhere, rather than placed somewhere. There tends not to be much in the way of preplanning or discussion with the Sr. IT management team. In my experience teams have been in shared services &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/03/01/performance-engineering-organization-alignment/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=167&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h1></h1>
<div id="attachment_169" class="wp-caption aligncenter" style="width: 311px"><a href="http://walterkuketz.files.wordpress.com/2013/03/puzzle.jpg"><img class="size-medium wp-image-169" alt="Where is the SPE team?" src="http://walterkuketz.files.wordpress.com/2013/03/puzzle.jpg?w=301&#038;h=223" width="301" height="223" /></a><p class="wp-caption-text">Where is the SPE team?</p></div>
<h1></h1>
<h1 style="text-align:center;"><span style="color:#3366ff;">Where does a Software Performance Engineering team fit into the Enterprise?</span></h1>
<h2><i>Shared services and business units</i></h2>
<p>Many Performance engineering teams end up somewhere, rather than placed somewhere. There tends not to be much in the way of preplanning or discussion with the Sr. IT management team. In my experience teams have been in shared services organizations such as;</p>
<ol>
<li>Production/Operations,</li>
<li>Quality Assurance,</li>
<li>Development,</li>
<li>Architecture,</li>
<li>Testing Center,</li>
</ol>
<p>where they have to support many different applications and provide difference services across the Enterprise.  Often times, the business units do not know how to engage with a shared services team and the PE team does not know how to engage the business.</p>
<p>When placed in a<span style="text-decoration:underline;"> Business Unit</span>, this typically means the business is aware the value that a PE team brings. The team has a more Sr. leader who is technical, part project manager, and can interact with the business to ensure the team is aligned.  The PE team will also be involved in more technical and product evaluations.  Each organization influences the goals and purpose of the PE team.  There must be an Enterprise Performance engineer path.</p>
<h2><i>Care and feeding of the core PE team</i></h2>
<p>The high value PE team usually has multi-disciplined people, people with a wider technical skillset that most other team within IT.  A low value performance testing team typically has a narrow set of skillsets, as their mission is to execute performance tests, where they do not understand the system under test very well. A critical part of managing a PE and a PT team is to make sure there is a well defined career path that helps shape the more junior person and helps to extend the technical and non-technical skillset of the more senior people. They should also growth their understanding of the business.</p>
<h2><i>Enterprise architecture</i></h2>
<p>The EA team is involved in many of the Enterprises large scale projects and they usually have a handle on the risks of the large projects. The EA team is involved early in the SDLC, they are technical team that understands the business. When a PE team is placed here, it can have Enterprise wide visibility into the key projects, this allows the team manager to insert the team into the high risk projects and to see the planned projects.</p>
<p>The Director of PE must be a direct report to the leader of the EA team. The goals of the typical EA team are very much in alignment with the goals of the PE team, the EA mission is to translate business requirements to a technical solution for business value. The PE mission is to help manage risk; the risk the applications will not meet the user experience, the risk the applications will not achieve the business goals of scalability, and reliability.</p>
<p>The risk here for the PE organization is the team does not stay involved for the development and testing process.  The PE career path here can be an issue, as the way to promotion is to be an EA.  The EA are involved early and once the design is approved, they are not involved in the detailed development.  The PE team must be involved in the full SDLC.</p>
<h2><i>Quality assurance</i></h2>
<p>Most QA organizations are focused on the functional requirements of the application. They are involved later in the SDLC, however, there is a trend to involve them in the requirements phase to define the tests cases at that time. When a PE team is placed here, it tends to be very testing focused. The project development teams involve the PE team when getting ready to run performance tests. Not during the design and development phases.</p>
<p>The QA team is very focused on the business needs, however they tend not to be technical.  There very few software developers in the QA team.  A high value performance engineering team is technical and business aware. This lack of technical focus within the group will impact the PE team and the PE career path.  The QA career path is different from the PE path. QA can be a manual process in many organization and lack the drive to automate testing.  The PE team needs automation to be successful, as technology changes.</p>
<p>There is a risk here is not enough focus on the technical skillset, too much focus on testing and not enough on design and development, where does the career path lie?</p>
<h2><i>Operations</i></h2>
<p>The goal of Operations is to keep the production applications running smoothly and performing well, where all is well and the customers are happy. The Ops team is the end of the line for the application and they often feel the pain of poorly performing applications, where they have to make it perform.  Often times the development teams do not make the application will performance well, unfortunaltey, response time, scalability, utilization of system resources is the problem of Ops.  They were often not involved at all during design and development.  This is a technical team, often times with a more limited understanding of the business needs.</p>
<p>The operations team put in place monitoring and measurement processes and tools for the applications. The performance team placed in this group usually has a capacity planning and troubleshooting focus. This is because when the application is moved into production, historically it may not have performed well, and the Ops team had to fix it.  They monitor the resource consumption of the production system, they understand the workload of the applications and can determine when it changes.</p>
<p>The performance team in this group will be involved in predicting the expected capacity of the new or modified applications, they evaluate the workload, review performance test results and determine  if additional computing resources are required.  They will have access to the production workload and gain a good understanding on how the application is used.  This information is critical to designing a high value performance test plan.</p>
<p>The risk for the PE team in this group is a reactive focus, and late involvement in the SDLC where they are not aware early enough on the changes to the applications. They may not be involved in the performance testing of the application and have limited access to the results of the testing.  The career path is at risk here as well.</p>
<h2><i>Business unit </i></h2>
<p>Large business units set their priorities and can have large critical development programs that span years.  The IT and Business leadership team have bought into the value that PE brings and how it mitigates risks for the business. These large programs will also have many different Releases, each with added business functionality and complexity. The development team is also part of the business unit.  The business unit may set up the PE team as a shared resource within the BU, to be leveraged across the critical business applications.</p>
<p>When a PE team is placed within the business unit it is viewed as a critical success factor in each major release. The development process in this situation often has PE activities embedded in the SDLC;  non-functional requirements are defined, design reviews, code reviews and unit testing for performance, performance testing, and production monitoring and measuring.  This is a more integrated team. The PE team is very in tune with the business goals and priorities. The PE team leads the PT team as well, there are well defined performance test scenarios and the expected outcome is well known.</p>
<p>The risk in this cases is minimal, however the career path will be maintained outside the program.  There will still be the need for a Enterprise Performance Engineering leader who can manage training and career paths.</p>
<h2><i>Scattered Performance team</i></h2>
<p>In this case, a performance engineering team does not exist. There are key people scattered across the organization who can take on the role of PE when needed.  They can be in all the organizations mentioned previously.  Often times they are brought together (summoned) when there is a critical performance problem.   This structure may be good enough for the business, there may be few and far between production issues related to performance and scalability.</p>
<h2><i>A performance testing center</i>.</h2>
<p>The business has pushed for a low cost performance testing team that is typically in a different geography or off-shore. The development team or the QA team will define the test scenarios and test cases to be executed. In this case, you have people who are not performance engineers defining performance test cases for a testing team that does not have a performance engineer. The remote performance testing team often has very little understanding of the application under test. The PT team produces basic performance reports from the testing tool.</p>
<p>In some cases, the PT team cannot execute a test due to a technical issue that they cannot solve. They end up waiting for the next day for the development team to solve it. The value in a PT comes from the ability to understand the application, overcome many technical issues and provide insightful test results. The testing center model requires more involvement from the development team, in some cases so much involvement, the development ends up running the test.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/167/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/167/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=167&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/03/01/performance-engineering-organization-alignment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>

		<media:content url="http://walterkuketz.files.wordpress.com/2013/03/puzzle.jpg?w=300" medium="image">
			<media:title type="html">Where is the SPE team?</media:title>
		</media:content>
	</item>
		<item>
		<title>Performance Engineering and Agile Methods</title>
		<link>http://walterkuketz.wordpress.com/2013/02/16/performance-engineering-and-agile-methods/</link>
		<comments>http://walterkuketz.wordpress.com/2013/02/16/performance-engineering-and-agile-methods/#comments</comments>
		<pubDate>Sat, 16 Feb 2013 15:27:57 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Agile Methods]]></category>
		<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Nonfunctional Requirements]]></category>
		<category><![CDATA[Software Requirements]]></category>
		<category><![CDATA[SPE BoK]]></category>
		<category><![CDATA[Agile development]]></category>
		<category><![CDATA[Agile Method]]></category>
		<category><![CDATA[Software performance engineering]]></category>
		<category><![CDATA[Walter Kuketz]]></category>
		<category><![CDATA[Web performance requirements]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=152</guid>
		<description><![CDATA[Your are not Agile Integrating Software performance engineering with Agile software development methods.  This should be easy, right? These two methods are not naturally suited for each other; Performance engineering has rigorous and defined methods for defining non-functional requirements in the development cycle, and performance testing requires production like test systems with a proper transaction &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/02/16/performance-engineering-and-agile-methods/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=152&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h1><a href="http://walterkuketz.files.wordpress.com/2013/02/agile-and-pe.png"><img class="aligncenter size-medium wp-image-159" style="width:525px;height:326px;" title="Partial Functionality" alt="Agile and PE" src="http://walterkuketz.files.wordpress.com/2013/02/agile-and-pe.png?w=525&#038;h=285" width="525" height="285" /></a>Your are not Agile</h1>
<p>Integrating Software performance engineering with Agile software development methods.  This should be easy, right? These two methods are not naturally suited for each other;</p>
<p>Performance engineering has rigorous and defined methods for defining non-functional requirements in the development cycle, and performance testing requires production like test systems with a proper transaction workload mix, and a large database. Performance testing can introduce more time in a release schedule when the application was designed and developed without well defined performance and scalability requirements.  The value in performance engineering methods is to manage risk and to design and build highly scalable systems that support the busines growth.</p>
<p>Agile methods start with stories and themes, a defined system architecture, and a partial list of required features. The team leader defines a series of releases comprised of a series of scrums.  Each release will have partial features and functions, Each scrum may not finish all the features listed in the scrum and need to be added to feature backlog. The schedule dominates the decisions and value of Agile methods is to get new features into production qucikly.</p>
<h2>The Challenge</h2>
<p>Businesses are adopting Agile methods for larger and larger software development projects. The projects are moving from department focus to Enterprise focus. The teams are getting larger and distributed. The Non-functional requirements of systems are becoming more stringent.  The end user experience is critical.</p>
<p>How do we implement performance engineering and performance testing tasks and activities in the Agile methods? The introduction of PE/PT cannot compromise the original intent of Agile, faster and paprtial delivery of software. The goal of Agile methods is to produce frequent working copies of the system, with incomplete features.  Features are introduced for each release. Traditional performance testing occurs after all the features have been developed and the application is nearing production.</p>
<p>This is not about fitting Agile methods into performance engineering, it is about adapting performance engineering to Agile methods.  Business are using Agile to accomplish business goals, that goal is speed to market.</p>
<p>The performance team must approach the project that same way the Development team does. People over process, multi-disciplined, learning and adapting. The performance engineer and the performance tester/scripter must understand the performance test process extremely well. During an Agile Performance Sprint, the Performance team will have to adjust and adapt to meet the timeline.  They will have to communicate performance issues to the development team so they can get the fixes into the next Sprint backlog.</p>
<h2>Amending performance terms to Agile terms</h2>
<p>Define the Performance Theme for the project. This is a project wide message to let everyone know the project has a performance and scalability focus, and the risk associated with the project require PE tasks, activities, and people. This must be conveyed to the Architect and the lead technical person, that best practices, tips and techniques for performance and scalability must be used for this project.</p>
<p>Performance Stories – The performance tests for the project, the workload models, and the test types. How do you add performance needs to the Story?</p>
<p>Performance backlog – The performance tests that need to be executed. The performance issues uncovered. When a performance issue is found, it must be put in the scrum/release backlog.</p>
<p>Spike – How will the performance tests be executed in context of the Release schedule and Sprints? Will there be focused out of band set of performance tests?</p>
<p>Definition of Done – Clearly defined exit criteria for the Performance tests.</p>
<p>New role on the Agile team.  A performance engineer for architecture reviews, code reviews, database reviews, and test planning.</p>
<h2>The development team</h2>
<p>Since the project has been set to a performance theme, the development team must use best practices for performance when developing code/services. The skillsets and techniques required to design and build highly performing systems must be communicated to the team. A critical success factor requires the development team to build perform into the system from the beginnning.  This will  help eliminate rework or technical debt due to poorly performing code. <em>Performance is designed into applications, it is not tested into applications</em>.  If the development team builds for performance the performance testing process will be much easier.</p>
<h2>Performance testing</h2>
<p>How many environments are avaialble for the Releases and Sprints? Is there a dedicated performance testing environment ready to go for performance testing to start immedately? The enviroment must be ready to begin testing in order to keep the value of Agile going.</p>
<p>Will there be multiple rounds (sprints) for PT, one or more tests is executed with various degrees of partial feature completion. There could be three or more PT Sprints, plus a final PT once all the features have been completed.</p>
<p>A round of performance testing will be done at the end of either a release or a sprint.  The performance team must be fully aware of the features available for testing. Each feature will require the development of one or more test scripts, with the supporting data.</p>
<p><strong>Performance test database:</strong> Tracking the data readiness.  During the course of the sprints and releases, the database structure may change. The performance team must be fully aware of the changes and understand the impact to the test schedule.  If the database changes are significant, you may have to reload the Performance database. This would need to be accounted for in the project schedule. The performance and developmen team should automate the data creation process and reload process as much as possible to adhere to the value of Agile methods.</p>
<p>The typical performance test project has a startup phase where the test suites are planned, the test cases identified and the test scripts created.  The scripts and test cases are vetted and prepped for formal test execution. In the Agile approach, the performance test cases and the performance test scripts are developed along the way.  The performance team will use an Agile approach as well.</p>
<h2>Performance testing in Sprints.</h2>
<p>The performance plan will follow the same Agile methodology, the upfront planning, testing lab build out (similar to the architecture phase), then a series of sprints leading up to a final release. The workload will be evolving at each sprint. The Sprint should be three weeks, with the rule being “Make no Changes” this will be a measurement only exercise. The first week is the recoding of new scirpts, updating the test User Profiles, and modify the Database as required. Then there will be two weeks of test execution, with a report listing the issues.</p>
<p>more to come..</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/152/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/152/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=152&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/02/16/performance-engineering-and-agile-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>

		<media:content url="http://walterkuketz.files.wordpress.com/2013/02/agile-and-pe.png?w=300" medium="image">
			<media:title type="html">Partial Functionality</media:title>
		</media:content>
	</item>
		<item>
		<title>Machine Data and Big Data</title>
		<link>http://walterkuketz.wordpress.com/2013/01/27/machine-data-and-big-data/</link>
		<comments>http://walterkuketz.wordpress.com/2013/01/27/machine-data-and-big-data/#comments</comments>
		<pubDate>Sun, 27 Jan 2013 19:07:30 +0000</pubDate>
		<dc:creator>Walter Kuketz</dc:creator>
				<category><![CDATA[Application Performance]]></category>
		<category><![CDATA[Machine Data]]></category>
		<category><![CDATA[Operational Intelligence]]></category>
		<category><![CDATA[Transaction Performance]]></category>
		<category><![CDATA[Application performance management]]></category>
		<category><![CDATA[rescue projects]]></category>
		<category><![CDATA[Transaction distribution]]></category>
		<category><![CDATA[Transaction response time]]></category>
		<category><![CDATA[Value of Software performance engineering]]></category>

		<guid isPermaLink="false">http://walterkuketz.wordpress.com/?p=142</guid>
		<description><![CDATA[System log data is Big Data. Over the years I have been involved in a number of production rescue projects, where the system is either unavailable or in a degraded state. These are complex systems, with many technical components. These projects often start with a group of diverse people and teams saying their component is &#8230;<p><a href="http://walterkuketz.wordpress.com/2013/01/27/machine-data-and-big-data/" class="more-link">Read More</a></p><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=142&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<h1 style="text-align:center;">System log data is Big Data<span style="color:#0000ff;">.</span></h1>
<p><a href="http://walterkuketz.files.wordpress.com/2013/01/server_log_file.gif"><img class="aligncenter size-medium wp-image-144" alt="Server log file" src="http://walterkuketz.files.wordpress.com/2013/01/server_log_file.gif?w=300&#038;h=154" width="300" height="154" /></a></p>
<p>Over the years I have been involved in a number of production rescue projects, where the system is either unavailable or in a degraded state. These are complex systems, with many technical components. These projects often start with a group of diverse people and teams saying their component is working fine. The devil is in the details. In order to find the problem, we have to look at the logs and configurations and correlate the events. Many companies have partial solutions, where you have to get the logs from many diverse systems and do the analysis (tailing files, greping, Perl, Excel). Time and resources are consumed to find the issues. Usually there is no central dashboard or reporting, most of the time is spent on finding the right logs and making the data useful, all the while the system is still not working.  There are a number of new products out there to help with this, to Operational Intelligence from machine data.</p>
<h2>Machine Data is Big Data</h2>
<p>Complex business applications and their supporting systems are a rich source of data. Every technical component in the system produces logging information.  There are detailed logs on every transaction that is processed successfully and there are error or exception logs for failed transactions.</p>
<p>The current definition of Big Data includes;</p>
<ul>
<li>Variety a large number of data sources and formats, system logs have that covered</li>
<li>velocity rapidly changing and fast moving, log records are created by the 100’s every seconds and</li>
<li>volume of data, data is recorded for events and for time periods.</li>
</ul>
<p>Enterprise class business applications can have 100’s of technical components.  One business transaction will fan out and create 100’s of log and audit table entries. The Apache web server records each request, the Websphere or Weblogic server records requests, the application within the container will create log entries, the database server, the message servers, and the storage platform.</p>
<p>Do you have a big picture of your operations environment? This rich and complex technical environment presents a challenge for the operations and development teams. It presents a challenge for the software performance engineer. When response time slows down, or a component is not quite working as expected, or in general a production issue arises, root-cause analysis is problematic.  There are partial solutions for providing the entire picture of the problem. Locating the causes of the problem can be time consuming.  The Operations team is managing a larger and large number of real and virtual environments. Plus, the business is asking for more frequent releases into product.</p>
<h2>New tools for machine data</h2>
<p>These tools not only help with trending performance of key business transaction and root-cause analysis that can track configuration changes (often the root of problems), there is a big compliance and security benefit from them. Correlating system access logs can help with information forensics.</p>
<p>You need to collect all the machine data that is available to you;</p>
<ul>
<li>Network packet flow information from the Cisco routers and switches,</li>
<li>Storage subsystem metrics from EMC or Netapp</li>
<li>Database metrics from MySQL, Oracle and MS SQL Server</li>
<li>Application servers from your Log4j messages</li>
<li>Microsoft WMI</li>
<li>Web Server information from Apache</li>
<li>Operating system information from AIX, Linux and VMWare</li>
<li>End user experience</li>
</ul>
<p>Massive amounts of data are collected and indexed, then made available for real-time analysis. Alerts can be configured for key metrics. If you use these tools and are monitoring all the logs and configuration files, have dashboard created and alerting on the key metrics, you are way ahead on the problem solving curve.</p>
<h2>What is the ROI?</h2>
<p>You have to spend money on these tools, so how do you position them with the keeper of the budgets?  Will this tool replace some other tool or set of tools?  Does your Application Performance Management Road Map already call for achieving Operational Intelligence?  Your ROI calculation either demonstrates an indirect benefit to the business or a direct benefit to the business. You can start with a free version of some of these products, I suggest you download them and use them in your testing environments.  Then, show the value derived whe you have to solve a problem.</p>
<p>If you can make the claim that this tool will reduce your Retail web site from losing customers, then you might have direct benefit. Or, you can make the claim that with this tool fewer people are required for Root-cause analysis. If any of your production outages were caused by product configuration problems, then these tools can help. You must know the cost of an outage, $5,000/minute, $15,000/minute, etc. Perhaps, fewer people are needed to growth with the business. You can change your hiring profile and curve as one outstanding operations person can now support twice the number of systems.</p>
<h4>These are things the forward looking software performance engineer must be doing to continue to add value to the business.</h4>
<p>Can you make the case that these help with business agility?</p>
<p>Check them out..</p>
<p>Sumo Logic <a href="http://www.sumologic.com">www.sumologic.com</a>, Splunk <a href="http://www.splunk.com">www.splunk.com</a> , Alert Logic <a href="http://www.alertlogic.com">www.alertlogic.com</a> , Loggly <a href="http://www.loggly.com">www.loggly.com</a> , LogRythm  and more, google Machine Data.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/walterkuketz.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/walterkuketz.wordpress.com/142/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=walterkuketz.wordpress.com&#038;blog=38335541&#038;post=142&#038;subd=walterkuketz&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://walterkuketz.wordpress.com/2013/01/27/machine-data-and-big-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/2218490de06f054a52daf40fd83c597a?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">walter1128</media:title>
		</media:content>

		<media:content url="http://walterkuketz.files.wordpress.com/2013/01/server_log_file.gif?w=300" medium="image">
			<media:title type="html">Server log file</media:title>
		</media:content>
	</item>
	</channel>
</rss>
