Friday, November 23, 2018

What is Internet of Things?

What is Internet of Things?

Modern industry is built around computers. Computers can now keep track of work, and they can tell you what is really happening on your shop floor – but are you listening to your machines talk? Because if you listen, you can now know exactly what is happening not only in your factory, but in your enterprise. Armed with information that your machines give you in real time, you can boost your company’s efficiency like never before.
These breakthroughs were made possible by a very important concept – the Internet of Things. What does that mean? The internet is a network that is made up of many smaller networks. All of these networks are made up of a large number of computers that are connected to each other. So the Internet is a network of computers. But it is not necessary that only computers should be connected to this network. Cars, home appliances, and many other objects in our day-to-day lives can also be connected to the network. This network has been named the ‘Internet of Things.’
internet-of-things-1-1024x455
How is the Internet of Things actually going to change people’s lives? Let us take a closer look at how connected devices are improving our day-to-day activities.
1] Today, you can fit your door with ‘smart locks’ that can connect with the internet. You can operate these locks without actually using a physical key. This lets you control who enters through the door from anywhere.
2] Soon, you will be able to buy smart refrigerators and ovens, which are connected to each other and to the internet. Your refrigerator will suggest recipes based on what’s inside it, remind you when you need to go shopping, and even let you order food from home.
3] You will be able to control your oven over the internet. Your kitchen appliances could even help you and your family eat healthier, by keeping track of the nutrients you eat over time.
This is only a small example of the many ways in which the Internet of Things is going to affect the world. From the viewpoint of supermarkets, being able to accurately track purchase patterns will help them manage stock better, with less wastage. Listening to what the machines are telling them can help them become more efficient.
But why stop at home appliances? The machines in factories and enterprises today are definitely ready to talk. AnAr Solutions knows the advantages of letting your machines tell you what is happening in your enterprise. By connecting your machines to form an Internet of Things, you can gather large quantities of useful information which will help drive better business decisions – AnAr has the tools to make it happen.
http://www.anarsolutions.com/what_is_internet_of_things/utm_source=Blogger.com

Thursday, November 22, 2018

Do You Know What Your Customer Wants?

Do You Know What Your Customer Wants?

Every business knows what Client is going to buy from them. Do they know what Client wants from what they are buying? Many Businesses thrive to address Client needs and succeed to certain extent as well.
Nowadays when Products and Services are commoditised, businesses should focus on Customer Experience. While doing that, addressing needs is not sufficient. They should go an extra mile to understand implicit Customer wants. If they know what Clients are actually looking for, then only they can come up with action items to address them. Apparently, Disney has done it well using their Guestology.
We have conducted a small exercise to identify our Customer Wants and how Clients see us. Here are some of the activities we did:
Customer-Experience

– Define “Day in Life” of our Client: We have team members working with different Clients. Everyone came up with “Day in life” of Client. It was a fun filled interactive activity which our team enjoyed. It was amazing to understand intricate details through day to day interactions.
– Demographic Information: We created a matrix with Client’s Demographic information and few relevant facts. This was a trivial activity with some data entry and visualizations.
– Understand Client Feedback: We regularly collect our Client’s feedback. However we could gain many insights during regular communication than formal feedbacks. Good listening ears gave better insights.
– Understand Combustion Points: We define Combustion point as activities or circumstances which upset our Clients. Every Client is different and so their Combustion points. Everything cannot run perfectly for every Client. There are certain lapses where processes break.
  • We identified “what matters most” for every Client.
  • We have also identified instances “what Client does not like at all”.
  • It is evident if UI matters most to someone, then he might not tolerate slightest lapses at UI level.
  • If code quality matters most then he might get upset if someone does not follow coding standards.
  • Ideally our team should pay attention to every aspect of Software Quality and they do.
  • These combustion points helped us to calibrate our quality assurance scale.
  • Each dimension cannot have equal weightage for every Client or assignment.
