Talk about software architecture, SharePoint and collobration tools, patterns and development methodologies and the challenges being faced in their adoption.
Friday, February 20, 2015
Does Enterprise Architecture add any value - Elevator Pitch
Enterprise Architecture is an interesting area, where the most commonly asked question is 'Does it add any value to an organisation?". There is an interesting on linked-in on this subject and the responses from architects round the globe are quite enlightening on how they think and would present (or sale) EA to the executive management.
Architects are often challenged to describe the value that EA provides. What is your go to "elevator pitch
I contributed to the thread by writing these two short stories, preferred to go for using analogy than some boring technical jargan... presenting them below as on the discussion thread they would be hard to find. Let me know what you think?
Story 1:
G'day Mr CXO, So you need to know why do you need something known as EA (the guy)? Let me share a short story with you... A warship's captain once took his gunship to fight the submarines and only when he ordered 'Fire' he realised his boat was not well equipped to sink the already sunken sub-marines...it was too late for him then... the story could have a different end..if the captain had an EA (the guy) ensuring the captain and his crew had the right boat, well equipped with all bells and whistles needed for their 'mission' .. I think this is your floor Mr. CXO
Story 2:
Story 2: G'day Mr CXO, So you need to know why do you need something known as EA (the plan)? Let me share a short story with you... A warship's captain committed to his leaders that he would defend the country at all times, above water or underwater. However he had only fought battles above the water surface. However, one day he learned the enemy is heading towards their waters with submarines, no problemo, he ordered his crew to prepare the boats and sail....but....at this last minute he found besides all his rhetoric neither he had the right vessels nor his crew had the ability to stop the submarines....it was too late for him then... the story could have a different end..if the captain had an EA (the plan) ensuring the captain had his crew well trained with the right boats, well equipped with all bells and whistles needed for their under the sea 'mission' .. I think this is your floor Mr. CXO
Thursday, October 2, 2014
Microsoft Azure Dev Camp - Australia Oct 2014
Saturday, January 23, 2010
Writing Software Requirements Specifications | A Technical Communication Community
Writing Software Requirements Specifications A Technical Communication Community: "Writing Software Requirements Specifications
by Donn Le Vie, Jr.
Here's the scenario: You're finishing up your latest HTML Help project...no more late nights or weekends...back to a 'normal' 50-hour work week. That's when the development team lead strolls into your office and says she just got your manager's okay for you to help the development team 'put together the functional requirements specification template for the next major project.'............."
Monday, November 3, 2008
WCF Performance: Don't take it for granted
Conclusion first,
Our Challenge: 300 user base, when users execute complex search queries that will go through wcf services and for that our db would take more time than usual in executing the searches then other users will experience significant delays while interacting with the system. They will get web service calls timing out but you find CPU, RAM and other hardware resources were underutilized on IIS and DB box.
Solution:
- By default WCF can't serve more than a limited number of concurrent users or requests. OUT of box WCF comes with conservative performance settings and in most of the cases you will have to tune WCF services yourself.
the key parameters that are to be set in services config file
<serviceThrottling maxConcurrentCalls="Integer"
maxConcurrentInstances="Integer"
maxConcurrentSessions="Integer" />
Following values should give you a good performance boost, you can even go beyond 10000 but you sould perform som load testing to see if you have got enough CPU and RAM to support.<serviceThrottling maxConcurrentCalls="3000"
maxConcurrentInstances="3000"
maxConcurrentSessions="3000" />
- basic http bindings for WCF web services provide almost double the performance as compared to secure http bindings
MS products, ready to use:
We developed the application based on WCF web services but didn't realize that we should be thinking of tuning WCF before going into production, we took it for granted that things would go normal as they used to do with other ms products (like .net runtimes, IIS etc) simply because we did not have a very large user base but what we did not know was that WCF came out of box tuned for a very limited set of users.
the key config parameters ,
if your application is running in an environment where WCF services perform some blocking operation (because of some dependency on external processes like db or file read/write operations ) then you should consider setting the following parameters appropriately in the services config file.
<serviceThrottling maxConcurrentCalls="Integer" maxConcurrentInstances="Integer" maxConcurrentSessions="Integer" />
Me and my mate Merill worked together on this task and he was the first who detailed what we did in his blog, so instead of duplicating I refer to his post, check this nice article http://merill.net/2008/10/wcf-performance-optimization-tips.
Stay tuned,
However beside tuning WCF, I have learned another lesson. The degrade in performance might not due to a single factor but may be a combination of factors when combined give rise to the problem. Trying fixes one by one might not give you a success, leaving you scratching your head. My next blog will on how to attack a slow performing application and what to look for & where, so stay tuned.
Friday, March 28, 2008
Architecture Journal Reader
Check this out, "The Architecture Journal Reader" a cool reader for viewing magazine articles.
Recently I have stopped receiving architecture journal issues at home and was desperate to restore the supply-line and then found this reader as a pleasant surprise. Personally I don't like reading stuff online, particularly when you have to read an article as tall as Eiffel tower but this reader eases the pain. Page scrolling is great and you can take notes too.
I wish Microsoft would publish it as a tool that could load contents from different sources. Thinking wildly, it could have some functionality that make a web article/URL appear in paper magazine article format.
though I will still miss my hard copy ( can't read them on train!, can't spill my coffee on ) :(
Tuesday, March 4, 2008
SOA Maturity Model: Deep inside SOA
Again I have a book to recommend for reading if you need to understand/revise the philosophy of SOA and get some practical guidelines on implementing Service Oriented Architecture in your organisation.
SOA concept is quite old now but mostly we face challenges in implementing it successfully.
The basic issue that we face is when to start and where to stop or where to start and when to stop.
Some people get it confused with web services and they will build a whole stack of web services, every function within an application will be exposed as a web service, some will redesign the applications from scratch using some SOA framework and some will buy expensive tools to expose business functions within some legacy existing applications .
No doubt there is a lot of confusion out there. Even some people who have a good understanding of SOA find it really difficult to map it to a real business problem/environment because every place is different and SOA initiative required to be largely context driven.
For me, the major challenge is to decide if some project qualifies for SOA or not. The major issue is the time that we invest in developing SOA ready applications. I have seen the places where development teams follow strict standards, processes and develop highly reusable applications (or components) at the cost of slow response time to new business requests and changes. Sometimes the management gets so frustrated (as I witness a number of times) they themselves ask to compromise the quality and just deliver the solution because that's what the business demands. Sometimes it works (where we really need a throw away application) but many times it backfires (where we need a stable system, an LOB application).
So how can we achieve success with SOA?
The first basic thing is that the developers alone can not bring SOA revolution in an organisation. The SOA implementation must occur both in functional areas (business units/departments) as well as in technical areas. Business processes indicates what "functional services" can become the candidates of reusability and then IT attempts to model and deliver the systems that would map the interactions in real business world. Also studying business models will help understanding what services we might need and what not.
the book,
It is difficult to explain all here, therefore, I recommend reading this book SOA in the Real World which is a nice book and starts from the basics, takes you through the practical steps for a successful SOA implementation and talks about Enterprise Service Oriented Maturity Model (ESOMM) in good details. This book is free to download from Microsoft.
Happy Reading.
A Cool Utility:
UltraExplorer is designed to be the ultimate File Manager for Microsoft Windows.
http://www.download.com/UltraExplorer/3000-2248_4-10702384.html?tag=dl-blog
Tuesday, December 11, 2007
SOA everywhere - Delivery nowhere
What is good about SOA?
As we know when we say SOA we mean that we need something that would be driven from business model and functions, would reuse existing functionalities with minimal impact on existing applications and making them interoperable with other systems so that we could save time in redevelopment in future.
Also when we develop new systems for future we attempt to make them 'SOA Ready' i.e. designed in a way that any business function can be made available to other systems/consumers without or minimal coding. Of course the idea is fascinating and it does work.
so what doesn't work?
Here the problem I want to address is that having a vision of SOA when technical people sit together and design a framework + lifecycle for the entire business apps and then if they force all development work to follow the same framework for all new developments in order to have consistent development practices, SOA ready applications, potential long term time saving in new developments, etc, there are some serious issues arise from application delivery perspective, particularly slow delivery of solution due to huge investment of efforts upfront for making applications 'SOA Ready'.
But do we really get all those benefits in future? The answer is context driven i.e. it may be or not depending upon the nature of business and development projects. But what I have seen a number of times you can not apply one solution to all your problems.
Take this example, you have got a very nice framework, a framework labelled as SOA based framework, with all nice components, this block, that service, this interface, that data contract and this and that etc. Now you have got a small application to develop for a small group of users in your environment. Would you go for an SOA ready application?
The mistake, in my opinion, people make is that they will go straight after a SOA based architecture while in principle the application is not a right fit for SOA. They do it becuase it is the standard architecture and practice of the organisation now. As a result, developers spend a lot of time in fulfilling framework requirements by developing interfaces, layers, services etc with very less probability of any reusability in future.
so what to do?
In my opinion whenever we design a SOA ready framework we have to consider following points
1. First SOA based architecture should not be a mandatory for all new applications to follow
2. Every application will have to be evaluated to see if there is any real benefit in developing it as an SOA ready application. This depends a lot on how business processes work and not the technology. If the new application is for a small group of users, who are working in isolation with less probability of exposing their functions as services, then we can use very simple architecture and forget complex SOA based architecture.
3. Also, the framework should have pre-defined cut down versions for medium and small applications with lesser number of layers/services/interfaces in order to reduce development overheads. The application will be judged and right model should be picked and applied
4. If using agile methodology, then future reusability can be left over to refactoring. What I mean is that instead of investing time today, leave it to the time when it is required to expose its services and at that time refactor the application and deploy it as an SOA service.
5. As a general rule core systems should be strong candidates of SOA style development. For example, customers database, core sales operations, main financial systems etc. While the systems like some feedback capturing application, some monthly computing application with short expected life span (2-4 years) etc are bad candidates and should be developed in a quick and easy way.
in summary,
We should focus more on delivery without investing too much time in provisions for 'future reusability scenarios'. For instance, once it happened to me that my team put a lot of effort in developing an application with SOA based architecture and ending up with the situation where business users discarded the application, never went live as the business owner of the application had left the organisation and the new owner did not see any real benefit in the application. All our efforts for a 'highly flexible and reusable service based SOA style' application go in vein.
question to ask yourself,
So next time you get an application to develop, ask yourself, does it really need to be developed as an SOA application?
Wednesday, October 17, 2007
Ruby on Rails VS ASP.Net MVC
Now it is more interesting to read about the ASP.NET MVC framework, going to be released in the first half next year and also will be a part of .Net 3.5 SP1 . Ruby on Rails favors convention over configuration (what does it mean? less crap more productivity). Now it seems Microsoft has realised this and they have come up with something that could counter people moving to ruby on rails by providing something that ruby on rails provide i.e. MVC framework to develop the application. I would keep on watching this (some sort of ) contest now with interest. Frankly, I myself recently downloaded ruby on rails to develop an application over the weekend to quickly implement my idea rather than starting development from scratch in asp.net. Now with this MVC thing ASP.Net is getting my attention again for RAD and I suspect there may be something more in pipeline from Microsoft. Stay tuned!
Resources:
(3 nice videos on ruby on rails to give you a quick overview)
plus another video tutorial
Friday, October 5, 2007
Software + Services <> SaaS & => Confusion
The picture became a bit clearer when I read a recent article Profile: Ray Ozzie (chief software architect Microsoft) in architecture journal. (a good magazine to subscribe for free with no advertisement crap)
In my understanding SaaS represents selling the software as a web based service (or application) and thus the customers don't need to buy the full licenses of products and they pay only for what they use. Also it allows cutting cost in application maintenance as enterprises does not require to install and host the applications themselves, plus this benefit and that benefit. We have some successful stories on that like salesforce.com.
Microsoft thinks a bit differently, arguing there may be some scenarios when it is not entirely possible to market a software totally as a service. It questions the assumptions like having a high bandwidth connection would always be available to the users. It comes with another term Software + Services. In nutshell, you have your data stored in Internet cloud,may be exposed through web pages but also accessible to client applications running on PCs, PDAs/Smart phones with local data caching capabilities utilizing the device capabilities to process and present the information. So in way it is an extension of SaaS. Examples are Xboxlive, itunes etc.
I could save my time in elaborating it more in details as I found a very nice blog entry, almost talking the same that I had to write. Check this out. Software + Services = ?
See you next time.
Friday, August 31, 2007
OBA - Architecture or another Marketecture?
At the recent Tech-ed 07 in Gold Coast, there were quite few sessions on Office business applications. Microsoft's idea of Office Business Applications (OBAs) is not that new. It is new from Microsoft but it exists before in some shape from some other vendors like IBM's lotus notes that allows embedding application interfaces in email clients and integrating them with the database.
[Side note: Though I personally believe a number of times Microsoft copied a technology/trend but they master it with such perfection that original inventor got left behind (like Netscape), probably because they can afford huge investments in technology. Check this interesting news item where Sony is complaining about this tactic though what we see in a tight competitive market such copying is being done by almost all top vendors http://arstechnica.com/news.ars/post/20060628-7154.html ]
Feedback on OBA,
Coming back to OBA, I have received a mixed feedback from the developers community. Critics believe that it is more about marketing Microsoft Office Suite when today they are facing real threats from open source and free applications providers, like Google docs, Zoho Officiall Suite, Open Office etc. Once you develop OBAs, you are actually locking your users with Microsoft Office, guaranteeing continue revenue streams for Microsoft. Also some people who tried developing OBAs found a lot of difficulties in implementing real world scenarios and they say OBAs look good in a Microsoft presentation but not in a real world.
I will come back to these issues later but first I will talk about what OBAs are and what they can do for us.
What OBAs can do for us?
OBAs are built around the idea that why do we need a user to get out of their daily-use work tools (like email app, word processor, spreadsheet etc where user spends most of their time) and then log in to another LOB (line of Business) application, perform some business operation and then go back to their work tools to communicate/share the results to some other worker for further processing. OBAs are to be built inside these work tools and integrated with business logic and back-end databases. Web services + Sharepoint provide an ideal mechanism for integration. With office 2007, a developer can modify the user interface of office applications (outlook, excel etc), develop application interface and integrate it in office tools allowing users to enter and share the data then and there.
Few imaginary scenarios where OBA might help us,
1. A sales person gets an email from a customer asking about some new product and sales person wonders how much business do we do with customer?
2. A business analyst doing market analysis in Excel, needs more business data from an existing system
3. A sales person preparing a quote for a customer, to be sent through email, needs customer and product information, from two different systems, to fit in the email template and then needs to save the quote information to a database for future follow-up
These scenarios are commonly seen at work place.
So how can OBAs help?
1. Modifying user's outlook interface, enabling him to fetch the customer profile on a single click
2. Using excel services,business analyst can fetch data directly into his spreadsheet and perform further analysis
3. A user can fetch the product information in predefined format and upon sending quote to customer, outlook automatically parse the email and stores the quote data inside a sales application database for future reference
Check this case study http://www.microsoft.com/casestudies/casestudy.aspx?casestudyid=201115
OBA Tools,
Microsoft VSTO (Visual Studio Tools for MS Office System), Sharepoint portal server 2007 enables the developer to develop OBAs and though office 2003 provides some functionality to host OBA interfaces, office 2007 is the right tool to be used to fully utilise OBAs powers, through its new set of features like custom task panes, ribbon extensibility, the Business Data Catalog, Open XML file formats, and many others..
.gif)
OBA Marketecture?
Now coming back to the discussion that is OBA another Marketecture? I personally believe that OBAs will provide some real business value for the users and it will cut their time they spend in operating numerous business applications. From development point of view, if your applications expose business logic through web services then the good thing is that you will be able to reuse existing services and cut new development times. With a lot lesser time you can integrate your existing LOBs with Office 2007. Such interfaces will decrease the user dependencies over system generated reports where they can them self pull the required data and prepare the reports in the way they like, using word,excel or outlook.
Issues with OBA,
One of the main issue I see is the maintenance of the OBAs. I fear a mushroom growth of OBAs in an enterprise if OBA initiative is not planned well. Development teams should be cautious in jumping to the OBA development. In an enterprise, this should be done as part of some development framework so that the application interfaces developed should not duplicate the functionalities, developed following some discipline and will be easy to be maintained and replaceable in future.
Thinking about locking up the user with MS Office issue, I personally feel, as a fan of open source development, this won't be good for overall IT industry. I know today how difficult it is for IBM Lotus notes users to migrate to MS Exchange, simply because over the times they would have got a whole range of applications built using Lotus notes. I won't like to see similar thing happening with Office in future. Having said that, I don't see Microsoft is wrong on this strategy as, for the time being, I see it is a win-win model where both Microsoft and user will get benefited. We will have to wait for an year or so to see what other competitors bring to the market.
OBA Resources,
There are few good Internet resources to find more information
Lewis Levin on Office Business Applications : http://channel9.msdn.com/showpost.aspx?postid=203534
Building better OBAs http://msdn2.microsoft.com/en-us/library/Aa905315.aspx
Case study http://msdn2.microsoft.com/en-us/library/Bb245765.aspx
Architectural talk http://drowningintechnicaldebt.com/blogs/dennisbottjer/archive/2007/05/24/Office-Business-Applications-Architecture-Talk-with-Colin-Cole.aspx
VSTO Tools blog http://blogs.msdn.com/vsto2/
Thursday, August 30, 2007
bits and pieces - from Tech.Ed 07
It's been quite a while since I attended recent teched 07 in Gold Coast and I thought to put some memories of the conference here before I forget them.
Overall impression,
A nice experience, very well organised with a balance of knowledge + fun, good speakers and plenty to learn at one's own pace through sessions or hands-on labs, provided opportunity for networking and catching up with some old fellows + finding what others are doing/thinking in the industry ........
New things coming,
Well not exactly new as most of the things presented there were already out there in the market or at lteast known. The things I pick were
- Office Business Applications (OBA) Wave, Microsoft looks real serious about that
- further growth of SaaS trend (Software As a Service),
- Architectures moving furhter away from dedicated synchronous calls to asynchronous messages, like system A sends a message to B, B to C and C to D and then D replies to B and A, invloving C whenver required => Mesh of messages (thinking of WCF, WWF ?)
- .Net 3.5 and C# 3.0 with loads of features
- Establishment of SDC (Solution Development Centre) at Microsoft in Sydney where Microsoft will develop the solutions with its partners, with the support of an ideal environment equipped with right machines, software and Microsoft Technical expertise to speed up the development and bring the innovative solutions. http://www.microsoft.com/australia/services/consulting/sdc.mspx
An interesting debate,
After attending a session on "using the web to develop connected systems" which talked about an idea of using http infrastructure and messages (like 404 etc) to run communication between layers (UI, Middle tier etc) of an enterprise application, I really did not like that session and then had an interesting & hot debate with my collegue Fernando with Mundeep as a mediator :D, Fernando's argument was (if my memory is working)- This was some new idea and really simple and workable, a unqiue and different session at tech-ed where all other things were routine but this one was innovative thing
- It could be a nice idea for a lab or close group discussion not for tech-ed which is not a research conference and we have very limited sessions to attend
- Personally, We have already got enough crap on internet, we have hardly managed to come to some standards like Web servies and WS-* and please no more crap on a crappy infrastructure
and then my last argument gave rise to another inconclusive debate between us on scrapping of the internet as it was not designed for the entire global family or should we wait and it is bascially evolving? { http://www.livescience.com/technology/070413_ap_new_internet.html } I took the stand I would love to scrap it because we are basically doing workarounds to overcome the limitations but I know practically it is not possible so we have to live with it, Fernando's opinion was nothing can be built in one day and it is basically going through evolution and no need to scrap it. At the end it was good mental exercise :)
Some interesting junk info: where will our data live?
Here =>
This football stadium size structure has 9 floors, 6 with storage disks & disks & disks and 3 floors with cooling fans, it belongs to Microsoft where our data (hotmail etc) will be stored.The interesting part is its location, it is in middle of no-where, it is located in west Washington, near-by a Dam, ? Why? Because this is the place where electricity is cheapest in USA, the big players (Microsoft, yahoo, Google) believe that whoever provides the cheapest data storage would win the war of free internet spaces,
But the most interesting part is the right top corner of the bigger picture and right bottom (not visible). The top corner building belongs to Yahoo and towards right Google is constructing its own building :) They are keeping an eye on each other,
More Junk,
How does Microsoft come with its codenames? For Visual studio they looked for areas near Seattle and chosen the names like Everett, Whidbey, Orcas island and now Rosario. check this interesting blog for more detail http://blogs.msdn.com/bharry/archive/2006/12/20/what-s-in-a-code-name.aspx