July 03, 2017

Reflections And Play Store Entry

Hello All

Introduction

This will be our last post for this blog as we come to an end for the course Introduction to Software Engineering for Engineers 2017.

In this blog we will tell you all about the technical challenges we faced during the development of the Activity Monitoring Application, the challenges and benifits we faced working in team during the software development cycle, and how did this course helped us in achaving the goal we sat.

Technical Challenges

~”Smooth Roads Never Make Good Drivers”

Troubles are part and parcel of any endevour you embarck on, this application development was no exception. Right from the begining challenges were pouring upon us. Our team had previous experience of coding but software development was one big package.

Technical challenges were not all about writing code in JAVA and Android Studio but these challenges started when the customer gave us his requirement for the app, it was of atmost significance that we get this requirements right and develop the app which the customer desire.

After gathering the requirements from the customer comes the part where we need to formulate user stories out of it with our techincal acumen and understanding of the subject. Once the requirements were sorted and customer was satisfied with the requirements, the next task was to design the system, which inturn was a very complex process as none of us had any idea how to do it, so we divided the task and completed it within the given time frame. We had no idea about what development strategies are and how to implement it. Then came the part where we need to start writing code and the android platform was totally new for us, none of our team members had any prior experience of developing an app on Android. So the major challenge was to understand the android eco-system and work around it. We as a team have never worked on JAVA a programming language for creating android application. We started with making ourselves familiar with the Android Studio which is a workbench and has all the tools that one will ever need for creating an android application. Understanding the Android studio was as important as development itself because you can not drive a car without the knowledge of the transmission and gear shifting unless ofcourse it has an automatic transmission which is not possible in software development.

Before working on code we have to device a strategy for coding conventions and work accordingly. After we were confident enough with android studio we started developing the application. Starting with implementing a Hello World! program a steping stone in learning any programming language. As soon as we were confident enough, we started developing the Interface and started coding the application.

Another problem that we had was android has package name conventions and we didn’t realise that this could cause problems in future when collabrating and putting the code togather, we realized this when we had completed the parts of the app and started putting them togather. The code was really messy, although it is still a little bit messy but we have tried out best to keep the code tidy and easy for some one to read.

There were times that we felt that the decisions we took during development were not upto the mark and we had changes during the process.

Second challenge was GITHUB and Git Pages, some of us had prior experience of Github and version control but creating blog with gitpages was a thing we have never done before. Once we setup the blog page we sat down and discussed that we need a theme change which is simple and different from others so we adjusted our schedules for the theme change and applied the same. We are very happy with the way things turned out for us. We faced challenges, We overcame it and We achieved our goal.

Challenges of working in Team during Project Development

  1. Undefined team roles As a team we all were working together on project. One of the most important roles to define is the team leader because defining this role gives a team the solid foundation and direction, but we haven’t assigned this role to any member so it was more crucial in context of team success where responsibilities are not explicated. Everyone was team leader and for a decision to be enforced all the team members have to be on same boat.

  2. Poor prioritization: Priorities are a common misunderstanding amongst teams. This can stem from miscommunications right when tasks are assigned or incorrect assumptions about the importance of a task. These mistakes can affect the trajectory of the entire project if they’re not addressed right away and this is what we have faced while developing project. During initial phase we haven’t prioritize our tasks to be performed so it made us waste our precious time. Then after we have prioritized our task according to the client’s requirements and everything was back on track.

  3. Miscommunication When collaborating, there is always room for misinterpretation and miscommunication. Without a clear understanding of what’s expected from client, energy is wasted and time is ticking. In the first meeting we thought our project is about tracking all the activities done by an user but later on after another meeting with our client we came to know that we have to develop an application which will monitor the activities performed by an user.

Benefits of working in Team

This software application is one of the most helpful project that can assist a team in being as effective as possible, regardless of the technical specifications and deadlines. While working as a team, efficiency and effectiveness has became our integral part. The entire task was time critical with lots of stuff to implement in practical environment. We are feeling ecstatic as this course has helped us to improve our time management skills. All of us from “The A team” are from various background and have had worked on different projects but developing an android application was another story. Getting started with android studio and Java programming was a big challenge to develop the” Activity Monitoring application”. As a team we had gone through different tutorial and articles to sharp our knowledge of Java coding skills. Eventually we have expanded our horizon to be able to develop any kind of android application with Java Object oriented programming. Here I want to point out one more thing that, being a good coder and writing documentation is not the same thing. Blog articles have been crucial part of this course since the beginning. How can one specify every little thing which has been discussed among team members during meetings and the codes which are written on android studio on various blog articles. Github and Zenhub were totally new for us before getting in to this course. How to manage repositories and work as a team from different areas have been highlights of this course. All these data and application code used is managed on Github.

How did course helped us in reaching the goal?

  • This course is very well structured. It fulfilled all the needs of a beginner in software development. In entire course we have gone through different phases of software development (UML designs, implementation and testing phases).
  • In each phase, we made a report of progress in blogs which is very important to have documentation for our previous work.
  • In this course, Blog played major role in developing application.
  • The content in the lecture for each stage helped us to proceed to next stage of development.
  • The course helped us in developing our programming skills and presentation skills.
  • As we used scrum, it makes us understand how to work separate and integrate our work.
  • Initially, it was a bit difficult using github and ZENhub. But, later we found it was saviour which in turn helps to check with our progress.
  • We can apply this type of agile method in our future which gives better results in any development process.
  • We worked as a team for this project, which improved team management skills and sharing ideas in team.
  • The course took most of the time in semester as we are new to application development. So, we have to learn step by step process (like android studio).

Play Store Entry

Please click here to vist the Play Store To Visit the Respository click here