Sunday, May 07, 2006
If James Robertson was an Enterprise Architect...
In the past, he has commented on my posting of Why enterprises may never adopt LAMP not by misinterpreting my comments by taking each point as a standalone and therefore concluding that enterprises should never adopt Linux, nor does PHP have its place because that would simply be incorrect.
- NOTE: I have endorsed all of the components of LAMP in the past for enterprise usage with the exception of MySQL (I am more of an Ingres, PostGres fan) but never all as a stack.
So, now for three really difficult questions I would love to see James provide insight into within this context:
1. James as a new hire is responsible for all strategies around software development and wants to make a recommendation on how the enterprise can modernize their IT portfolio. He knows that he has to sell the idea to his peers and others in a rapid manner in order to make the next budget cycle. James has been doing his homework and realizes that while the enterprise should be thinking about multiple aspects of software development, acknowledges that he will be successful if he focuses in one and only one recommendation. Which recommendation should Stephen choose and why?
- A. Recommend to the IT executive team that the enterprise consider a new language such as Ruby and ask for a budget to train several developers in it. He would also consider recommending consulting firms that are not on the company's preferred vendor list and attempt to convince the executives to take some risks.
B. Recommend to the IT executive team that they leverage already existing skill sets such as Java but no longer continue coding business logic into languages but instead consider getting his peers to adopt usage of business rules engines such as Drools, Fair Isaac or iLog.
C. Recommend to the IT executive team that they may extend systems using approaches such as SOA and modeling all future processes and developing loosely-coupled customizations using BPM engines such as Intalio, jBPM and Fuego.
D. Ignore the first tenet of his new job and ignore any direction related to vendor consolidation and attempt to sneak in a small vendor who promises delivery and hope you don't get caught. If
2. James also accepts responsibility for several cost cutting initiatives and discovers he also needs a strategy to counter the effects of lots of folks retiring within the next couple of years balanced with the fact that there aren't a lot of college-aged folks pursuing IT nowadays. James is faced with three choices, which recommendation should he represent and why?
- A. Recommend to the IT executive team to adopt agile methods for software development and attempt to make do with existing staff and supplement with local consulting firms while convincing executives that market trends really won't push up rates locally in the long term and he can overcome any increases in hourly rates with additional productivity.
B. Make the unpopular decision to outsource software development tocountries such as India and China while reducing headcount here in the UnitedStates. Focus on the outsourcing firms capability in terms of CMM, Six Sigmaand educational credentials.
C. Take a hybrid approach by not only outsourcing but also attempt to figure out ways to combine outsourcing with agile (aka agile outsourcing) so that folks in other countries can also practice agile software development. He is still left with figuring out how to get agile to grow beyond its founding members but decides not to present this bit of trivia and therefore decides todo agile without calling it such.
D. Practice Management by Magazine and find every possible article no matter how abstract, email it to your peers to encourage adoption of agile and Ruby instead of attempting to find someone also within another Fortune 100 enterprise and hope to engage in a face-to-face conversation between dissenters in your organization with theirs.
3. James has been also challenged to not only focus in on software development which makes up a tiny portion of the overall IT expenditure but also has been tasked with reducing the total cost of ownership within their infrastructure. James acknowledges that most large environments tend to be risk-adverse in the sense that they practice at some level taking the safe recommendations from large firms when there is a lot at stake. James figures out how to reconcile risk adverse thinking but is also a savage believer in open source. James is faced with four choices, which recommendation should here present and why?
- A. Recommend to the IT executive team to consider cutting expenses within the software development lifecycle by increasing productivity in using dynamic languages and to not be concerned about increased infrastructure utilization but to instead focus in on purchasing more commodity hardware.
B. Consider improving the existing software development process by also encouraging the software development teams that are developing in Java to chose open source alternatives such as JBoss, Liferay and ServiceMix for enterprise development. He would supplement his case by acknowledging that much of the infrastructure costs are really not infrastructure oriented but application-infrastructure oriented and attempt to find commodity alternatives and do so in an incremental manner while also putting together a strategy that prevents lockin at a variety of levels.
C. Outsource the problem space by encouraging small application vendors to start supporting modern languages such as Ruby and moving the problem outside the enterprise more into an ASP model and move away from software that is supported by his traditional vendors. He would also convince the IT executives that ASP models are traditionally very stable, have had no performance / SLA issues and no data leakage exposing privacy concerns.
D. Rant to others that your peers simply don't get it and pound your chest. Pretend that the problem doesn't exist and just keep evangelizing productivity.
I suspect I will be accused of asking the wrong questions by those outsiders who are looking in and they will not hesitate to share their perspectives as to why my questions posed are evil. Hopefully though, they may also respond with what their own recommendations would be in the situation outlined.
- NOTE: I attempted to write the questions in such a way so as not to give away what I believe to be the best answer. Of course, someone will read into them and miss the point. I will respond with my own rationalization after the trackback count goes above twenty.
Links to this post: