MLA or APA Citation: "Software Development Trends for 2017." SaM Solutions. SaM
Solutions, 15 June 2017. Web.
Analysis:
Since I aspire to go into Software Development, I believe it is important for me to
have a fundamental understanding of the primary topics today within the field. Therefore, I found this article, published by SaM Solutions, to be intriguing and relevant to me. This article allowed me to develop a basic understanding of the top five technological trends utilized by businesses that are projected to be critical in the future: Internet of Things, Machine Learning, Automation, Agile Methodology, and Decentralized Teams. Internet of Things relates to making a variety of devices have access to the internet. I learned that Internet of Things is currently the most prominent trend today and find the principle interesting as it is relatable since it affects a variety of places. Whether for personal use- such as in the house- or while working in agriculture or banking, Internet of Things makes processes easier, faster, and more connected. However, I did not realize the broadness of the domain in which Internet of Things is used. Originally, upon learning of the term, I thought it was only for personal devices. This article furthermore discusses that as the amount of internet-connected devices grows, more software is needed to process that data. The article additionally emphasizes that the issue of ensuring to code software that is apt for the hardware comes into play. I have not had to consider hardware much in my programming; however, this year I will have to in my mobile applications programming class as mobile applications need to be apt for the specific device. I have found Internet of Things interesting for a while now. I remember watching a TED Talk about how everything is becoming wireless and utilizing Internet of Things. I additionally have read Masters papers written by a family member about her project in Internet of Things. This is a topic I am really interested in within Software Development as it truly connects people with technology. While Internet of Things allows improved performance, it brings security and data management challenges. This is probably why so much more software is necessary- the huge amount of data needs to be accessible, modifiable, and secure. Also, some of these utilities should have the ability to learn from different data. Machine Learning deals with machines needing less supervision by programmers as the machines can analyze data using algorithms by themselves. I have learned through my interviews and other research assessments that it is crucial to input the correct amount of data to allow machinery to understand the identification of something. If too many possible characteristics are entered, the machine will call everything that item. However, if only a few data sets, without much variation, are entered, the machine may completely miss the characteristics that are actually important in identifying the item. I did not realize the broadness of the term machine learning prior to reading this article. I always thought that machine learning is primarily allowing machines to understand visuals and surroundings. However, I learned that all types of data analysis, such as Netflixs recommendations based on previous activity or Medecisions prediction of aggravation due to diabetes or PayPals use of test cases to identify fraud ones, all involve machine learning. I find it interesting that artificial intelligence spurred this development. While the need of data increases, management becomes more difficult- therefore, automation is crucial. I learned that automation is different from most of the current trends in Software Development as automation does not build from previous data. It essentially just saves manual labor by identifying cases and running algorithms. I did not know that automation played a role in standardizing the world of information technology. While I understand that this is crucial due to the scope of technology and how spread out developers are, I do not understand how automation plays a role in this. I think I may be understanding standardizing from an incorrect context or missing a key aspect in automation. It just does not make sense to me how technology that simply evades manual labor by running algorithms depending on the situation can increase the standardization of coding. I think the author may be trying to suggest that automation itself is a standard practice or that the response is standardized if the machine sends the response. The author additionally asserts that automation must be done systematically rather than occasionally; I do not understand this either. Using my intuition, I would think that automating whenever new data arrives makes sense- so automation would be a continuous process. This means that results would come soon after the data is received by the system. However, I am pretty sure that my reasoning does not account for a variety of factors. After reading this article, I realized that I do not understand automation- I think I will need to find an article about just automation for a future research assessment and maybe ask questions about automation during interviews. Agile Methodology is a business-driven principle, so if I work for a software business, as I am planning to, it will be important for me to know. I always thought the main aspect of agile development was releasing small bits of code at a time as to ensure that updates word and can be utilized. However, this article taught me that agile development allows markets, which are now transforming at a faster rate, to cater to the demands of customers. These demands also have a shorter time frame. I learned that the main reason for agile development is to cater to the customers demands in a timely manner. Additionally, this article reinforced my understanding that agile development makes it easier to fix errors as it is done as you go. I did not know that this is a controversial issue and that some say that agile development lacks proper administration. Everyone I have talked to and all the articles I have read have positive disposition towards agile development, so agile developments flaws were new to me. I did not know that decentralized teams were key to software development within the office. I always thought that centralized teams would promote cooperation and faster application development. Additionally, I have read in previous research that software developers have to connect with others. After reading this article, I understand exactly why decentralized teams tend to do better. It makes sense that individual members would have better sense of personal responsibility and it would be clearer to the manager who accomplished what. I do not understand what peer-based rational control factors are. I did not even consider all the security aspects related to sharing work that software developers have to deal with. Now I know that when I am employed, I should ensure to understand business protocol relating to sharing and cooperating on projects. Overall, I believe this article was very useful. I now have a basic understanding of the principles important in software development today and learned a lot about what to expect when I am employed. After reading this article, I am inspired to read other articles that deal with these topics in order to deepen my understanding. (Annotated article below)