Thursday, July 26, 2012

Health Informatics

After listening to Dr. Tom Savel speak to our class about what the CDC was doing with mobile app development, what I found most surprising and fascinating, was how much time, effort and thought goes into creating a user experience.


I didn't think that creating a user experience was going to be easy but I also didn't realize what goes into making a 70 page pdf document into a mobile app.  Some of the decisions that need to be made include:
- how to categorize the document (by topics, by chapter, etc)
- how to allow the user to choose the category (list alphabetically, create icons for each category, etc)
- once a user clicks on a category, how is that information displayed? does it read like a book? are there a list of sub topics to click on? should those sub categories be in a list or have icons?
- should topics be cross references?  if so, how?
- should there be a back button, a forward button, a 'go to the beginning' button, a 'go to the end' button?
- should there be storage of a users history?  If so how?  how will they access?
- should there be a home button?  where?  on the screen at all times?

These questions just hit the surface of all the questions that a team must ask themselves before creating a web app.


Doctors and other health professionals having access to information literally in the palm of their hand, is an amazing concept and I think the field of Health Informatics is only going to grow.  I have noticed in the past year or two, my doctors have all converted from written charts to carrying laptops and inputting all information there, I can just imagine mobile being the next step in electronic health records.



Tuesday, July 10, 2012

Google I/O conference session 2012

The Google I/O conference was held on June 27-29, 2012.  Videos of their sessions are posted at http://developers.google.com/events/io/sessions.  The session I listened to was titled "The next generation of social in the hangout."  Developers discussed Google + hangout, how it came about and how it is used.


I found this session fascinating.  I have used Google hangout only a couple of times for a group project for school.  I thought it was pretty cool but never really stopped to think about he possibilities.


The developers talked about a Hangout as being the new way to do social.  Mimicking real life but having everyone actually there where they can be seen as if everyone was at a conference table.  Hangouts have been used to give cooking demos, guitar lessons and to show power point presentations.


Google hangout is being used more and more for business collaboration so the Docs app was added so colleagues could share documents, live in real time.


The Google hangout API can be used to:
    - build activities inside hangouts
    - build enhancements for live conversations
    - bring Google + hangout to your app


Examples for companies that have incorporated the Google Hangout API are:
    - Aces Poker, which lets everyone sit around a table and play poker and when it is your turn, your camera displays you in the big center square for everyone to see your "poker face". 
    - Scoot and Doodle - where a group of people can sit around the same canvas and draw, play pictionary or make a collaborative work of art.


To create an application using Google + hangout, go to http://developers.google.com/+/hangouts and start new application.


Google + is free, web based software that could truly change the way businesses conduct meetings, the way presentations are made, the way friends meet, the way students ask for help and so on.  The possibilities seem endless.  

Wednesday, March 28, 2012

Big Data

What is Big Data?

Previously, we have always thought of data as set of relational databases neatly packed in tables. 

Today, we have data coming from the internet, social networking sites, online shopping sites, mobile devices, cell phones, text messaging just to name a few.  Where does this data go?  How can it be stored, indexed, packaged, queried and how can any one technology keep up with the volume?  All of these questions have lead to the term "Big Data".

Big Data is defined by Wikipedia as " data sets whose size is beyond the ability of commonly used software tools to capture, manage, and process the data within a tolerable elapsed time. Big data sizes are a constantly moving target currently ranging from a few dozen terabytes to many petabytes of data in a single data set"

What are "No SQL" databases? Why are they important?

No SQL databases are databases that are structured much differently than the traditional rational databases. Key components of a "No SQL" database include:

  • Easy to use in conventional load-balanced clusters
  • Persistent data (not just caches)
  • Scale to available memory
  • Have no fixed schemas and allow schema migration without downtime
  • Have individual query systems rather than using a standard query language

Three key drivers have created an interest in Big Data and No SQL.
  • Data from Social Networking and Web 2.0 sites
  • Data changes over time and many data models don't evolve to keep pace with the changes in data
  • No SQL technology is becoming a comodity therefore everyone can get it and use it relatively easily.

The following table and website, compare the different companies that are offering No SQL technologies, they include Amazon Web Services, Google Big Table and mongo DB.


What is Hadoop?
A current leader in No SQL technology of handling Big Dat is The Apache™ Hadoop™ project which has developed open-source software for reliable, scalable, distributed computing.

