Change Management


People don’t like changes. When I worked at Katherine Furniture, the owners were not willing to change. During that time, I was working and going to college at the same time. It was the perfect scenario to apply my knowledge about Information Systems to improve this small retail store.

The Problem

The majority of the business was done thru financing. We had many financial companies that helped us. The customer will fill out a credit application to see if they will qualify for the purchase. The problem was that we used a paper form to fill out the credit application. After completing the application, we will submit the application to the financial institution for processing. To process the application, we also needed to submit additional documents like utility bills, pay stubs, and driver license. The problem with a paper form was that many times we will lose it along with the other papers. This situation frustrated everyone. The customer and also the owners. How can you lose a credit application? I was frustrated as well but I decided to put the computers to work. I spoke with the owners and said, “we have computers here but we are not using them properly.” Let’s capture the credit application information in our database.

The Solution

I was determined to create the electronic form to capture this information. The initial version was created with Microsoft Access. I was able to create the form and bind it to the database. I also added a print button since we needed to fax it to financial companies and also the customer needed to sign it. After completing the electronic form, everyone refused to use it. They were not willing to change. They were
accustomed to use the paper form. I started to use it myself and prove everyone that this was the only way to improve the business. I also started training them on how to use this application. Within a few weeks everyone was using the electronic version of the credit application. The owners were very happy with this change. They wanted to explore other ideas on how to increase sales.


Change is needed to accomplish new goals. We need to be open to new ideas. During the process of creating the electronic form, I learned so much about change. I was able to change a group of people to use technology instead of paper. At the beginning they refused to use my app, probably they needed more training. I learned that to change we need to take baby steps to get there.


My first reactions to Project Spartan

Project Spartan is the code name for the new web browser being developed by Microsoft. Based on the blog post by the Internet Explorer team, it is designed for Windows 10 only. In my opinion, Microsoft is making a big mistake here. The new browser should be available for Linux,  and Mac operating systems. One of the reasons why Firefox and Chrome dominate the browser market is that their browser is available for all the 3 major operating systems. In addition, Firefox and Chrome release updates and fixes quickly. For Internet Explorer, the releases are not that frequent and it’s tied to Windows only. In a future post, I will download Spartan and see its features in more detail.







code review Javascript python ruby

Improving your code reviews

codestyleCode reviews are an essential practice in any software development team. It allows you to keep your code consistent. It also allows other developers to become familiar with your code changes. Embracing code reviews helps keep your code base healthy.

To improve your code review process, you can do the following:

  1. Document your code style
  2. Allow more than 1 developer to perform the code review
  3. Keep your code changes small

Document your code style

If you don’t document your code style guideline, it is very difficult to keep your code consistent. Some developers might use 2 spaces to indent, others might use 4 spaces to indent. If you have a code style guideline available to all developers, it is easy to enforce it. In addition to be enforced, it is easy for programmers to follow it. You don’t have to open up different files to see the current style guide. You should go to the official style guide for your team or company.

The Python community has documented their code style guide. They created a code style guide under PEP8. One of those conventions is to use 4 spaces per indentation level.

Google has a Javascript style guide. One of the conventions found in the Javascript guide is to always use the keyword var to define variables. Another convention in that document is to always use semicolons.

The Ruby community has also created a style guide. It is hosted at Github and you can see the source here. In contrast to the Python community, they prefer to indent with 2 spaces. See the following example taken from their style guide:

# bad - four spaces
def some_method

# good
def some_method

As you can see from these examples, there are code styles available to help us start with our own documentation. If your team does not have their own style guide, then you can at least document that you will follow Google’s Javascript style guide for example.

Allow more than 1 developer to do the code review

After you have your style guide in place, it is very easy to perform code reviews. It is very important that more than 1 developer in your team can review code changes. Sometimes the team lead might be busy or not available and you don’t want your team waiting on that person. They can go to another developer to do the code review. I believe this is a big problem with a lot of open source projects. Some of these popular projects have few developers in charge of the code reviews and many times the pull requests are not handle in a timely manner.

Keep your code changes small

It is easier to code review 1 or 2 files than to review 20 files. If you have a large number of files, the code review takes a very long time to complete. It is recommended to keep your code changes small. For example, if you have database, business logic, and HTML changes, you can break those changes into 2 or 3 code reviews.


If your team performs code reviews in a daily basis, your code base will stay consistent and hopefully bug-free. Based on my experience as a software developer, having a code style guideline, rotating the person performing the code review, and keeping your code changes small, will allow your code review process to be fun and enjoyable.

.Net ASP.NET open source

What is the future of Microsoft’s Codeplex?


Codeplex is Microsoft’s hosting site where you can create and collaborate on open source software. It is very similar to Github. You can create new projects, host your code, collaborate with other developers, download source code, report bugs, etc.

Last November, Microsoft announced that .NET 2015, ASP.NET 5, and other components will be developed and released as open source. Microsoft has setup the following projects in Github:

When I read Scott Hanselman’s blog posts related to the above announcement, I asked myself why those projects were not hosted at Codeplex. In my opinion, Codeplex is very popular within the Microsoft ecosystem. However, Github is the place where you host your open source project. Github is not tied to any operating sytem. It is very popular in the open source community.

I also read the blog posts in the Codeplex site and the last post was dated 2 years ago. Is Microsoft abandoning Codeplex? Are they concentrating their resources on other projects like Azure.

Let me know if you agree with me.





Go outside your comfort zone

During the day, I use the following technologies: .Net framework, c#,, html, css, javascript, mysql, sql server, git, team foundation, visual studio. When I use these technologies, I’m in my comfort zone and there is no pain while using these tools or frameworks. It is like speaking in your native language.

Lately, I’ve been going outside my comfort zone. So what is outside my comfort zone? Outside my comfort zone are programming languages like Ruby and Python. Also Django and Rails are in this category.

Let me share a story about being outside your comfort zone. I was working with a front-end developer in a simple web site. I was in charge of the back-end code while my friend was in charge of the HTML and CSS. Using email to collaborate in this project was not working for me. I proposed to my friend to start using Git and Github. Since my friend was an expert in front-end technologies and had no prior experience with a source control tool, he was uncomfortable learning Git and Github. He was unwilling to move outside his comfort zone. At the end, he refused to use any source control.

In my opinion, software developers need to go outside their comfort zone to learn new languages, tools, frameworks. At the end of this process, we will be better developers. We will be better prepared for new challenges.


Don’t give up

Don't give up

Sometimes when we fail, we give up. I tried really hard to get a job after college. I went to dozens of interviews and nothing. I was unable to secure a job in information technology. I had no choice but help my parents with their furniture store. During that time, I learned a lot about running a business.

After a few years working for my parents, I decided to start looking for a job as a software developer. I interviewed with a lot of companies but they always wanted someone with more experience. I was worried that I had my college degree but that degree was not enough to guarantee me a job. I was about to give up when someone found my resume online. They were looking for a Junior developer. James, one of the founders of, called me and asked me to come to the Arlington office for an interview.

The interview went well and they hired me to do a little bit of everything. Desktop support, web development, manage their phone system.

I hope you find my story inspiring and remember, don’t give up.


Beginners ruby

Get familiar with the Ruby programming language


Ruby is one of my favorite programming languages. Everything in Ruby is an object. In this article, I want to give a brief introduction to the Ruby syntax.


In Ruby, you can create string objects in the following ways:

first_name = "Mary"
last_name = 

Now first_name can use the built-in methods available for the String class. For example, we can say first_name.length and we will get 4. Length returns the number of characters contained in that variable. In addition to the length method, the String class has other methods such as upcase, downcase, capitalize.


In Ruby, you will encounter 2 types of classes that deal with numbers, floats and fixnums.


Numbers that contain decimals are treated as floats in Ruby. To create a float, you can use:

tax_rate = 8.25
total_amount = 1234.67 


If you need to use integer numbers, you will use fixnum. The good thing about Ruby is that you don’t have to declare the class type. You can just assign any value to your variable and Ruby will handle it.

work_days = 5
work_days.class # Fixnum   

In the above example, typing work_days.class returned “Fixnum” which is the class use to hold integer values.


The official Ruby documentation defines it as, “Arrays are ordered, integer-indexed collections of any object.” You can create Array variables with the following syntax:

a =
b = [1, 2.3, "test"]

In the above example, a is created by calling the new method on the Array class. b on the other hand is created by using the literal constructor. To get the first item in b, you can use b[0]. Since Array are zero index based, 0 represents the first item in the array.


A hash is a dictionary-like collection. It is made up of keys and values. The key must be unique. Take a look at the following examples:

h1 =
h2 = { "Dallas" => 1, "Houston" => 2, "San Antonio" => 3 }

The h1 variable was created using the new method and h2 was created using the literal constructor. To get the value of the key “Dallas” in h2, you can type h2[“Dallas”]. To get the keys only, you can use h2.keys and this will return an array with only the keys. Similar to the keys method, you can get the values with h2.values. The hash class has a lot of methods that I will go into more detail in a future article.

I hope you find this quick introduction to the Ruby programming language helpful.

Java Visual Basic

A college story about failing with Visual Basic and winning with Java

During my college days, I took classes on Visual Basic and Java. Based on my schedule, I started with Visual Basic and failed to get a good grade.  I received a C (70/100 points) for my Visual Basic course. For an aspired software engineer, getting a low grade on computer science courses was not acceptable.

The main reason why I failed with Visual Basic was because I did not spend enough time to study and complete the lab exercises. I was working full-time with my parents on their furniture store. Between working at the furniture store and going to school full-time, I did not have much time left to study.

I learned my lesson from this failure. I knew I had to get better grades on Java. Sprint semester was coming to an end and I started my research on the Java course. I completed my research and bought the Java book and enrolled in that class. I was determined to get a better grade.

