<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments for ADITI Blogs</title>
	<link>http://aditiblogs.com/blog</link>
	<description>Think Product</description>
	<pubDate>Thu, 11 Mar 2010 21:57:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
		<item>
		<title>Comment on Project Management – Planning is Agile by Logu Krishnan</title>
		<link>http://aditiblogs.com/blog/blog/2010/01/08/project-management-%e2%80%93-planning-is-agile/#comment-6419</link>
		<dc:creator>Logu Krishnan</dc:creator>
		<pubDate>Wed, 13 Jan 2010 08:19:39 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2010/01/08/project-management-%e2%80%93-planning-is-agile/#comment-6419</guid>
		<description>Good Thoughts Shrinath. I like the balance you are trying to make, especially with the gold Plating &#38; Setting expectations... 
Most project managers think gold plating as a CLIENT DELIGHT, but in the end they miss to deliver the base product with the base quality but there are lots of bells and whistles!
In this process they tend to put enormous amount of pressure on the development!

In addition I think the following also needs to be taken care of (atleast for development projects)

1.	Baking Period – Most of the times a specific portion/core of software requires X amount of CONSTANT TIME, this should never be a variable and needs a CONSTANT effort Y &#38; cannot be distributed/halved. I would like to call that as Baking Time because it’s very analogous to Baking a cake or bread.. No matter what, the cake has to be baked X amount of CONSTANT Time and Y Number of Oven capacity. Else we end up with either greasy or over-burnt Cake. Similarly it’s critical for the architect/lead to find out such piece of software and ensure that that portion of software gets that time.. the X could be time combo of brainstorming + ideating + design + POC + Unit tests + analyzing alternatives + analyzing NFR et al … and Y is the number of devs required to do the task. If it is decided that it’s better to be done as a timeboxed activity by 1 resource so be it…   once this core piece is allowed to be baked properly we can always add icing, bells, whistles et al.
The Project Manager should understand that this is done for common goodness and spending a quality time on this 10% piece of work might have a good impact on the remaining 90% of the product. It could be a pressure but PM has to understand and have his foot on ground to provide such a quality time to the team. Again TRUST is a big factor here!
 
2.	The Real-Estate Broker Effect [Shortening Deadlines] – Few project manager have a tendency of providing false deadlines to the team. For e.g. the customer says total time to deliver is 6 months, the sales guy now walks in and sets the date as 5 months, the GPM sets the date as 4.5 Months, the PM sets the date as 4 Months, the lead sets the internal dead line as 3 months and plans to deliver in 3.5 months… Well the real scenario might not be same, but most of them have this tendency and in essence we tend to lose 50% of valuable time that the engineering team could have easily used to solidify the design instead of just doing plain code &#38; deliver because they have a deadline to meet! This is more like Real estate brokers who hike the rates but in the other direction!

I wouldn’t say this is bad, but there must be an upper bound of 5% - 10% for the buffer time.. which is purely for unforeseen risk. In my opinion if the PM has a buffer time of 10% to 30% he sounds in-efficient in my opinion because he has not calculated all the risks and the project is definitely not in his CONTROL. Moreover it also says that he does not have TRUST on the Engineering TEAM, which is again disastrous!!

3.	Governing the Dynamics - A Real Solid PM – It’s easy for any PM to pass down the Heat/Pressure he got from the customer and his Boss to the people below him i.e. his team (specifically on the deadlines). This is the first step when the PM loses respect from the engineering team. He is merely seen as a physical bridge or log of wood who allows loads of gas to pass through.. but a Real PM is someone who would never allow the engineering team to feel the pressure but still deliver successfully on date. There are many living examples of these kind of solid PM’s I can introduce you to…

How do they achieve this? It’s actually simple – They MANAGE the project instead of TRACKING the Project! i.e. each aspect of project is analyzed logically &#38; analytically and they take a stance of if it’s good let the event to happen and if it’s bad they see who needs to be educated, educate them, provide alternate solutions and solve the crisis. Especially if it’s a customer to be educated the PM should have a real back bone to go back to the customer and say what’s WRONG and educate them.  Which is definitely lacking in most of the incidents and we end up as a disaster!
In this case the PM is the Bozo who has bought down the whole show AND MONEY!! Any PM who says that “I CANNOT SAY THIS TO THE CUSTOMER” should be added to the Watch List

But any PM who Governs the Dynamics and does it with his own style gets loads of respect and glory from the engineering team, their boss and customer 

In the end… it’s all about governing the Dynamics!!