Hadoop's software library allows for the distributed processing of large data sets across clusters of computers using a simple programming model.

What is Pig?

Apache Pig is a platform for analyzing large data sets. Pig's language, Pig Latin, lets you specify a sequence of data transformations such as merging data sets, filtering them, and applying functions to records or groups of records.

What is Hive?


Hive is a data warehouse system for Hadoop that facilitates easy data summarization, ad-hoc queries, and the analysis of large datasets stored in Hadoop compatible file systems. Hive provides a mechanism to project structure onto this data and query the data using a SQL-like language called HiveQL.

Big Data is a growing problem and a growing opportunity.  With so much data being transmitted through so many different means, companies are constantly looking for ways to manage the increasing volume (amount of data), velocity (speed of data in/out), and variety (range of data types, sources) of data.






Wednesday, March 21, 2012

Lean Primer - Summary and Review

Lean Primer by Craig Larman and Bas Vodde


This article describes "lean thinking" and the "Toyota Way".  Lean thinking is a proven system that applies product development and production used by Toyota and other companies.


The best way to describe lean thinking is to view the following graphic:


The foundation of the house is management and its long term philosophy.  The "pillars" are two important priorities for Toyota, being "Respect for People" and "Continuous Improvement".  The "heart" is a combination of Product Development and the 14 Principles.  And finally on the top is the roof which represents the successes of this process.


The author sees "lean" as a broad system that spans all groups and functions of a company.  Everything from product development, sales, production, IT and HR.   The chairman of Toyota believes that these tools must be practiced consistently and used every day in order to be effective.


I think this type of lean thinking can be extremely effective if implemented correctly but I feel this implementation would be very difficult.


It feels very rigid to me and doesn't allow for flexibility in thought, management style, skill set or philosophy.  An organization would have to be very strict and rigid in its rules and regulations for this type of "lean" thinking to work.  If it does work however, I think it can be very successful because every part of the organization is working for the same goals and end results.

What is BPM? A Summary and Review

Summary of the Article, What is Business Process Management by Michael Hammer


Michael Hammer writes, "Business Process Management (BPM) is a comprehensive system for managing and transforming organizational operations, based on what is arguably the first set of new ideas about organizational performance since the Industrial Revolution."


1.  Origins of BPM
Two primary schools of thought led to today's BPM systems.  First is the work of Shewhart and Deming on statistical process control which led to today's more sophisticated Six Sigma.  These systems rely on the use of performance metrics to determine whether work is performed satisfactorily or not, reliant on hard data rather than opinion.  Limitations for this process include, its definition of a process leads to an organization to have hundreds of processes that may or may not have significance to the enterprise as a whole, yet all have to be measured and evaluated.


Another school of thought was the authors, Michael Hammer called Reengineering.  Reengineering redefined process as being end to end work across an enterprise that creates customer value and focusing only on the meaningful processes.


2.  The Process Management Cycle
Over the last decade, these to processes have merged to give us Business Process Management.




The diagram above shows the process management cycle beginning at the bottom.


Failure of the process can lie in the failure of the design and/or execution.  Once the root of the problem is found, it is easy to fix.


The process is built on the premise that through deliberate management of the end to end process, customer value is created.  BPM is customer-centered.  Customer, results and process for a triangle that organizations should give attention to.


3.  The Payoffs of Process Management
Enterprise benefits from consistency, cost, speed, quality and service which in turn improves customer satisfaction.
Recent Examples of companies that have benefited from BPM include:
-Consumer goods manufacturers who were able to reduce inventory by 25% yet 'out of stock' situations declined by 50%
-Computer maker reduced time to market by 75%, development costs by 45% and increased customer satisfaction by 25%.


4.  Enablers of the Process
Companies need to have 5 critical enablers in place in order for BPM to work effectively
     1.  Process design
     2.  Process metrics - targets need to be set and performance measured
     3.  Process Performers - people with certain skill sets
     4.  Process Infrastructure - HR and IT departments that work together
     5.  Process Owner - senior managers with authority to make sure processes are carried out throughout the organization.