– Integration: We thenintegrated all the data we could gather from this activity. We tried various visualizations and representation of the same data.
– Customise Delivery process for every Customer: Based on pointers identified through this activity, we have aligned delivery process for every Client. We have also come up with a check list of Do’s and Don’ts for every Client.
We repeat this activity every quarter and refine our data and processes. I believe this is an art and science to understand different personalities, assignments and cater to everyone’s expectation. We are still evolving our processes and systems by studying our Clients and proven frameworks by market leaders like Disney.
I would love to hear your insights on optimising Customer Experience. Please feel free to comment or email me your thoughts.
About AnAr Solutions: We are Customer Focused IT Solutions Provider based in Pune, India.
http://www.anarsolutions.com/do_you_know_what_your_customer_wants/utm_source=Blogger.com

Wednesday, November 21, 2018

3 Traits of Successful Outsourcing Engagements

3 Traits of Successful Outsourcing Engagements

We come across many outsourcing stories every day. Some of them show positive side i.e. successful outsourcing engagements and some of them show grey side of outsourcing.
I believe that for any relationship to work out, efforts needs to be taken from both parties. If everyone is working towards common goal then results are going to be positive.
I have listed some of the common traits of successful outsourcing engagements here:
  • High Trust Relationship – It takes time and lots of efforts from Service Provider as well as Client to build Trust. One cannot build the trust in relationship overnight. It takes even more efforts when Client and Service provider are in different geographies with different cultures. Trust is absolutely necessary for success of any outsourced project.
  • Driven by goal instead of numbers – When Client and Service provider are committed for success of Project, it focuses all their energy towards it. This makes all numbers like cost, efforts, time transactional by product of the process.
  • Understand Why – Most of us have heard the story where Client wants to build a bicycle and service provider delivers something too different to be useful for Client.
If Service provider understands and shares client’s vision for this product then there are less chances of misunderstanding at such high level.
As I mentioned earlier, it takes efforts from both sides to make the association work.
Please feel free to share your views about the points I have made here.
Rupashri
Email – Rupashri.gulawani@anarsolutions.com
About AnAr Solutions: We are Client Focused Software Solutions Provider based in Pune, India.
http://www.anarsolutions.com/3_traits_of_successful_outsourcing_engagements/utm_source=Blogger.com

Thursday, November 15, 2018

ASP.NET Web Forms Vs ASP.NET MVC

ASP.NET Web Forms Vs ASP.NET MVC

Asp.Net Vs Asp.Net MVC
Today, ASP.NET developers have two options when building new Web projects: the old faithful ASP.NET Web Forms, or the young gun, ASP.NET MVC framework.
The difference is chalked down below:

ASP.NET Web FormsASP.NET MVC
ModelASP.NET Web Form uses traditional event driven – Page Life cycle modelASP.NET MVC application uses Pattern based model. No Page Life cycle like WebForms. Request cycle is simple in ASP.NET MVC model.
State ManagementASP.NET Web Form has some state management techniques such as session state,view state,cookies etc.ASP.NET MVC has no such state management techniques, but Model State is persisted by MVC during post backs.   Also, we can use ViewBag, View Data, Temp data for state management.
Seperation ControlsNo separation of concerns. As we discussed that every page (.aspx) has its own controller (code behind i.e. aspx.cs/.vb file), so both are tightly coupled.Very clean separation of concerns. View and Controller are neatly separate.
TestingBecause of this coupled behavior, automated testing is really difficult.Testability is a key feature in ASP.NET MVC. Test driven development is quite simple using this approach.Easier to Unit Test
StatefulnessStatefulness has a lots of problem for web environment in case of excessively large viewstate. Large viewstate means increase in page size.In order to achieve stateful behavior, viewstate is used. Purpose was to give developers the same experience of a typical WinForms application.ASP.NET MVC approach is stateless as that of the web. So there is no concept of viewstate. As controller and view are not dependent and also no viewstate concept in ASP.NET MVC, so output is very clean.
ScriptingAlong with statefulness, Microsoft tries to introduce server-side controls as in Windows applications. Purpose was to provide somehow an abstraction to the details of HTML. In ASP.NET Web Forms, minimal knowledge of HTML, JavaScript and CSS is required.In MVC, detailed knowledge of HTML, JavaScript and CSS is required.
Support over HTML,CSS ,JAVA SCRIPTSThe above abstraction was good but provides limited control over HTML, JavaScript and CSS which is necessary in many cases.Full control over HTML, JavaScript and CSS.Provides fine control over rendered HTML,Superior seperation between UI and code
LibrariesWith a lots of control libraries availability and limited knowledge of other related technologies, ASP.NET WebForms is RAD(Rapid Application Development) approach.It’s a step back. For developers decrease in productivity.
Team SizeASP.NET Web Form is good for small level applications but little bad for large applications.It needs limited team size. ASP.NET MVC is good for large Enterprise level applications. It needs large team size where different teams are working together.Bigger ramp-up and training required for developers with little or no experience in Web application development
SyntaxASP.NET Web Form uses web forms syntax .ASP.NET MVC uses some default customize syntax such as ASPX engine for  MVC1   and  MVC2 templates, and Razor engine for MVC3 , MVC4 and MVC5 templates.
ControlASP.NET Web Forms use Page controller pattern approach for rendering layout. In this approach, every page has its own controller, i.e., code-behind file that processes the request.ASP.NET MVC uses Front Controller approach. That approach means a common controller for all pages processes the requests. HTML Helpers are used.
Master Page & LayoutsASP.NET Web Form uses Master pages for look and feel of the web page.ASP.NET MVC uses Layouts for look and feel of the web page.
Routing: URLs ExistenceASP.NET Web Form is a file based URLs. Means file names exist in URLs must have a physical existence in the application.ASP.NET MVC application uses URLs Routing concepts. Means URLs are separated in Controllers , actions and others. It is based on Controller, not on Physical file.
Open SourceASP.NET Web Form does not follow open source concepts.While ASP.NET MVC application follow open source concepts.
Design and logic codesASP.NET Web Form are tightly coupled models. Means Design and Logic’s codes are present in one file( ASPX.CS ).While ASP.NET MVC are loosely coupled models. Means views and logic are loosely coupled because views and logic’s are kept in separate file.
Interactive ApplicationASP.NET Web form is strong data access model.Heavy page size due to view state management; so it is not helpful to develop an interactive application.ASP.NET MVC is a light weight application .Typical size of page is small.This is best to develop an interactive application.
 View EnginesProvides very good RAD Development capabiltiesCan support multiple view engines
 Design SupportGreat designer support in Visual StudioBy default uses RESTful interfaces for URL’s so better SEO
IntegrationEasy for development for heavy Database LOB applicationsEasy Integration with Frameworks like JQuery
Control librariesVery rich control libraries and third party binder supportNot event driven, so may be difficult for people who know only ASP.net webforms to wrap their minds around it.
 UI SupportHarder to adopt to various UI views desipte the various frameworks available ( master pages, themes etc )Third party library support is not that strong
UI logic coupies with the code and thus hard to spepeateAllows for reuse of the same models to present different UIs and interfaces.
Great to creating quick prototypes for business applications. This comes in very handy when trying to show quick Proof of Concept to cleints

http://www.anarsolutions.com/asp-net-web-forms-vs-asp-net-mvc/utm-source=Blogger.com

Tuesday, November 13, 2018

Happiness at Work Matters!

Happiness at Work Matters!

Happiness at Work
Happiness at Work
Companies often employ management consultants to discover ways to improve efficiency at work. They mainly focus on Policies and Processes! But there is actually an even more important ingredient for increasing the workplace productivity: And that is ‘Happiness’!
Happiness is the “ultimate productivity booster,” because happy people –
  • Work better with others
  • Fix problems instead of complaining about them
  • Have more energy
  • Are more creative, optimistic, motivated, and healthy
  • Worry less about making mistakes (and then actually make fewer mistakes)
  • Learn faster
  • Make better decisions