Just my 2 cents…</description>
		<content:encoded><![CDATA[<p>Good Thoughts Shrinath. I like the balance you are trying to make, especially with the gold Plating &amp; Setting expectations&#8230;<br />
Most project managers think gold plating as a CLIENT DELIGHT, but in the end they miss to deliver the base product with the base quality but there are lots of bells and whistles!<br />
In this process they tend to put enormous amount of pressure on the development!</p>
<p>In addition I think the following also needs to be taken care of (atleast for development projects)</p>
<p>1.	Baking Period – Most of the times a specific portion/core of software requires X amount of CONSTANT TIME, this should never be a variable and needs a CONSTANT effort Y &amp; cannot be distributed/halved. I would like to call that as Baking Time because it’s very analogous to Baking a cake or bread.. No matter what, the cake has to be baked X amount of CONSTANT Time and Y Number of Oven capacity. Else we end up with either greasy or over-burnt Cake. Similarly it’s critical for the architect/lead to find out such piece of software and ensure that that portion of software gets that time.. the X could be time combo of brainstorming + ideating + design + POC + Unit tests + analyzing alternatives + analyzing NFR et al … and Y is the number of devs required to do the task. If it is decided that it’s better to be done as a timeboxed activity by 1 resource so be it…   once this core piece is allowed to be baked properly we can always add icing, bells, whistles et al.<br />
The Project Manager should understand that this is done for common goodness and spending a quality time on this 10% piece of work might have a good impact on the remaining 90% of the product. It could be a pressure but PM has to understand and have his foot on ground to provide such a quality time to the team. Again TRUST is a big factor here!</p>
<p>2.	The Real-Estate Broker Effect [Shortening Deadlines] – Few project manager have a tendency of providing false deadlines to the team. For e.g. the customer says total time to deliver is 6 months, the sales guy now walks in and sets the date as 5 months, the GPM sets the date as 4.5 Months, the PM sets the date as 4 Months, the lead sets the internal dead line as 3 months and plans to deliver in 3.5 months… Well the real scenario might not be same, but most of them have this tendency and in essence we tend to lose 50% of valuable time that the engineering team could have easily used to solidify the design instead of just doing plain code &amp; deliver because they have a deadline to meet! This is more like Real estate brokers who hike the rates but in the other direction!</p>
<p>I wouldn’t say this is bad, but there must be an upper bound of 5% - 10% for the buffer time.. which is purely for unforeseen risk. In my opinion if the PM has a buffer time of 10% to 30% he sounds in-efficient in my opinion because he has not calculated all the risks and the project is definitely not in his CONTROL. Moreover it also says that he does not have TRUST on the Engineering TEAM, which is again disastrous!!</p>
<p>3.	Governing the Dynamics - A Real Solid PM – It’s easy for any PM to pass down the Heat/Pressure he got from the customer and his Boss to the people below him i.e. his team (specifically on the deadlines). This is the first step when the PM loses respect from the engineering team. He is merely seen as a physical bridge or log of wood who allows loads of gas to pass through.. but a Real PM is someone who would never allow the engineering team to feel the pressure but still deliver successfully on date. There are many living examples of these kind of solid PM’s I can introduce you to…</p>
<p>How do they achieve this? It’s actually simple – They MANAGE the project instead of TRACKING the Project! i.e. each aspect of project is analyzed logically &amp; analytically and they take a stance of if it’s good let the event to happen and if it’s bad they see who needs to be educated, educate them, provide alternate solutions and solve the crisis. Especially if it’s a customer to be educated the PM should have a real back bone to go back to the customer and say what’s WRONG and educate them.  Which is definitely lacking in most of the incidents and we end up as a disaster!<br />
In this case the PM is the Bozo who has bought down the whole show AND MONEY!! Any PM who says that “I CANNOT SAY THIS TO THE CUSTOMER” should be added to the Watch List</p>
<p>But any PM who Governs the Dynamics and does it with his own style gets loads of respect and glory from the engineering team, their boss and customer </p>
<p>In the end… it’s all about governing the Dynamics!!</p>
<p>Just my 2 cents…</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Future of ETL - Metadata driven by BJ</title>
		<link>http://aditiblogs.com/blog/blog/2009/03/26/future-of-etl-metadata-driven/#comment-5451</link>
		<dc:creator>BJ</dc:creator>
		<pubDate>Wed, 07 Oct 2009 08:07:58 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2009/03/26/future-of-etl-metadata-driven/#comment-5451</guid>
		<description>Hi Jagdish,

Can u please provide some basic details about how I start to design Metadata driven ETL using c#?

Thanks,
BJ</description>
		<content:encoded><![CDATA[<p>Hi Jagdish,</p>
<p>Can u please provide some basic details about how I start to design Metadata driven ETL using c#?</p>
<p>Thanks,<br />
BJ</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SaaS Application Database design approaches by Sreenivasa Rao Pilla</title>
		<link>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3982</link>
		<dc:creator>Sreenivasa Rao Pilla</dc:creator>
		<pubDate>Tue, 14 Jul 2009 06:50:19 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3982</guid>
		<description>&lt;a href="#comment-3962" rel="nofollow"&gt;@Raghu &lt;/a&gt; 
Ya Raghu. This is one thing I have tried and found manageable. However, we still need to evaluate the performance comparing multiple connection pools vs. dynamic SQL (re-compilation and lack of cache etc).</description>
		<content:encoded><![CDATA[<p><a href="#comment-3962" rel="nofollow">@Raghu </a><br />
Ya Raghu. This is one thing I have tried and found manageable. However, we still need to evaluate the performance comparing multiple connection pools vs. dynamic SQL (re-compilation and lack of cache etc).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SaaS Application Database design approaches by Sreenivasa Rao Pilla</title>
		<link>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3981</link>
		<dc:creator>Sreenivasa Rao Pilla</dc:creator>
		<pubDate>Tue, 14 Jul 2009 06:48:33 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3981</guid>
		<description>&lt;a href="#comment-3943" rel="nofollow"&gt;@S Murali &lt;/a&gt; 
1)All DB access still goes through Stored Procedures.
2)We can pass the tenant-id (SaaS application subscriber) to the SP. Retrieve the database schema name based on tenant-id and build SQL statements with a prefix of this schema name.
3)We will not pass end user’s credentials to access the database, as it is not possible in the real time environment. Will use only one set of credentials to access all database schemas. We cannot use the same connection pool if the definition of connection string changes (dbname, userid, pwd etc).
4)Clustered environment (App servers or DB servers) will still work with this approach. DB cluster may be an Active-Passive or Active-Active with an external storage media such as SAN.</description>
		<content:encoded><![CDATA[<p><a href="#comment-3943" rel="nofollow">@S Murali </a><br />
1)All DB access still goes through Stored Procedures.<br />
2)We can pass the tenant-id (SaaS application subscriber) to the SP. Retrieve the database schema name based on tenant-id and build SQL statements with a prefix of this schema name.<br />
3)We will not pass end user’s credentials to access the database, as it is not possible in the real time environment. Will use only one set of credentials to access all database schemas. We cannot use the same connection pool if the definition of connection string changes (dbname, userid, pwd etc).<br />
4)Clustered environment (App servers or DB servers) will still work with this approach. DB cluster may be an Active-Passive or Active-Active with an external storage media such as SAN.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SaaS Application Database design approaches by Raghu</title>
		<link>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3962</link>
		<dc:creator>Raghu</dc:creator>
		<pubDate>Mon, 13 Jul 2009 16:57:42 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3962</guid>
		<description>--- this should have gone before Murali's comment above - but its essentially an email exchange we had----