5.  Organizational Capabilities
Four critical capabilities are needed to ensure success with the processes.
     1.  Leadership - passionate senior leadership to support efforts.
     2.  Culture - the culture of an organization should support the process by people at all levels will be involved.
     3.  Governance - process owners, executive leaders and other senior managers.
     4.  Expertise - companies need people with expertise in process design and implementation


6.  The Principles of Process Management
     1.  All work is NOT all process work - there must be a balance between development process and creativity.  Processes should not be misinterpreted as routinization or automation.
     2.  Any process is NOT better than no process - a process must be well defined.
     3.  A good process is better than a bad process - a bad process must be replaced
     4.  One process version is better than many - standardization across enterprise can allow companies to give better support services and allows redeployment of staff to other parts of of the business.
     5.  Even a good process must be performed effectively 
     6.  Even a good process can be made better
     7.  Every good process eventually becomes a bad process - no process can stay effective forever and will need to be replaced.


7.  The EPM as a Management Tool and BPMS
EPM is Enterprise Process Model and it is a graphical representation of an enterprise's process.






The graphic above is an example of an Enterprise Process Model


8.  Frontiers of BPM
Despite its widespread adoption, BPM is still in its infancy.  Challenges for the future include:  Management structure and responsibility, IT support, Interenterprise process, Standards, Process and Strategy and Industry Structure.


There is much work to be done in the area of BPM but it is definitely "the wave of the present and we are in the Age of Process."


Review by Farah:
I think Hammer is a leader in his field and his analysis made so much sense to me.  


I think the biggest hurdle in the broad acceptance and implementation of BPM will be finding enough qualified people throughout an organization to get across the board buy in:  Having senior executives who are willing to implement and monitor such a process and having skilled IT and HR people willing to work with such a process.


I am a huge believer in proper training and implementation.  I have seen so many great projects, great ideas and processes put into place,  then very poor training and lack of documentation occurs, the ball is dropped and the project never really works as intended.  Members of an organization must have on going training at every level and people should be in place to tweak, retweak and make sure the process is implemented effectively on an ongoing basis.





Wednesday, January 18, 2012

Textbook VS SWEBOK

Our text book, Systems Analysis and Design in a changing world by Satzinger, Jackson and Burd, outlines 6  core processes of systems development while SWEBOK, the Softwae Engineering Body of Knowledge, uses 10 knowledge areas to describe systems development.


SA&DSWEBOK
ID problem/need and obtain approval to proceedSoftware Requirements - A property that must be exhibited in order to solve some real-world problems
Plan and monitor projectSoftware Design -The process of defining the characteristics of system and the result of that process
 
Discover and understand details of the problem/needSoftware construction - Detailed creation of the actual software.
Design the system components that solve the problemSoftware Testing - The dynamic verification of the behavior of a program against its expected behavior.
Build, test and integrate system componentsSoftware Maintenance
Complete tests and deploySoftware Configuration Management
 Software Engineering Process
 Software Engineering Tools and Methods
 Software Quality


SWEBOK appears to be a much more detailed approach to systems development than SA&D.  The areas that SWEBOK add are Software Maintenance, configuration management, engineering process, tools, methods and software quality.

The SA&D method seems to focus a little bit more on planning of design while the SWEBOK method has more focus on maintenance, customization and improvements after the deployment.

SA&D might be assuming the maintenance and further improvements will be part of the design or they hand over that portion to the client or 3rd party.

I think over all both have extremely valuable and important steps and that both process should be kept in mind when designing a system.

Monday, January 16, 2012

Silver Bullet?

According to Frederick Brooks, Jr. from the University of North Carolina at Chapel Hill, "There is no single development, in either technology or management technique, which by itself promises even one order of magnitude improvement within a decade in productivity, in reliability, in simplicity."

There is no silver bullet to make the "perfect information system".

I think a combination of the following could definitely contribute to better, more productive, more reliable and simpler software systems:

1.  Using open source software - with the rapid changes in hardware and operating systems, using programming software that is  not hardware or operating system dependant, can be a huge advantage in software usability.
2. Building software with a higher degree of customizability.  I really like the Dr. Brooks' idea of building software from the top down.  Start out with something large scale and simple and then slowly customize it down to the details needed by the customer/client.
3.  Computer programming should be taught at the high school level.  Students at a young age should be taught problem solving, concept mapping and early programming.  These skills at an early age can lead to great programmers and designers post secondary school.