Sunday, October 27, 2013

Civic Hacking

Source

Nowadays when we hear the word “hacking”, the first thing that the general public will think about is a computer programmer that is gaining unauthorized access to a system for malicious purposes such as stealing personal information or sending out viruses to infect other computers. Not all hackers are people who want to steal your identity or give your computer a virus. There are those who hacked into a system with the intention of improving one’s security system. They would leave notes to administrators about the security hole that they need to fix. Another definition of hacking would be simply put, the process of fixing a problem. When hacking comes up on the media, we generally hear bad news, but what about if hacking were to be seen in a positive way?

            I am talking about the “Civic Hacking Movement,” where defined on the Code for America blog states that civic hacking is “people working together quickly and creatively to make their cities better for everyone.” The great part of this movement is that you don’t necessarily need to have any technical expertise or be a computer programmer. Civic hacking is a collective effort of ordinary citizens and/or programmers who want to make things better for them and their community. There have been civic hackathons held in Chicago, Philadelphia, and San Francisco, which helped bring together developers, designers, artists, urban planners, and interested citizens. These specific hackathons allow the participants to use open data sets made available by their governments to design useful web or mobile applications that can be used to improve businesses, local government agencies, and other citizens.

            A great example would be Philadelphia’s Philly311 app , the mobile 311 service that was a result from a civic hacking movement. The Philly311 app helped improve the efficiency of their existing 311 call center and provide a channel to easily communicate with City Hall. The app includes options such as submitting a service request, search for nearby requests by other citizens, contact city administration, and receive updates on city news and announcements. The app has so far been successful with over 12,000 requests submitted and it was the 33rd most downloaded app in the country during Superstorm Sandy back in November 2012.

            The idea of having ordinary citizens collaborate with coders and software engineers to help the community is an interesting idea and can possibly offer many solutions to improve the community. With the civic hacking movement spreading through other cities, it seems like it is here to stay and can possibly be the solution that connects the people and government in an efficient way through technology.

Sunday, October 13, 2013

Open Source Software: Made Public for Others to View and Share


What is open source and what does it mean?
Open source is a term that refers to something, whether it is computer software or products, that can be modified or enhanced by anyone since its design or source code is made viewable for the public. I must say that I am fairly new to the term, but didn’t realize that I was already using many open source programs such as Mozilla’s Firefox internet browser or WordPress.

With open source software, anyone can view the program’s source code, copy it, learn from it, share it, or even change the code. In fact, in order for software to be considered open source by the software development industry, they must follow certain criteria which are:
  • The program must be freely distributed.
  • Source code must be included.
  • Anyone must be allowed to modify the source code.
  • Modified versions can be redistributed.
  • The license must not require the exclusion of other software or interfere with the operation of other software.

The popularity of open source software is due to the fact that many people can examine the program’s code to make sure that it does what the program is intended to do or change it to do something else (kind of like what Wikipedia used to be before they actually checked what was being changed). Having the source code publicly accessible opens up to creativity and can be a beneficial tool to become better programmers by looking at the code and understanding what the code does. Wait a minute, if the source code is made available to the public, doesn’t that mean that the software isn’t secure. Well, that could be an issue, but in actuality, some people find open source software to be more secure and stable than closed software because anyone can spot and fix the errors without having to wait for future updates. This is one of the reasons why some people prefer using Linux instead of Microsoft’s Windows operating system.

The whole open source software idea is fascinating and I'm hoping that more software programs become open source one day. For more information on open source software or how I learned all these awesome information, click here, here, and why not here.


Sunday, October 6, 2013

Agile and Planning Poker


Back in 2001, a small group of software developers discussed a more successful and innovative approach to managing software development projects. The result was called the Agile Manifesto. What makes agile so different from the traditional approaches to managing software development projects? Well there were four main values that the group agreed upon which were Individuals and interactions over processes and tools, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. These four main values can be summed up as “while there is value in the items on the right, we value the items on the left more.” For the twelve principles that are based on the Agile Manifesto, check out this website.


Agile can be a great tool for anyone that wants their project to succeed. There is one tool that I have used that has an interesting concept in building team communication, which is called Planning Poker. Now you may be thinking that just because I said poker, that this agile tool is all fun and games, but in actuality it is not the type of poker you may be thinking about. Planning poker is basically presenting a story or objective in achieving the main goal of the project. With each objective, every group member is presented with cards with a number value. Each numbered card represents an estimate of how much work the member thinks would be involved in the achieving that objective. Each estimate is kept private from each participant until everyone has chosen a card. The cards are then shown and if there are any differences between card values, then the group discusses on why they think it would take this amount of work to accomplish the objective. It is not until each group member has selected the same card value that the group can precede with the next story or the objective. You repeat the process until the group has agreed on how much work will be done to complete the project.

I find this tool to be effective and has the potential to build team chemistry. Each member can disagree or agree by providing information or solutions as to why this project will be completed by that estimated amount of work. There are other methods such as Scrum, but using planning poker can be the first step in getting any work done and making sure that everyone stays on the same page. Also, the best thing about Planning poker is that it is absolutely free. So why not try it today.