Co-op Highlights 10

This past week, I was able to sit in on a meeting regarding the planning of a mobile application for our organization.  This main goal of this app would be to enable leaders to take attendance at the small group or events.  There are 3 University of Cincinnati students working on this project and they are actually building 2 different applications, one is the mobile web application (like a mobile website) and the other is an Android application.  They are walking through the SDLC (Software Development Life Cycle) and presented the mock-up of screens to our group.  I wrote about the SDLC in week 7.

sdlc

The team is currently in the Design process and this meeting helped to clarify what our organization would like to see in the mobile application.  There were some good ideas presented that would give the end user a better experience.  This included making the app not time out for at least 30 minutes, adding some help information (such as the phone number for Facilities, the building and room of the event, and normal building hours), and adding a second level page that would allow you to click on someone and have their contact information pull up on the screen.  In addition, the phone number and email would be ‘linked’ so that you could easily call a person.

Mark, our database expert and long-time contractor, suggested some additional tweaks to the design.  In the event that we would like to allow other similar organizations to use this app in the future, it would need to be changed to fit the look of the organization, also called skin.  The colors, logo, and name of organization should be able to be easily changed.

In addition, I just registered for my last semester of classes, which will start in January 2014.  I should be applying for graduation sometime in the next month and looking forward to April 2014 graduation.  Woo-hoo!

One of those Spring 2014 semester classes is my Capstone, a project-based class.  I have talked about possible projects with one of the folks in our IT department.  There is a real need for a good reporting tool that my organization could use.  We have great data in our database, but not a great way to retrieve that data (and slice & dice it any which way).  One suggestion was to look for an open-source reporting software that could be used and then write the code to connect it with our database.  There are several categories of work here – research reporting tools (Reportico was suggested by Mark, our database expert and long-time contractor), SWOT analysis, write code to make connections to database, testing, and training other staff.

This seems like a valid project, but I need to get approval from the Capstone instructor before moving forward with it.  I’ll keep you posted.  🙂

Co-op Highlights 7

This week (well, really last week), I noticed references to the SDLC (aka Software Development Life Cycle) several times in things I read or heard in meetings. I know some about the SDLC, but I don’t really ‘know’ it. I know what it is, but wouldn’t be able to put it in to my own words accurately or succinctly. So, I thought this post would be a good place to do some research and write out my findings.

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.

  1. Preliminary Idea & Investigation
  2. Feasibility Study
  3. Analysis
  4. Design
  5. Coding
  6. Testing
  7. Maintenance

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).

I found a graph (http://www.sjmsoftech.com/Software-Development-India.aspx) that seems to be a good balance of overview and detail.  I believe this will help me to better articulate to others what phases there are.

graphic_sdlc 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.

As I compare both examples above (both the bulleted list and the graph), I would like to propose a hybrid.  This will be mainly for my own personal use and help with articulating the SDLC to others.

sdlc

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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?
  6. 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.