During that summer, I installed Java on my windows machine and at the furniture store. The installation process was very easy and I started reading chapter 1 and taking notes. After I finished chapter 1, I completed the exercises using notepad and the ms-dos console. Using notepad as my text editor allowed me to remembered the syntax. By this time, I was so anxious to start the Java course. I was confident that I will get a better grade. Three months of learning the Java language, prepared me to get a better grade.

Another reason why I think I completed the Java course with a better grade was that my only focus was learning and studying one subject. I was focus on one thing only. I was not able to focus during Spring because of the many classes I was enrolled into and my full-time job.

In conclusion, my failure with Visual Basic allowed me to think about my career as a software developer. I knew that recruiters will look at my computer science courses to see my dedication. A low score on those classes will indicate poor performance but a high score will indicate dedication and effort.

I hope you can reflect on your failures not to stay in that state but to learn from it.

open source ruby ruby on rails rubygem

RubyGem of the week: Rails


RubyGems is a package manager for Ruby software. It allows you to create and distribute your Ruby packages or libraries. This week I’m covering one of most popular RubyGems, Rails.

To setup Rails in your project, you need to have Ruby 1.9.3+ and RubyGems installed. Once you have met those requirements, you can run the following gem command in your terminal or console windows:

$ gem install rails

To verify that your installation was successful, type “$ rails –version”. It should display the word rails along with the version number. It is that simple.

What is Rails?

Rails is an open source web framework. It was originally created by David Heinemeier Hansson. It is a model view controller framework written in the Ruby language. Some of the companies using Ruby on Rails are: NASA, Amazon,, Groupon, MadeWithEnvy, Heroku, Basecamp.

So what is different about Rails in comparison to other web frameworks? In my opinion, Rails allows you to build web applications faster because there is less configuration to perform. The frameworks also provides a default project structure. I don’t have to think where to place my models, views, controllers. By default, the framework handles those details for me.

To get started with Rails, I recommend the following resources:

1. The official Rails guide –

2. The Rails tutorial by Michael Hartl –

3. Book – Agile Web Development with Rails 4

If you want to learn more about the latest developments with Rails, visit the github page at Rails is one of the most popular projects in github with more than 9441 forks, 24492 stars, and hundred of contributors.

I hope you find this brief introduction to Rails beneficial. See you soon.

.Net ASP.NET C# open source Xamarin

All you need is C# to conquer the world

csharp c#

C# is an object-oriented programming language created by Microsoft. Wikipedia describes the language as “simple, modern, general-purpose, object-oriented programming language.” With the language, you can create many types of applications, web sites, desktop applications, mobile applications, web services, and many more.

If you know C#, then you can conquer the world. Yes, you read it correctly. You can conquer the world of software development with your knowledge of this programming language. You are only restricted by your imagination.

Here are the 3 reasons why I think C# is the number one programing language to conquer the world: mobile development, web applications, and open source initiatives.

Mobile Development

No one can deny that mobile applications are dominating our time and resources. Recent studies have found that the average user spends more time browsing thru mobile devices compared with desktop browsers. With these demand of mobile applications, businesses are pressured to keep up with this trend. Now they need to provide apps for the two major mobile ecosystems, Apple  and Google.

There are many choices to develop mobile applications, native, HTML, and C# with Xamarin. Nat Friedman and Miguel de Icaza created Xamarin to solve the problem of dealing with different code bases. If you want to write native applications for Android, you will have to write it in Java. If you want to write native applications for iOS, you will have to write it in objective-c. With Xamarin, you are able to share code across iOS, Android and Windows platform.

With your knowledge of C#, you write code once and Xamarin compiles your code for the intended platform.

Web Applications

There are many web sites developed to run under the .Net Framework. These sites still need to be managed and enhanced. Businesses have invested millions of dollars in their sites and there is a need to keep these sites working correctly. If you know C# with experience in the ASP.NET web application framework, I assured you that there will be enough jobs for the years to come.

So who is using this framework? Some of the companies using ASP.NET are: US Airways, Bing, Msnbc, Kelley Blue Book, 3M and many others.

Open Source Initiatives

In November 2014, Microsoft announced in New York that many components that are part of the .NET framework are released in github as open source. See Scott Hanselman’s blog for a complete listing of projects and initiatives taken by Microsoft to make ASP.NET 5 cross platform. Along with these changes, Visual Studio Community is now available for students and open source developers. There is also a new .NET Core CLR for Linux, Mac, and Linux. If you want to see the changes, go to the github dotnet page. I believe these changes by Microsoft allows for more innovation. And with innovation, we will see new products and also improvement to the existing .NET framework.


I believe C# is an excellent programming language to conquere the world of software development. There are sites developed in the ASP.NET web framework that still need maintenance and enhancement. With the recent rise of mobile development, your C# skills will allow you to write cross-platform apps with Xamarin. The open source movement by Microsoft has taken a major change for C# developers. It will allow you to write cross platform on any OS.