Sunday, April 29, 2018

Ride Share - Sprint 5

With our project turned around and an excellent presentation at the end of last sprint, the primary goal of the entire team this sprint was to manage risk and to prepare for a final presentation with the client, while freezing our product on the production server, only making minor polish and bug-fixing tweaks on the development server.
Our back end developer worried about all the final touches to the code itself, while our other member and I worked on preparing the presentation and final documentation. As far as the presentation goes, everything advanced smoothly with preparing that, however there were some concerns going into the deployment documentation to be passed off to the client, primarily in that deployment was previously handled by another team member. Between that and my own technical limitations on my end, it left me concerned. As I write this I am actually looking to finish up our deployment documentation, however, I am looking to communicate with our back end team member to help clear up any confusion in that regard.
These last couple of sprints have been a tight squeeze and this is no exception. And a lot of the issues we've had later on might not have been quite as bad if our team had not ran into so many issues early on. I know those kinds of things can not always be predicted and prevented, but this has shown me how important it is to make sure your development process has a stable foundation from the very beginning.

Sunday, April 15, 2018

Ride Share - Sprint 4

The primary concern of our team this sprint was re-stabilizing our group. We had lost two team members, and it was clear that our goals for the rest of this project are, and have been, unrealistic. Over the course of this sprint, we spent time re-evaluating what we'd be able to accomplish for the rest of the course, and re-aligned our goals with the time frame. All extra and unnecessary features have been cut from our project, and we've boiled our goals down to those features that will be absolutely necessary to display primary functionality to the client. Advanced features such as live chat, and advanced route mapping have been scrapped for the time frame of this course, and focus has shifted over to correcting and improving data entry into the database by users, how that information is displayed, and overall user-interface.

As for myself, aside from aiding in the group re-alignment, I've been tasked still with front-end development, and have worked on implementing some neater, more user friendly controls for the pages we will be presenting, replacing basic toggle controls, so that the client will be able to see a more polished overall design for our next showing.

I think a big issue with this sprint specifically, is that progress was heavily stunted due to mistakes made earlier in the development of our project. Our scope had fallen far out of hand, leaving us with a project that needed some serious re-focusing before we could even hope to be prepared for out client. That being said, now that we've taken the time to simplify and re-focus, everyone is more clear on what needs to be accomplished, and I am feeling more confident moving forward.

Sunday, March 25, 2018

Ride Share - Sprint 3

Our team was admittedly pushed quite a ways back for sprint 3. Having made a lot of mistakes early on, we were forced to go back and rethink a lot of our original planning. We worked out our goals with the client and this time, thankfully, moved forward with everyone having a complete understanding of what it was we were expecting to accomplish, and what the client was expecting us to accomplish. Those of us working on the back end made a great amount of progress this sprint getting all of the data models and structure in place needed to get everything linked up to the front end later on, however there were some significant snags the group ran into which significantly slowed down development and required us to push some things back until next sprint.

As for myself, I once again did work on the front end, planning out the initial wireframes, then getting their basic layout put together in the application to have final styling applied later. Unfortunately, due to a snag in back-end development, one of the pages for the application became unresponsive. Time was running short and we were not able to resolve the issue after multiple attempts, so further development on the page had to be pushed back until the conflicting issues were resolved.

All in all, our team did a good job getting development back onto the right track, and at a place where we actually understood what we were trying to accomplish, however, it was apparent come time the client presentation that we still made a major error. We definitely were trying to develop this application with the client in mind this time around, making sure that we had a clear vision agreed upon with them and the group, however, due to the fact that we had little to show at the presentation, and with the issues we were having, it's clear that we made a big mistake by gearing most of our development from the back end forwards, rather than the from the front end and working towards the back end. Clearly if the user interface isn't in place, there's nothing to see, so even if significant progress is made, it makes for a very lackluster showing to clients. I realize at this juncture that our team has made seemingly very similar mistakes over the past two sprints, but I know in my mind that there's difference enough that I've learned two very distinct, important lessons about working with clients.

  1. Always ensure goals are agreed upon with the client and that client expectations are being pursued.
  2. The front end is key to ensuring the client feels confident in the level of progress achieved. Front end first.

Saturday, March 10, 2018

Ride Share - Sprint 2

Over the course of this sprint, our team made a lot of headway establishing a fleshed out ASP.NET code base to work with and build upon in moving on to future sprints. We decided upon and implemented our database to be used by our application, including stored procedures to both write information to, and read from the database. We've also built out all the necessary user models for the application. Deciding on the best method to handle user login and registration, and tracking of user locations, we ended up choosing to integrate Google API which has been largely completed and should be easy to use in future sprints.

As for myself, I implemented the basic views for the application, including links and early design. These will, however, be revised and reworked in future sprints to better match client expectations. I actually found myself short of work during the sprint because of this, and so by request of the group moved my attentions to researching SignalR, which will be used for implementing peer-to-peer in-app communication in future sprints.

Looking back on this sprint as a whole there were a lot of problems with our team that must, and will, be addressed in the future, but there were at least some positives. Despite much of the application requiring to be reworked at this point in time, the vast majority of the code and work we've put in thus far is still very usable and should hopefully make the transition in sprint 3 far less painful. As for those problems, I've let this sprint be a lesson to me from here on out to always keep my client in mind whenever our group is making any decisions. Our group displayed poor communication this sprint, with nearly half of us being absent during our initial meeting with our client, then those who were there failing to properly communicate to those who weren't the client's agreed-upon expectations. It was also clear that none of the members in our team were interested in conflict, which resulted in lop-sided decision making that quickly led the group off track.

To sum up some lessons I've learned here:
  • Always make sure every team member understands the team's goals from the beginning
  • Never be afraid of conflict or disagreements, especially if the team is slowly derailing
  • Never forget the expectations of the client
  • Always keep the client in mind when making decisions
  • The client is always right!
  • Client!

Sunday, February 11, 2018

Sprint 1

     I suppose that thus far this semester, it would be most imperative to discuss my thoughts on the training module as that has taken up the bulk of our time to this point. Despite being one who isn't a huge fan of presentations, I actually quite enjoyed my time on the project, considering it to have been a very informative endeavor, and I found that, if anything, it was very helpful in getting me back into the setting of working as part of a team. 
     As for the lectures and supplemental text, I don't think it would be unfair to say that it has been more difficult to glean the information most important. That is not to say I don't understand the concepts we're covering, but simply to say that I've always been more of an active learner, and I feel that even when succeeding, I have always faced the most struggle when being taught in a passive setting, such as through lecture and reading. It has also been difficult to choose appropriate times for reading outside of work, and I have always found it difficult to strictly focus on educational text, yet I always get lost (in the good sense) in the applications I work on, very focused on everything on my screen, picking up patterns, engaging myself in short bursts of research when I need to figure out how to do something. I suppose I've always felt most comfortable in that environment.
     Finally, despite having only spent one class on it so far, I felt the initial discussion my team had on our term project was very productive, and it gives me high hopes for how our project will develop throughout the semester.