Professional Documents
Culture Documents
Alan Ayoub
CST 438 Software Engineering
David Wisneski
12/16/2016
Assignment #1,4,6. The main objective of our project is to add features to the program that
currently do not exist. Some of the features include showing the letter guessed in the user
interface, adding multiplayer options, incorporating a solver, adding CSS, and determine
the level of difficulty to guess a word. The reason why we chose this project is to ensure
that we follow the agile process and give ourselves manageable tasks that we can work on
and improve upon in a future sprint. We have a short amount of time to accomplish our
Code quality is the estimation of how useful and maintainable the code is. If the code
is not very useful the next day, that means it is low quality. High quality code can be used
across many different products and can also be improved upon like open source. If a
program is 200 lines of code and it accomplish the same exact product in 25 lines of code,
its better to simplify the program and not repeat code. Code must also be well documented
with comments so that anyone can easily understand the purpose of the code. The speed of
the program is also important and we want to make sure that we write code with good
performance in mind. We want to make sure that all variables have meaning and we are
using tabs and spaces properly. To ensure that our team delivered quality code, we have all
communicated with each other and asked for feedback. We remain open to suggestions to
improve code and we ask for help if we are unsure about how to implement a feature.
Team velocity is the number that tells us how productive our team is. We can
determine the team velocity by understanding the productivity trend of our team. Our team
Ayoub 2
consists of four team members. Three of us have been actively communicating and figuring
out what tasks we will agree to do and who will take on certain tasks. Once we decide on
the tasks, we will give each task a point rating from one to eight depending on how easy or
difficult the task is. Based on our productivity week to week, we earn a score based on the
point system. After about three different iterations, we can determine the team velocity
based on the points that were earned in each iteration. For team velocity, we will use the
average score and that score can serve as a predictor for the amount of workload that can
be completed in a future iteration. In our case, we did not really get into a good rhythm to
develop or team velocity. It is still early and we need more iterations to determine a more
accurate team velocity. Team velocity is a great indicator of the work that is likely to be
If we were to start this project all over again, I would recommend that we have a
mandatory meeting and meet with our group on day one to discuss the projects direction
and to assign tasks. Our group has been group, however, we were too generous and relaxed
in an effort to include everyone and the one person that we have been waiting for has
disappeared. Also, after our group meeting we learned that we needed to stress more
importance on testing. Next time around, I would do a better job of emphasizing the testing
phase.
Initially, our team defined the scope of the project through email. After about a
week, we began to have face to face meetings and thats where the real productivity began.
There seemed to be more accountability and urgency for how tasks were handled after we
concluded our meetings. We have used zoom, google hangouts, google group chat, and we
have screen shared often. Overall, our communication has been excellent.
Ayoub 3
Our team meets face to face through zoom or google hangouts every three days. We
Initially, there were problems with other group members. As I mentioned earlier,
one group member disappeared and we collectively wanted to give him an opportunity to
come around. At some point, it didnt make sense to wait around and we all agreed to move
on without him with the possibility of him joining us and taking on tasks created in pivotal
tracker. Also, I am very new to github and I ran into some issues. Luckily, one of my team
members is very familiar with github. This team member spent valuable time with me
making sure I had to the correct settings plugged in. In the end, my issue was resolved
The requirements of our project changed as we realized that there were crucial
tasks that needed to be added. We added the testing cases tasks and databases task at
about the 50% mark. It seems like the agile process has been great for us. We could have
used a waterfall process too or a combination of both agile and the waterfall process. If I
had to choose, I would say that the agile process has been a great fit for our team. We seem
to have found a communication and production style that fits agile well.
Formal process (Formal Methods) are usually used when our program becomes
more complex. The formal process are mathematical based methods that prove the
correctness of a system. Formal methods begin with formal specification and are then
followed with formal verification. In our case, our program was not complex and adding a
formal process would actually be counterproductive since our product is too simple. If we
In the first couple of weeks, we did not address nonfunctional requirements. At the
50% mark, we realized that we needed to address performance, reliability, scalability, and
ease of use. At this point, we have not completed the project so its difficult to determine if
thoroughly comment our code. This way, if a new programmer joins our team, they will be
able to see the code and the documentation in one place. This ensures that our
At this point, we have not have not run into a need to refactor our code.