Microsoft Surface Technology in Retail Baking and Insurance Domain

Microsoft Surface Technology in Retail Baking and Insurance Domain

Microsoft Surface is a multi-touch computer that responds to natural hand gestures and real-world objects, helping people interact with digital content in a simple and intuitive way. With a large, horizontal user interface, Surface offers a unique gathering place where multiple users can collaboratively and simultaneously interact with data and each other.

Microsoft Surface has four key capabilities:

  • Direct interaction. Users can grab digital information with their hands and interact with content on-screen by touch and gesture – without using a mouse or keyboard.
  • Multi-user experience. The large, horizontal, 30 inch display makes it easy for several people to gather and interact together with Microsoft Surface - providing a collaborative, face-to-face computing experience.
  • Multi-touch. Microsoft Surface responds to many points of contact simultaneously - not just from one finger, as with a typical touch screen, but from dozens of contact points at once.
  • Object recognition. Users can place physical objects on the screen to trigger different types of digital responses – providing for a multitude of applications and the transfer of digital content to mobile devices.

Microsoft Surface can bring the new light to the complex ‘customer solicitation’ process in the entire customer acquisition cycle, in retail banking and insurance industry. It can change the way customers learn, service and make decisions about the product. The way content is delivered in collaborative and explorative way, it can create the whole new positive perceptions about your product. Imagine you are sitting across you banking relationships manager or insurance advisor, browsing through product information, discussing various financial scenarios in a participative way, product comparisons. This technology has potential to revolutionize the entire customer experience.

I have often seen confused faces of customers during solicitation process. More often than not they are pretending to be understood, to be with you, but usually they are lost. I hope this technology brings new light for retail banking and insurance industry.

Combination Therapy for Requirements using BDD and UML

Problem

Generally, we write requirements in use case structure. Use case structure gives us all elements required but by design , it is a vague format which are devised around use case diagrams. Every software professional has its own flavor of writing use cases. Even the sections of use case structure varies person to person.The intrinsic details of the parts of use case specially use case description, preconditions and post conditions etc] are vaguely defined. Writing use cases in clear format is also a skill and that depends upon the person who is responsible for collecting requirements.Use case are still useful in mature kind of organization but it is not so much effective way when we do not want to have upfront big designs. So dilemma here is how to collect the requirements and the new approach should be better than standard use case structures and should be fairly objective.

There is also a second angle to this use case discussion. Requirements have bigger impact on business and cost part of IT projects. Many times, due to not so clear communication between IT vendor and client over the requirements, this cost of lot of rework and hence the cost to client.From client’s viewpoint ,it is difficult to understand use case type of language and there is a chance to miss out or assume requirements/scenarios ,which becomes cost(in terms of money or time) for them afterword. Situation becomes bad in fixed cost projects. I had experienced this bitter pill many times.

Solution

So the solution I am proposing here is , Behavior Driven Development [BDD] kind of requirements collection for even the people who are not practicing BDD. From past few months,I am sort of wandering in TDD,BDD forest. Now I am going ahead with nBehave and Specflow and Gherkin which has changed whole lot of things for me on coding front.

I totally understand that BDD can’t be fully rolled out in some scenarios/in some organizations[no silver bullet!, lack of expertise, no enthusiasm to learn, cost of learning curve and transformation etc] but I am sure that, we can at least move to BDD style of requirement writing which is kind of closer to silver bullet:). See the following example. I had directly taken this example from Dan North's blog. BTW, Dan is pioneer in BDD and I guess, he is the first who coined the term "BDD". He has also compared use case format with BDD style. Here I think, interesting angle from my side is merge both of them to take advantage from both styles of requirements collection.

In BDD, The requirements are collected in story form like:

Title (one line describing the story)

Narrative:

As a [role]

I want [feature]

So that [benefit]

Acceptance Criteria: (presented as Scenarios)

Scenario 1: Title

Given [context] And [some more context]...

When [event]

Then [outcome] And [another outcome]...

Scenario 2: ...

ACTUAL EXAMPLE:

Story: Account Holder withdraws cash

As an Account Holder

I want to withdraw cash from an ATM

So that I can get money when the bank is closed

Scenario 1: Account has sufficient funds

Given the account balance is \$100 And the card is valid And the machine contains enough money

When the Account Holder requests \$20

Then the ATM should dispense \$20 And the account balance should be \$80 And the card should be returned

Scenario 2: Account has insufficient funds

Given the account balance is \$10 And the card is valid And the machine contains enough money

When the Account Holder requests \$20

Then the ATM should not dispense any money And the ATM should say there are insufficient funds And the account balance should be \$20 And the card should be returned

Scenario 3: Card has been disabled

Given the card is disabled

When the Account Holder requests \$20

Then the ATM should retain the card

And the ATM should say the card has been retained

Scenario 4: The ATM has insufficient funds

...

I think Along with story, if we have mockup/screenshot[off course with Balsamiq mockups! ] of proposed screen and control, data type range chart we used to have with our existing UML format, we can move towards clear requirements.

