Co-op fall semester summary
Student Name: Kimberly J. Philpot
Major(s): Computer Programming and Database Management
Semester / Year: Fall 2013
Company Name: Vineyard Cincinnati
Supervisor Name: Connie Neckers
This is my Co-op Summary for Fall Semester 2013. In a way, it’s been a long 15 weeks, but also a short 15 weeks. At week 1, I identified several Learning Outcomes with my Co-op Supervisor to work towards during this semester. One of the Learning Outcomes included utilizing my blog, http://www.kimphilpot.wordpress.com, to document my experiences during the co-op. This is an online journal where I posted weekly updates regarding projects I worked on, things I learned ‘on the job,’ and summaries of different research topics. I also invited feedback and comments from my Co-op Supervisor, Connie Neckers, who responded with support and encouragement at every step.
One of the other Learning Outcomes included respecting project deadlines and working in partnership with the IT team to complete projects within the required timeframe. One of the projects I worked on included creating relationship and workflow diagrams for the database, servers, and tasks associated with each server. This was early on in the semester and was a good experience for me to see the visual picture of the relationships between the development server and the production server, including how the testing or QA server relates to both. I included the different server names, the common names for those servers, and their functions. This was also very interesting as it really helped me to see both the server name and the common name together. It also was helpful to see the process. I mistakenly had thought that code sitting in the QA server went directly into Production. But that is not the case. The code is first checked out from the Repository and put into QA for testing. Once it passes QA testing, then the original code from the Repository is put into Production. I always thought that the code moved from QA testing into Production.
Another project I worked on was the mapping of relationships between tables in the Vine database. This required researching the table relationships in the Schema Spy and then creating EER Model diagrams from MySQL showing the relationships between the tables. One of the folks in IT has used Schema Spy to do this initially and it is great, but there are a couple of tables that pretty much everything else relates to, so it is hard to visually see the relationships to the other tables in Schema Spy. The EER model will allow me to print large diagrams (34 x 44 inches) and enable me to spread out the different tables, providing a cleaner view of the relationships.
In addition, another goal for this semester was to be an active participant in the Database Architect meetings and other IT meetings (such as the Google Apps for Enterprise meeting) and provide feedback and thoughts as appropriate. I believe I accomplished this, in that I have heard several times from different IT team members that they appreciated my perspective and comments during meetings. Another goal that I have for this semester is to study and schedule the SQL Server 2012 certification test. Although I think I have gotten a little behind on this item, I do have the test scheduled for the first week of January, so I plan to use my 2 weeks between semesters to study hard for this certification. Earlier in the semester I identified a set of tutorial videos geared specifically for learning SQL 2012 and passing the certification test, so I plan to dig in to those videos and my SQL Server 2012 Training Kit in depth over the next 2 weeks.
An ongoing part of my co-op has been to make periodic website updates for our sister organization at http://www.healingcentercincinnati.org. I have continued to do this and provide great customer service with quick turn-around times. With severe weather knocking at the door, specifically this past week, the need for activating the ‘weather closure’ banner on the website leapt to the top of the list. In the event the organization would close for services, the ‘weather closure’ banner would be activated on the website and social media (Facebook and Twitter) messages would be posted to let people know of the closure. Although the organization did not actually close, I needed to be prepared to make this update outside of normal business hours. Providing great customer service, even to internal customers such as other departments, is critical in that it allows those other departments, in turn, to provide great customer service to their customers.
One last outcome that we identified in Week 1 of the semester was to possibly document the process for printing volunteer labels for Healing Center volunteers. Although I did not formally write about this process, I did talk about it briefly with my Co-op Supervisor. The idea for this particular project started almost 1 year ago, so documenting it now is a little harder.
Additionally, I have been able to help with several MySQL queries to retrieve specific sets of data or update records from our database. This was a great experience as it increased my hands-on knowledge of MySQL and some of the syntax particulars required for MySQL queries (vs SQL queries). Because I was also in a PHP/MySQL class this semester, it was a good tie-in to help with these MySQL queries in the workplace.
During this past semester, I also noticed that the Software Development Life Cycle (SDLC) was mentioned multiple times, so I did some research to further enhance what I had learned from a previous class the previous semester. The SDLC (Software Development Life Cycle) is the full process, from start (initial idea) to finish (launch and ongoing maintenance) of developing a software program. I would bet that some people lump all of the phases into one or two and probably think that coding is the most important phase. I found some information at http://bpmgeek.com/blog/software-development-life-cycle-basics which was very helpful – the information was clear and easy to understand.
This website (bpmgeek.com) listed 7 steps to the SDLC.
- Preliminary Idea & Investigation
- Feasibility Study
After a little more searching, I realized that the SDLC can be quite simple (idea, design, develop, release, maintain) to quite complex (showing 13 or more basic phases with multiple sub-phases under each one). As I see it, being able to articulate the SDLC to management or other involved parties would be very helpful. I imagine that there may be a vague understanding of the SDLC, thinking that it is a lot of coding and then magically producing a product that does every single thing the client wants. Obviously, that’s a pretty simple view. But, I’m sure that in some organizations, management folks might not realize all of the details that go into developing software. And those details affect expenses (both at the front end of development time and at the back end when the programmer is correcting things due to poor design or poor articulation of software requirements), client satisfaction, reporting, and ability to do business.
For my own purposes, I developed a hybrid model of the SDLC with the following elements:
- Idea & Investigation: At Stage 1, Idea & Investigation, the initial idea about the project is identified. Client requirements are investigated and documented. Investigation could also include research about already-existing solutions or modifications to current projects that would meet the needs of the client.
- Feasibility Study & Analysis: At Stage 2, Feasibility Study & Analysis, the client requirements are analyzed, cost projections are developed, and the full scope of the project is planned out. If there are other already-existing possibly solutions, those are studied as well to determine if that would be the best course of action.
- Design Specifications: At Stage 3, Design Specifications are developed. This is important, as it will impact the overall cost of the project. Diagrams are developed to visually display the flow of logic within the software. This becomes the blueprint for the software project and needs to happen prior to any coding.
- Coding & Testing: At Stage 4, Coding & Testing begins. Using the Design Specifications as a blueprint, each section of the software is coded and connected together to develop the overall software project. This stage also includes testing each section to determine if it functions as planned. At this point, any defects that are identified can be corrected.
- Implement Systems & Evaluate Performance: At Stage 5, Implement Systems & Evaluate Performance, the program is launched and ready to use in the real-world application. Studies are completed to evaluate the performance. Is it operating the way the client wanted? Are there any unexpected results?
- Ongoing Support & Maintenance: At Stage 6, Ongoing Support & Maintenance, any modifications that arise are made. Enhancements to the program are also included in this phase.
Although the SDLC runs in a clockwise fashion (according to my circular graph), at any stage, it may be necessary to reverse the path and go back to the previous stage to further develop or refine the project. Again, this is more for my personal use to provide a helpful reminder of the different stages in the Software Development Life Cycle.
Although the topic of ‘end user experience’ does not include any coding, it does help to cement the fact that computer programmers and web developers really need to work with the end user in mind. Any program or website needs to be user-friendly, that is, intuitive and easy for the end user to use. Components in a website or web application should be clearly labeled and easy to see for users. One example that I’ve noticed with Google Mail (for our organization) recently is that there is a little grid of squares in the upper right corner – this is not labeled at all. But, when you click on it, the window opens and you can see links for Calendar, Documents, Drive, and other options. Now that I know it’s there, I don’t need it labeled, but when it first appeared, it would have been nice to have a hover balloon pop up to let you know what the little grid of squares is. This is just an example of how web developers could enhance their web pages to provide a great experience for the end users.
I think the opportunity and requirement to document my learning experiences has been the most helpful over the last 15 weeks. It is important to be able to articulate what you know to others, and to be able to share your knowledge with others. Overall, my co-op experience has been a positive experience and I look forward to continuing this in the next semester.