Page 107 - DCAP405_SOFTWARE_ENGINEERING
P. 107

Software Engineering




                    Notes          To give an example of this way of thinking from our day job:
                                   Every couple of years my company plans and hosts a large event where ~400 of our customers
                                   all fly in to one location for a multi-day event with various activities. We have some staff whose
                                   job it is to organize the logistics of this event, which includes tracking which flights everybody
                                   is booked on, arranging for transportation to/from airports, arranging for hotel rooms, name
                                   tags, etc. The last time we arranged this event all these various pieces of data were tracked in
                                   separate spreadsheets and reconciliation and cross-referencing of all the data was literally done
                                   by hand using printed copies of the spreadsheets and several people sitting around a table going
                                   down each list row by row.




                                     Notes  Obviously there is some room for improvement in how we are using software to
                                     manage the event’s logistics.
                                   The next time this event occurs we plan to provide the event planning staff with a more intelligent
                                   tool (either an Excel spreadsheet or probably an Access database) that can track all the information
                                   in one location and make sure that the various pieces of data are properly linked together (so for
                                   example if a person cancels you only need to delete them from one place, and not a dozen
                                   separate lists). This solution would fall at or near the very left end of the SEMS meaning that we
                                   will just quickly create something with very little attention paid to using mature software
                                   engineering practices. If we examine this project against the 3 criteria we have listed above for
                                   determining it’s place within the SEMS we can see why:
                                       Importance: If this application were to stop working the business doesn’t grind to a halt,
                                       revenue doesn’t stop, and in fact our customers wouldn’t even notice since it isn’t a customer
                                       facing application. The impact would simply be more work for our event planning staff as
                                       they revert back to the previous way of doing things (assuming we don’t have any data
                                       loss).

                                       Complexity: The use cases for this project are pretty straightforward. It simply needs to
                                       manage several lists of data, and link them together appropriately. Precisely the task that
                                       access (and/or Excel) can do with minimal custom development required.

                                       Life-Expectancy: For this specific project we’re only planning to create something to be
                                       used for the one event (we only hold these events every 2 years).
                                   Let’s assume we hack something out quickly and it works great when we plan the next event. We
                                   may decide that we want to make some tweaks to the tool and adopt it for planning all future
                                   events of this nature. In that case we should examine where the current application is on the
                                   SEMS, and make a conscious decision whether something needs to be done to move it further to
                                   the right based on the new objectives and goals for this application. This may mean scrapping
                                   the access database and re-writing it as an actual web or windows application. In this case, the
                                   life-expectancy changed, but let’s assume the importance and complexity didn’t change all that
                                   much. We can still probably get away with not adopting a lot of the so-called “best practices”.

                                          Example: We can probably still use some of the RAD tooling available and might have
                                   an Autonomous style design that connects directly to the database and binds to typed datasets
                                   (we might even choose to simply leave it as an access database and continue using it; this is a
                                   decision that needs to be made on a case-by-case basis).
                                   At Anvil Digital we have aspirations to become a primarily product-based company. So let’s
                                   say we use this tool to plan a handful of events internally, and everybody loves it. Maybe a
                                   couple years down the road we decide we want to package the tool up and sell it as a product to




          100                               LOVELY PROFESSIONAL UNIVERSITY
   102   103   104   105   106   107   108   109   110   111   112