Reflections

02 Jul 2019

What we think is hard to achieve is, sometimes, easily achieved. And sometimes, what we think is easy to achieve takes a whole lot of time. If we turn consciously oblivious of the time taken to achieve something, whatever has been achieved stays a concrete testimonial to the strenuous work that has gone into it. The achievement becomes even more alluring when we start as complete beginners but end up competent enough to hold the weight of our hefty achievement.

On having achieved today what we thought three months back - a humungous task, we stay immensely proud and confident. This is Team DroidSutra welcoming all the readers to our penultimate blog entry.

This blog entry shall take you through all the difficulties we faced while developing the application and how we overcame each of them. It also vividly describes the benefits we enjoyed on having worked as a team in a software development project.

Please read through the following sections.

… 1. Technical challenges we faced and crossed

… 2. The learning curve!

… 3. ISEE SoSe 2019 - Did it meet our needs?


1. Technical challenges we faced and crossed

Challenges were many in number. Right from day one we realized that none of us had any prior experience in Android programming or did any possess a strong background of Java language. We were particularly sure, hence, that there would be a huge lot of constraints in front. Summarizing below the major technical challenges we faced while developing our application.

a. Designing in Constraint Layout was a headache!

Constraint layout gave us a tough time. It was difficult to figure out how to position the design elements in our activity xml file. In spite of investing our time on multiple trials, mostly the design in the emulator came nowhere as expected in the actual device.

b. The EVER SLOW Emulator

Working with emulator was indeed tiring. It was inexpressibly slow and consumed time more than what we took for actually developing the application. All blames to our low spec laptops. But thanks to the android phones which came as a saviour.

c. We use. They depreciate.

While developing the application, we unfortunately or rather oblivious of the fact that APIs get depreciated by Android, made use of a few such APIs and methods. This got us stuck for a while. Placepicker and config.locale were depreciated and we had to check for other feasible options to implement our essential requirements.

d. Location not (.. never) found!

Implementing selection of location via GPS was a heavy task. We took a lot of time realizing how to use Google APIs like Places API and Maps SDK. Integrating them with the application by means of an API key and securing them with SHA1 certificates were equally new and difficult. Finally, we had to look for alternatives available.

e. SELECT, FROM, WHERE of SQLite

We chose SQLite to process our database, as it was visibly inherent to Android. However, the functions in SQLite were initially difficult to formulate especially the ones with multiple conditions in WHERE clause. Also in times of schema change we had to clear the application cache and device data to reflect the changes made in the database.

f. Coding conventions, really?

During the course of implementation we also faced challenges in adhering our code to the agreed convention. Many a time, quality reviews were needed to ensure adherence.

g. GitHub helped. Well, it killed too.

Being completely new to GitHub, we had trouble, at least initially how and when to push, commit and pull. Editing the blogs and reports in markdown files were equally challenging and frustrating. Things got better over the period of time but the initial struggle is worth a mention.


2. The learning curve - Challenges and Benefits from working on a software project as a team

Adarsh finds the organizational issues while working as a team equally intriguing as developing the application itself. He feels splitting work among the team members is a tough task. However, he is happy about the whole knowledge sharing which evolved during the course of this project. Any small piece of work which we did individually was thoroughly discussed and made comprehensible to rest of the team members.

Faizan finds scheduling meetings after checking the convenience of all the members a real hurdle, while working as a team. He is particularly happy about the immense learning curve he has gained on programming basics and technical writing. He also found working with a team offers inexplicable opportunities for social integration. There were random talks about each others culture and language, which at some point triggered much more interest than the whole software we were developing. Wink!

It was Rijin who commented how difficult it was to work with a team in an Agile project if there is no one to take ownership of the scrums and deliverables. He pointed out developing a clear division of work would help in this regard. Being part of this team, Rijin feels he has developed inter-personal skills and is strong enough to apply them in any of his future assignments.

Viju strongly feels being part of an Agile project is itself challenging, given the unpredictability of requirement changes. He, over the course, learned how the developers ought to be more proactive and immensely adaptable throughout the tenure of software development to meet the changing customer requirements. He assumes this project has helped him to attain this essential trait of adapting himself to contribute for the need of the hour.


3. ISEE SoSe 2019 - Did it meet our needs?

Hell yeah!

To comment on this, it would be appropriate to trace back to our first blog entry ‘Team Presentation’ where we briefed what motivated each of us to enrol for this course. The four of us had a genuine, compelling aim of learning the basics of Android programming. This primary aim stands achieved and we are confident to say that as we did the final test run of our application a couple of minutes before this blog was up.

This course helped us attain a thorough idea of what Agile is, how the customer can gruel us and the necessities for being a good software developer even by keeping the language skills apart. The stringent deadlines, customer meetings, weekly reports, blogs, milestone presentations - all of these gave us an wholesome development both in terms of hard and soft skills.


In the next blog entry, we will present to you the complete downloadable application. Keep your timers up for the next 24 hours.

Mit freundlichen Grüßen,

– Team DroidSutra