<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7169499538456104302</id><updated>2012-02-16T05:29:26.983-05:00</updated><category term='sdlc'/><category term='prototyping'/><category term='development environment'/><category term='software engineering'/><title type='text'>SmartBlog</title><subtitle type='html'>Reporting and discussing our technology views with our clients and colleagues</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.smartbinary.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7169499538456104302/posts/default'/><link rel='alternate' type='text/html' href='http://blog.smartbinary.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Todd Smart</name><uri>http://www.blogger.com/profile/18264851912126894114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='10' src='http://2.bp.blogspot.com/_6iuBu9ntHAI/SlylAmhpZ_I/AAAAAAAAAAs/bBAQ3GgYKtY/S220/twitterbg3.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>3</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7169499538456104302.post-4591532291830887566</id><published>2009-07-14T11:35:00.005-04:00</published><updated>2009-07-14T15:18:40.163-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='sdlc'/><category scheme='http://www.blogger.com/atom/ns#' term='development environment'/><category scheme='http://www.blogger.com/atom/ns#' term='prototyping'/><title type='text'>Acceleration of the Ever-changing Development Environment</title><content type='html'>It is hard to believe it has been over 10-years since defending my &lt;a href="http://smartbinary.com/todd/thesis/"&gt;master's thesis&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Back in 96/97, the world had about 4-years of exposure to the commercial web ... it was already so clear that the impact on software engineering was going to be most acute to the development environment.&lt;br /&gt;&lt;br /&gt;Consider this ... there was no major company nor major revenue-generating project built with Java back in 96.  C# wasn't even in use in academia, much less any production system in the private/public sectors.&lt;br /&gt;&lt;br /&gt;Jump forward to today.  It would be boring and rhetorical to list the overwhelming number of new programming languages introduced since Java and C# were born.&lt;br /&gt;&lt;br /&gt;Of course, core programming languages are only a slice within today's array of tech stacks.  Even in tightly controlled dev team environments (and much to my dismay), I've come to expect to find developers using differing vendors/versions of compilers, IDEs, browsers, operating systems, app servers, collaboration tools, etc., etc.  Imagine the number of permutations of development environments this presents ... and within even a single team that is said to be striving to accomplish a single primary goal: to produce a stable, predictable, and maintainable product.&lt;br /&gt;&lt;br /&gt;And ... let's get to the point of this entry ... there is a clear acceleration of the ever-changing development environment.&lt;br /&gt;&lt;br /&gt;There is no doubt in my mind, based on my consulting experience working with distinctly different teams on distinctly different projects each working with distinctly different development environments, things are getting even more complex.  The amount of permutations is accelerating ... rapidly.&lt;br /&gt;&lt;br /&gt;The impacts of this are scary.  The productivity of a development team working with such distinctly different development environments can only suffer.  Sharing experiences/tricks/tips/solutions with these colleagues, bringing new team members into the fray, picking back up on a project written a few months back w/o the original engineers ... these are serious and real problems.  They are risks to every project I've been involved in for over a decade ... and they are rarely managed.&lt;br /&gt;&lt;br /&gt;So, how do we manage this risk of the acceleration of the ever-changing development environment?  Of course, there's no 'silver bullet' here, either.  However, I believe it is manageable.  Team leads *must* enforce a consistent development environment across their team.  Yes, there will be those that are resistant to this ... there may even be those that choose to move on to other projects.  IMO, good riddance.&lt;br /&gt;&lt;br /&gt;This is a topic that I believe I'll discuss more going forward on the blog (since I've been such an avid blogger, eh?).  In the meantime, team leads ... try this:&lt;br /&gt;&lt;br /&gt;Before your next project gets too far into the PoC/prototyping stage, identify what development environment seems to be the most appropriate for the project kick-off.  As members of the team begin to come on-board, ensure that they are competent with the target environment ... or at least capable of being productive in that environment in short time.  Then, enforce it for the first iteration of the project.  On each subsequent iteration, reevaluate the development environment ... ensuring it is still the best stack for the upcoming iteration.   The environment *will* change, but it must be managed and must be consistently used by the development team.&lt;br /&gt;&lt;br /&gt;Remember ... 85% of all software projects fail ... it stands to reason that chances can only improve by following this simple tactic.  Till the next post ... happy coding!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7169499538456104302-4591532291830887566?l=blog.smartbinary.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.smartbinary.com/feeds/4591532291830887566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7169499538456104302&amp;postID=4591532291830887566' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7169499538456104302/posts/default/4591532291830887566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7169499538456104302/posts/default/4591532291830887566'/><link rel='alternate' type='text/html' href='http://blog.smartbinary.com/2009/07/acceleration-of-everchanging.html' title='Acceleration of the Ever-changing Development Environment'/><author><name>Todd Smart</name><uri>http://www.blogger.com/profile/18264851912126894114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='10' src='http://2.bp.blogspot.com/_6iuBu9ntHAI/SlylAmhpZ_I/AAAAAAAAAAs/bBAQ3GgYKtY/S220/twitterbg3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7169499538456104302.post-382135082986029435</id><published>2007-01-10T16:00:00.000-05:00</published><updated>2008-06-24T19:50:19.590-04:00</updated><title type='text'>Ajax4jsf Component Factory</title><content type='html'>&lt;p style="font-family: arial;"&gt;In 2005 and 2006, all of my clients where trying to decide what technology stack to chose for the “next gen” product.  Sound familiar?&lt;/p&gt; &lt;p style="font-family: arial;"&gt;By now, most seem to have at least chosen to forge ahead with stacks based on .NET or Java.  In my most recent engagement, the tech stack of choice was JSE5, JEE4, Hibernate, Spring, JSF, Seam, Ajax4jsf, Facelets - with an Oracle 10g backend.&lt;/p&gt; &lt;p style="font-family: arial;"&gt;Most recently, I’ve been focused on helping the client decide upon how to build their custom JSF components.  The requirements for these components are as complex as they come - highly ajaxified, data-intensive, and MUST play well within the overall tech stack.&lt;/p&gt; &lt;p style="font-family: arial;"&gt;As we’ve come to learn, building enterprise-level compents to this complexity is not simple.  More over, the landscape for JSF component development is in a state of radical evolution right now.  Any company playing in this space is releasing versions of their products - or even new products - weekly.&lt;/p&gt; &lt;p style="font-family: arial;"&gt;&lt;a title="Exadel" href="http://www.exadel.com/"&gt;Exadel&lt;/a&gt; has just announced the &lt;a href="https://ezfaces.dev.java.net/"&gt;Ajax4jsf Component Factory&lt;/a&gt;.  I was fortunate to get an early look (and help from the Exadel team).  My initial impression is that it brings to custom JSF component development the simplicity found in Facelet Tag Files - yet - allowing the full robustness of standard JSF component development.&lt;/p&gt; &lt;p style="font-family: arial;"&gt;I should be working on components through the component factory for the next month or so.  More to come on this subject!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7169499538456104302-382135082986029435?l=blog.smartbinary.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.smartbinary.com/feeds/382135082986029435/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7169499538456104302&amp;postID=382135082986029435' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7169499538456104302/posts/default/382135082986029435'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7169499538456104302/posts/default/382135082986029435'/><link rel='alternate' type='text/html' href='http://blog.smartbinary.com/2007/01/ajax4jsf-component-factory.html' title='Ajax4jsf Component Factory'/><author><name>Todd Smart</name><uri>http://www.blogger.com/profile/18264851912126894114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='10' src='http://2.bp.blogspot.com/_6iuBu9ntHAI/SlylAmhpZ_I/AAAAAAAAAAs/bBAQ3GgYKtY/S220/twitterbg3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7169499538456104302.post-3283011015748459183</id><published>2007-01-02T19:44:00.000-05:00</published><updated>2008-06-24T19:46:54.961-04:00</updated><title type='text'>Time to contribute to my own blog!</title><content type='html'>&lt;p style="font-family: arial;"&gt;For those friends, colleagues, and clients who know me best … you know I spend much time writing tech docs - from analysis to design, to general R&amp;amp;D docs - and way too many emails!  Perhaps this blog will provide me with the outlet I’ve been needing all along.&lt;/p&gt; &lt;p style="font-family: arial;"&gt;I plan to spend significant time posting lessons learned, recommendations for technology choices, and to simply post what’s going on with Smart Binary.&lt;/p&gt; &lt;p style="font-family: arial;"&gt;Speaking of Smart Binary - this coming January 15th will mark 3-years for the company flying completely solo!  Both Susan and I are greatful to the clients we’ve been fortunate enough to work with during these early years.  We look forward to continuing to work with you in the future!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7169499538456104302-3283011015748459183?l=blog.smartbinary.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7169499538456104302/posts/default/3283011015748459183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7169499538456104302/posts/default/3283011015748459183'/><link rel='alternate' type='text/html' href='http://blog.smartbinary.com/2007/01/time-to-contribute-to-my-own-blog.html' title='Time to contribute to my own blog!'/><author><name>Todd Smart</name><uri>http://www.blogger.com/profile/18264851912126894114</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='10' src='http://2.bp.blogspot.com/_6iuBu9ntHAI/SlylAmhpZ_I/AAAAAAAAAAs/bBAQ3GgYKtY/S220/twitterbg3.jpg'/></author></entry></feed>