Benefits

This will benefit in following ways:

  1. It will help to gain common understanding between client and IT Vendor,about what has been covered as requirements and what has not.
  2. Client will find easy to go through requirements since requirements are written in very structured fashion and in plain English.
  3. Organization wide, requirements will be captured in same fashion and we can really estimate based on stories and find how simple or complex the story is based upon no. and complexity of scenarios it had. Hence its really easy for going with statistical process control for estimation.
  4. Change Requests are dealt with adding/removing/updating the feature/story/scenarios.My observation here is they only change the scenarios. In very rare cases, features or stories are changed.
  5. Testing team will reap the greater benefits here since they can write these stories as per their understanding and take part in RE process in very active way like finding out the missing/not clear scenarios etc.
  6. Testing team do not have to write any other test cases, This can serve as live requirements as well as test cases for them.
  7. Unit Testing for Developers will be easy since now they clearly know what kind of scenarios they have to cover which is bit difficult and time consuming in Use case format.

Let me know your thoughts, specially BDD and UML experts...

Many good points are noted as what should be in story by BDD pioneer Dan north in his post (http://dannorth.net/whats-in-a-story).

It's really refreshing for me to see the BDD light.

Half Day Seminar on: Agile Development, Tools and Teams

Certified Scrum Master Stephen Forte will be presenting a half day seminar on Agile Development, Tools and Teams on Wednesday February 24th at the MCCIA in Pune. The event is brought to you free by e-Zest, MCCIA, and Telerik. Seats are limited, to sign up in advance, please email seminar@e-zest.net.

The Program Details

One of the most popular Agile project management and development methods, Scrum is starting to be adopted at major corporations and on very large projects. After an introduction to the basics of Scrum like: project planning and estimation, the Scrum Master, team, product owner and burn down, and of course the daily Scrum, Stephen (a certified Scrum Master) shows many real world applications of the methodology drawn from his own experience as a Scrum Master. Negotiating with the business, estimation and team dynamics are all discussed as well as how to use Scrum in small organizations, large enterprise environments and consulting environments. Stephen will also discuss using Scrum with virtual teams and an off-shoring environment. We’ll then take a look at the tools we will use for Agile development, including planning poker, unit testing, and much more. There will be plenty of time for Question and Answer. This seminar is a jump start for a certified scrum master exam. 

Who Should Attend 

Developers and development managers, especially those using the Microsoft .NET platform. 


Schedule and Agenda

Seminar Coverage

Time Slot

Event Registration

9:00-9:55

Speaker Introduction

9:55-10:00

Introduction to Agile Development and Scrum

10:00-11:00

Agile Estimation

11:00-11:30

High Tea Break

11:30-11:45

Implementing Scrum with remote and offshore teams

11:45-12:15

Agile Tools, Test Driven Development, and Continuous Integration

12:15-12:45

Summary, Question and Answer

12:45-1:00

Conclusion of Program

1:00

 

The Speaker

Stephen Forte is the Chief Strategy Officer of
Telerik, a leading vendor in .NET components. He sits on the board of several start-ups including Triton Works and is also a certified scrum master. Prior he was the Chief Technology Officer (CTO) and co-founder of Corzen, Inc, a New York based provider of online market research data for Wall Street Firms. Corzen was acquired by Wanted Technologies (TXV: WAN) in 2007. Stephen is also the Microsoft Regional Director for the NY Metro region and speaks regularly at industry conferences around the world. He has written several books on application and database development including Programming SQL Server 2008 (MS Press). Prior to Corzen, Stephen served as the CTO of Zagat Survey in New York City and also was co-founder of the New York based software consulting firm The Aurora Development Group. He currently is an MVP, INETA speaker and is the co-moderator and founder of the NYC .NET Developer User Group. Stephen has an MBA from the City University of New York. Stephen currently lives in Hong Kong and will be returning to Mt. Everest again in September 2010. 

Final Details

DATE

Wednesday February 24th, 2010

TIMING

9.00 am to 1.00 pm (registration from 9.00 a.m. to 9.45 a.m.)

VENUE

Shekhar Natu Hall, MCCIA, 403-A,Senapati Bapat Road, Pune 411 016

FEE

Free

 

 

 

Microsoft Exchange 2010 : Pathbreaking email server technology

Recently, I have attended Hands On Lab for MS Exchange 2000. It's really amazing product with valuable enterprise features.

MS Exchange 2010 is part of new generation of Microsoft server technology built from the ground up to work on-premises and as an online service. Exchange 2010 introduces a new integrated e-mail archive and features to help reduce costs and improve the user experience.

Exchange 2010 will help organizations reduce costs, protect communications and delight e-mail users with capabilities to do the following:

•    Lower costs with more flexible deployment and management options. Exchange 2010 provides organizations with the same enterprise-grade capabilities whether deployed on-premises or as a service from Microsoft or partners — or as a mix of both. Further, for customers deploying the server, the new release simplifies the way organizations provide always-on communications and disaster recovery, meaning administrators spend less time managing their e-mail system. Exchange 2010 further improves performance running on lower-cost direct-attached storage, enabling organizations to dramatically reduce storage costs by up to 85 percent without sacrificing performance or reliability.

•    Protect information and meet compliance requirements with the new e-mail archive. As e-mail volume grows, companies must address increasing compliance, legal and e-discovery concerns Exchange 2010 introduces an integrated e-mail archive. The new solution makes it easier to store and query e-mail across the organization using the Exchange software that organizations already know and use.

•    Improved user productivity with the ultimate inbox experience
Exchange 2010, together with Microsoft Outlook 2010, will give people more control over their communications with features such as these:

-MailTips. Warn users before they commit an e-mail faux pas such as sending mail to large distribution groups, to recipients who are out of the office or to recipients outside the organization, helping protect against information leaks and reduce unnecessary e-mail messages.

-Voice Mail Preview. See text previews of voice mail directly in Outlook.
-Ignore Conversation. This e-mail “mute button” allows people to remove themselves from an irrelevant e-mail string, reducing unwanted e-mail and runaway reply-all threads.

-Conversation View. Combine related e-mail messages in a single conversation to reduce inbox clutter.

-Call Answering Rules. Create customized “Press 1 for …” call-routing menus with Exchange voice mail.

-Consistent Experience. Use Outlook on the PC, a mobile phone or a browser for the same experience with enhancements in Outlook Mobile and Outlook Web Access.

Exchange 2010, Provides a full e-mail, calendar and contacts solution, built-in information protection, built-in mobile e-mail and mobile device management, a full voice mail replacement, and a brand new archiving, retention and discovery solution.  Exchange administrators have seen their roles grow from simply providing great e-mail to providing an end-to-end communications solutions.

With the new high availability, disaster recovery and back up capabilities combined with the significant IO reduction a few very cool things become possible.  First, what used to take multiple applications to achieve mailbox resiliency becomes possible using just Exchange.  Second, a very large mailbox – even 10 gigs+ becomes very affordable and supportable.

From the improved OWA UI with integrated IM/presence, to conversation view in mobile, to EAS device management – every user can now have a rich mobile experience.

I recommend upgradation to all existing MS Exchange 2003 enterprises & also to enterprises considering implementation of email server technology on Windows platform. It's worth investment!

Speed up development with reusable software factory

Software Factory

A Software Factory is a development environment configured to support the rapid development of a specific type of application. Software Factories are just a logical next step in the continuing evolution of software development methods and practices. However, they change the character of the software industry by introducing patterns of industrialization.

          It’s a software product line that configures

         Extensible tools

         Processes

         Content using a software factory template based on a software factory schema

          It helps to automate the development and maintenance product by adapting

         assembling

         configuring framework-based components

          Help building specific type of application

         Smart client

         Web service

         Web application

         Mobile application

          Incorporate guidelines and best practice

         Architecture and design guidance

         Patterns

         How-to’s

         Application blocks

         Guidance packages

Why software factory?

          Productivity in software development

          Reusability in efficient way

          Reduction in development time

          Communication between architect and development team

          Utilize resources not having extensive expertise on software development

          Shorten time to market

         Reuse of existing core assets

          Improved product quality

         Pre-tested factory

         Less chance of error during development

          Framework variability and extensibility

          Expand market

         By selling products

         Frameworks

Which are available software factory?

          Web Client Software Factory

          Smart Client Software Factory

          Web Service Software Factory

          Mobile Client Software Factory

Web Client Software Factory capabilities

Modularity

  • Building composite UIs that are based on integration of multiple back-end systems.
  • Composing applications from individually developed, tested, and deployed units (modules).
  • Supporting XCopy deployment through distributed Web.config files
  • Unit testing Web user interface application logic

User experience

  • Separating the responsibility of UI design from UI development
  • Leverage ASP.NET master pages, themes, and skins
  • Dynamically interact with ASP.NET site map

Page flow

  • Defining screen workflows

Deployment and updates

  • XCopy deployment and updates of independent modules
  • Module versioning by separating interfaces from implementation

Security

  • Authentication (using Forms Authentication)
  • Profile based user interface and authorization
  • Input and output validation
  • Exception shielding

State management

  • Session
  • Page flow

Manageability

  • Handling exceptions
  • Logging exceptions

Web service communication

  • Communicating synchronously with external Web services

Details about web-client software factory:

  1. Required component
  2. How to create web-client software factory application?
  3. Using Logging application block
  4. Using Exception handling block
  5. Creating new module
  6. Inbuilt MVC pattern implementation
  7. Customize look and feel
  8. Adding page flow

To know more:

http://msdn2.microsoft.com/en-us/library/bb264518.aspx#wcsfbenefits

http://msdn2.microsoft.com/en-us/architecture/aa480032.aspx

http://msdn2.microsoft.com/en-us/architecture/aa699360.aspx

http://www.codeplex.com/websf