I've been thinking on the dynamic sql option and have come to the conclusion that dynamic sql might be quite okay provided all db access is through sps…

Basically we’ll need a sql call routing proc like route_call ( client name, proc name, param string) where all three are varchars. The proc maybe uses a lookup table to translate client name to a db schema name and then issues a dynamic sql – “proc_name params”</description>
		<content:encoded><![CDATA[<p>&#8212; this should have gone before Murali&#8217;s comment above - but its essentially an email exchange we had&#8212;-</p>
<p>I&#8217;ve been thinking on the dynamic sql option and have come to the conclusion that dynamic sql might be quite okay provided all db access is through sps…</p>
<p>Basically we’ll need a sql call routing proc like route_call ( client name, proc name, param string) where all three are varchars. The proc maybe uses a lookup table to translate client name to a db schema name and then issues a dynamic sql – “proc_name params”</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SaaS Application Database design approaches by S Murali</title>
		<link>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3943</link>
		<dc:creator>S Murali</dc:creator>
		<pubDate>Mon, 13 Jul 2009 05:17:24 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3943</guid>
		<description>&#62;&#62; okay provided all db access is through sps
How do you control the credentials to access these db?
Also, will this approach work in a cluster environment to address any performance issues.</description>
		<content:encoded><![CDATA[<p>&gt;&gt; okay provided all db access is through sps<br />
How do you control the credentials to access these db?<br />
Also, will this approach work in a cluster environment to address any performance issues.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Future of ETL - Metadata driven by Jagdish Malani</title>
		<link>http://aditiblogs.com/blog/blog/2009/03/26/future-of-etl-metadata-driven/#comment-3591</link>
		<dc:creator>Jagdish Malani</dc:creator>
		<pubDate>Wed, 01 Jul 2009 08:31:56 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2009/03/26/future-of-etl-metadata-driven/#comment-3591</guid>
		<description>Hi Marc,

I have developed an ETL Framework which provides following meta data driven functionality:
- Automation 
- Modularizing processing 
- Data quality 
- Recoverability of ETL job 
- Auditing 
- Logging 
- Notification 
- Ability to reprocess rejected records, files, or any other data source 

I did not use MDDE, I did my own coding. This gave me flexibility to enhance the Framework according to my needs. Moreover, I am not a fan of SSIS transformations in particular. If a certain transformation can be done in DB, I go for it.


Thanks,
Jagdish Malani</description>
		<content:encoded><![CDATA[<p>Hi Marc,</p>
<p>I have developed an ETL Framework which provides following meta data driven functionality:<br />
- Automation<br />
- Modularizing processing<br />
- Data quality<br />
- Recoverability of ETL job<br />
- Auditing<br />
- Logging<br />
- Notification<br />
- Ability to reprocess rejected records, files, or any other data source </p>
<p>I did not use MDDE, I did my own coding. This gave me flexibility to enhance the Framework according to my needs. Moreover, I am not a fan of SSIS transformations in particular. If a certain transformation can be done in DB, I go for it.</p>
<p>Thanks,<br />
Jagdish Malani</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Future of ETL - Metadata driven by Marc Beacom</title>
		<link>http://aditiblogs.com/blog/blog/2009/03/26/future-of-etl-metadata-driven/#comment-3538</link>
		<dc:creator>Marc Beacom</dc:creator>
		<pubDate>Mon, 29 Jun 2009 14:43:38 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2009/03/26/future-of-etl-metadata-driven/#comment-3538</guid>
		<description>Great post!

I've just started down the path of looking into MDDE for a new project. I was wondering how your project was going and if you are using any tools to assist in this project.  We will be using SQL Server 2008 (SSIS packages) and I was looking at the MDDE Studio on CodePlex. Have you ever used the MDDE Studio or are you coding your own?

Thanks,

Marc</description>
		<content:encoded><![CDATA[<p>Great post!</p>
<p>I&#8217;ve just started down the path of looking into MDDE for a new project. I was wondering how your project was going and if you are using any tools to assist in this project.  We will be using SQL Server 2008 (SSIS packages) and I was looking at the MDDE Studio on CodePlex. Have you ever used the MDDE Studio or are you coding your own?</p>
<p>Thanks,</p>
<p>Marc</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SaaS Application Database design approaches by Sreenivasa Rao Pilla</title>
		<link>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3383</link>
		<dc:creator>Sreenivasa Rao Pilla</dc:creator>
		<pubDate>Wed, 24 Jun 2009 08:47:07 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3383</guid>
		<description>ODP.net does not support altering the database on the fly. However, we can look into the following options. Each approach has some limitations, but worth trying based on your requirement.
1) Create dynamic SQL statements in a stored procedure. Pass the DB schema name and prefix it before the table names while building the SQL statement.
2) You can write a Java stored procedure, which in-turn does the marshalling between various DB’s.
3) Even though I have not tried out, OCI (Oracle Call Interface) driver connection pooling by using Java language can help us in optimizing the connection pools.</description>
		<content:encoded><![CDATA[<p>ODP.net does not support altering the database on the fly. However, we can look into the following options. Each approach has some limitations, but worth trying based on your requirement.<br />
1) Create dynamic SQL statements in a stored procedure. Pass the DB schema name and prefix it before the table names while building the SQL statement.<br />
2) You can write a Java stored procedure, which in-turn does the marshalling between various DB’s.<br />
3) Even though I have not tried out, OCI (Oracle Call Interface) driver connection pooling by using Java language can help us in optimizing the connection pools.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on SaaS Application Database design approaches by Msdn</title>
		<link>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3378</link>
		<dc:creator>Msdn</dc:creator>
		<pubDate>Wed, 24 Jun 2009 05:50:40 +0000</pubDate>
		<guid>http://aditiblogs.com/blog/blog/2009/06/03/saas-application-database-design-approaches/#comment-3378</guid>
		<description>How does one implement a Shared database servers with Individual Schemas in Oracle with ODP.NET as the provider as ODP.NET doesnt support changing of the database.</description>
		<content:encoded><![CDATA[<p>How does one implement a Shared database servers with Individual Schemas in Oracle with ODP.NET as the provider as ODP.NET doesnt support changing of the database.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