“Happiness is not something ready-made. It comes from your own actions.” ~Dalai Lama
At AnAr we try analyzing what makes us happy. When team members are happy and motivated, the business benefits from higher efficiency, because happy people accomplish better results with higher quality, because happy people want to go to work and are less vulnerable to stress. And not shockingly, all of this leads to better deals and higher profits for the business.
We think about the tasks we completed in the day and also from the client’s perspective and rate the happiness parameters at day end!
Ultimately, it’s about loving what you do; feeling proud of your work; knowing that what you do is important and being acknowledged for it and being constantly energized. Marking the happy and sad faces help us analyze and thus work better the next day!
Here are few ways that help find Happiness at work!
  • Be an entrepreneur from anywhere – Even if you don’t start a business (now), imagine starting a project that will improve your current job, workplace, or community
  • Develop a social circle – Widen the circle of the informed. Involve people not usually included
  • Discuss the idea informally to find others feeling the same way
  • Look for opportunities for growth instead of failure
  • Help someone solve a problem
  • Take on additional responsibility
  • Have enough courage to ask
  • Remain positive
  • http://www.anarsolutions.com/happiness-matters/utm-source=blogger.com

Monday, November 5, 2018

Pair Programming

Pair Programming

Pair programming (sometimes referred to as peer programming) is an agile software development technique in which two programmers work as a pair together on one workstation. One, the driver, writes code while the other, the observer, pointer or navigator, reviews each line of code as it is typed in. The two programmers switch roles frequently.
Benefits of Pairing:
  • Improves Quality – Better code
  • Increased discipline – Resilient flow in working
  • Improved morale
  • Collective code ownership
  • Mentoring
  • Team cohesion
  • Fewer interruptions
Guidelines for Pair Programming:
Fair Play –  One person “drives” (he has control of the keyboard or is recording design ideas) while the other is continuously reviewing the work and planning ahead. Stay fairly close to 50-50 on driving.  Let the less experienced partner start and maybe drive a little more. Say you’re sorry when you hurt somebody; sit side-by-side and program, simultaneously viewing the computer screen and sharing the keyboard and mouse.  Slide the keyboard — don’t move the chairs. Also, make sure there’s enough space for both of you to sit comfortably. It helps tremendously if you reduce the barriers to both people contributing.

Communication is the key – The real trick to effective pairing is communicating. Get in the habit (especially when pairing with someone new) of thinking out loud. Talk about what you’re going to do, what you’re doing and what you just did. This makes sure both you and your pair are on the same page. As a bonus you’ll often discover problems with your approaches when you try to describe them. A good rule of thumb is that at any moment you should be able to stop typing and your pair should be able to take over.

Don’t take things too seriously.  If your partner picks out a bunch of errors as you type, be glad.  But do not always agree.  Have healthy disagreement/debate.  Finding the fine balance takes adjustment. Make sure you leave your ego out of it. – It can be really uncomfortable to have someone watch you make mistakes and typos all day long. You have to learn to stop thinking of things as “My code” or “Your mistakes” and switch to thinking of yourself as part of a team.

Mind Game – Put negative judgments in the trash:  Be positive about you and your partner.  For both, this is an opportunity to improve. Also clean up your mess.   – You are really likely to find a large number of your errors – think like – grass is always greener on the other side J
If you work on some parts independently either discard them (flush) and start over together or have the partner very carefully review the work with you.
Periodically, taking a break is important for maintaining the stamina for another round of productive pair programming.

Share your tools. Agree on development environment and tools before you start. Having a machine that neither of you owns can be really effective. This prevents one person from being constrained due to a lack of familiarity with how things are set up.

Focus  But make sure your partner stays focused and on-task. Set aside time to do it. It’s really hard to pair with someone when you both get interrupted for meetings or interviews or to check email. You should treat your pairing time as focused work time. Make sure you don’t have anything scheduled and put away your laptop and phone.

Experiences show that, together, a pair will come up with more than twice as many possible solutions than the two would have working alone. They will then proceed to more quickly narrow in on the “best” solution and will implement it more quickly and with better quality. Be aware of the power of two brains.
http://www.anarsolutions.com/pair-programming/utm_source=Blogger.com