Big data analytics picked up pace to offer meaningful information based on analyzing big data. Big data have various distinctive characteristics that together have led to overwhelming the available infrastructures both hardware and software. Moreover, this led to creating further complexities when considering the software engineering aspects for big data applications development. Introducing cloud computing into the mix further complicates the issues. Most of the current efforts in big data analytics target finding ways to store, organize and process big data effectively in addition to investigating cloud-based big data applications perspectives. However, we noticed there is not much emphasis on defining or enhancing the software development process for developing such applications. Like any software system, it is important to identify the types of applications, requirements and constraints and use this knowledge in a well-defined process model to design and develop effective cloud-based and traditional big data analytics applications. In this paper, we investigate these applications and attempt to identify the general requirements and constraints to better support the software development process. One of the important aspects is being able to distinguish real-time from delay-tolerant big data analytics applications. When the requirements and time constraints are identified, we can decide on the type of infrastructure and software architectures that will best match these requirements. As a result, we design and deliver effective and useful big data analytics applications.