4. Is this worth our time? This is similar to our technology landscape today The internet is filled with tons of languages, frameworks and/or libraries to choose from
5. Is this worth our time? There are over 2000 High Level languages today [http://www.cs.man.ac.uk/~pjj/cs1001/software/node3.html#SECTION00033000000000000000]
6. Is this worth our time? Making such decisions are at the core of Software Development Difference between delivering on time and late Difference between going above or staying within budget
7. How are we making decisions today? Religious Affiliations Some are devoted to .NET Java Ruby Erlang Company Policy Knowledge and familiarity
8. Questions to Consider Who or why are you developing the application? Enterprise Personal Leisure/Fun Automation What problem are you solving? Content Security Communication Reporting Tracking
9. Questions to Consider How soon are you to finish? 1 week (prototype) 1 month (Patch) 1 year (Government Project) What SLA has been imposed on you? Reliability Availability Scalability What phones will run your application? (Mobile) What is your budget?
10. Key Decision Points (Web) Language UI mark-up: HTML, JavaScript, Java (applet) Server-side: PHP, .NET, J2EE, Python Storage RDBMS: PostgreSQL, MySQL, SQL Server, Oracle File: Well…depends on the complexity of your mind Cloud: Amazon EC2, Cassandra Monitoring Log files: Language specific Messaging Passing: JMS, MPI Website usage service: Google Analytics
11. Key Decision Points (Mobile) Language Java (Android) J2ME Python Ruby Objective C (iPhone) Storage RDBMS: Apache Derby, Java DB, Floggy, SQLite, File: Records Management Store (RMS) Monitoring HTTP: more commonly used RMS
13. Requirements Develop a Maternal Health Software on top of OpenMRS (MoTeCH Server) J2EE Spring, Hibernate, Quartz, Maven, Tomcat Develop a mobile app that communicates with MoTeCH Server Data Entry Query Server
14. Technologies Used (Server) J2EE – Largely influenced by OpenMRS Spring: IoC, Transaction Management Hibernate: Persistence Framework Maven: Project Management MySQL: RDBMS Tomcat: Servlet Container Quartz: Scheduling EasyMock: Testing OpenXData: Mobile Data Entry
15. Technologies Used (Mobile) J2ME OpenXData: Mobile Data Entry Custom Serializer library for transporting objects to server
17. Requirements Develop online bulk messaging service Must be significantly faster than current desktop applications UI must be superior to current market offering
18. Technologies Used PHP: Front end marketing pages Sencha: Data Binding UI component jQuery: Front-end k3ts3 (beautification) J2EE Spring Hibernate Quartz GSON: JSON to Java Object Log4J: Logging Framework
19. Key Points You must meet your requirements before experimenting Consider the number of people using the technology – COMMUNITY Be Open-minded and not religious Not the best idea to choose new technologies for a new project. Experiment with different technologies in your leisure