CHAPTER 6 – SOLVING REALLY BIG PROBLEMS

--Originally published at Newbie Programmer

To solve big problems its not that difficult, because is the same way as the small problems, everything we learned is very helpful, the trick is that we need to look at the big problem and divide this in individual problems that are easier to do (divide and conquer), and we can use the things learned from writing good software.

We already know how to encapsulate to make the application flexible and easier for the changes, the use of requirements that is what my system is supposed to do, then is easy to combine the solution for the individual problems, and the analysis give us a context of what we need to do to supply the real world problems of each part of the big problem.

That’s a summary of what we learned, but now we need to solve the big problem, a good starting point is to make the requirements and the implementation of use cases, we can figure out what the system is suppose to do, and to add to the list the things to do, but we need more information, and how we can have more information about the problem.

To have more information is important to know how the system is like and not like, to help us to know what we need to worry about, to find out more information its important to talk to our customers, and we figure out we need features.

The features are a high-level description of the things that the system needs to do, from one feature you need to create requirements to satisfy this feature, this help you to know a great way to start in big projects.

The use cases and features are good explaining the problem, but we need a big picture view, because a picture is Continue reading "CHAPTER 6 – SOLVING REALLY BIG PROBLEMS"

CHAPTER 4 – THE REAL WORLD

--Originally published at Newbie Programmer

The application is finished, but its time to enter to the real world, you think that everything is good, and the final product is doing well, and you notice that the people are complaining about the product, even though you think that was perfectly done, you forget that the real world has a lot of different scenarios not the only you have in mind, it’s not that you are wrong, the real world is much different than we think when we are developing.

IMG_20161120_114004601_HDR

The real world, and a globe of the real world

The world is not a perfect scenario, we need to think to work in different contexts, and that’s why we need analysis, that help us to figure potential problems and how to solve them before we launch the final product to the real world. To do a good analysis we need to:

  • Identify the problem: Figure potential problems.
  • Plan a solution: Changes that our product is doing.

Use cases, we introduced them in chapter two, and now in this chapter we need them, because the use cases help us to explain to our customers how the application works in the real world. We have already the use cases, we can update them adding the new problems and solutions that we find out in the analysis.

With the new use cases we can figure out what classes, methods and attributes we need in our new version of the product, the textual analysis is an easy way to do this, we need to look at the nouns to create classes and verbs to create the methods of the classes.

But now, we need to design this classes and methods, we can use modeling languages like UML (Unified Modeling Language) that is useful for Object Oriented Analysis.

Screenshot_2018-09-02 Bank Lucidchart(1)

Simple example Continue reading "CHAPTER 4 – THE REAL WORLD"

CHAPTER 3 – Requirements Change

--Originally published at Newbie Programmer

When you think that the work is done, everything is perfect, and you are enjoying your payment check, then the client calls you, because they have a great idea, and you have to help them because the customer is always right, and you have to learn that the world is In constant change, then you have to change your software product, don’t matter if the product is perfect, the change is inevitable, you will discover new problems and better ways to find the solution.

8307719578_8897a33667_z

Photo by Chris Pantazis

This technology was perfect, but the times change

Thanks to the use cases is easier to improve adding the new functions that the customer wants, to rewrite the requirements, and to make paths. The main path that is the normal scenario of the application but is better to have alternate paths to add steps to the normal scenario or provide different ways to reach the ending condition, even tough the ways are different they share the same user goal.

This chapter Is important to learn, sometimes we think that the first version of our product is perfect, but we live in times of change, and the change help us to know problems that we didn’t know we have, or better solutions, if we don’t care about changes we will fail in the future.

CHAPTER TWO: Gathering Requirements

--Originally published at Newbie Programmer

The chapter two is interesting, this continues and introduces new concepts of the first chapter of how to make a good software, because explain the huge importance of the requirements.

The requirements are things that the system, project, app must have to do and work correctly in base of what the client wants. Its important to make a list of the needs, because in the process of making the product the client should have more things in mind of how they can work better with the project, another thing that is important is to write requirements in the view of the customers or users of the application, because your client uses the product different from the final user, for example in the book is the dog, in this phase you have to think beyond the requirements and prevent changes in the process.

Despite of having good requirements its a must to prevent the final product from unusual scenarios, to have a plan when the things goes wrong, in this case we can make alternative paths to solve problems, this scenarios can be explained as use cases, this use case are the different goals, this goals have an initial and final point, because is needed to have a condition that indicates that the goal is completed and the client is satisfied.

All of this concepts are useful for making the code, because you have a guide of how begin with the code and to indicate the different classes and methods you could use and the best or cheaper ways to achieve the use cases.

Semestre i, las secuelas.

--Originally published at Mike's Blog

Este cuarto semestre de universidad, tuvimos la “oportunidad” de cursar la nueva modalidad de semestres del Tec, Semestre I. Oportunidad está entre comillas porque no nos dieron a escoger, y básicamente nos forzaron las materias, pero ese no es el punto. Pese a el muy amargo inicio, y la incertidumbre, este semestre me enseñó muchas cosas. Muchas de estas a la mala, pero son cosas que no se aprenden en un semestre normal.

La primera enseñanza que me deja este semestre es a controlar tus emociones, muchas veces cuando estás trabajando en un proyecto, o en algo, te dejas llevar por tus emociones, y no puedes trabajar al cien. No te puedes concentrar, haces las cosas mal, y terminas trabajando demasiado tiempo a medias. Si las cosas se atoran, o no salen como esperas, tomate un descanso y respira. En nuestra área ingenieril es muy común trabajar en la computadora, el problema con esto es que nuestros “descansos” muchas veces son dejar de trabajar, y meternos a Facebook, o hacer otra cosa, pero sin dejar la computadora. Si necesitas descansar, pon la computadora a un lado y camina, despabílate, come algo, platica con alguien. No te quedes sentado en la computadora, solo te vas a frustrar más y terminar más cansado. Muévete, en esos momentos necesitas que las ideas fluyan.

La segunda enseñanza es aprender a manejar los tiempos. Algo muy difícil de este semestre es la flexibilidad que hay para las fechas de entrega, y la ausencia de fechas límite de entrega. Yo estoy muy acostumbrado a trabajar bajo presión, y muchas veces si no tengo presión, simplemente no me dan ganas de trabajar, y termino procrastinandome de una manera impresionante. En esta clase de proyectos en los que te dan mucha libertad, hay que tener una agenda, y Continue reading "Semestre i, las secuelas."

Semestre I una breve historia

--Originally published at Mike's Blog

Semestre I, un semestre algo polémico en el sistema Tec, ya que las clases cambian de manera radical. Este semestre tuve la “oportunidad” de cursar un semestre en esta modalidad. Nótese las comillas, ya que no tuvimos opción. Después de muchos corajes por la manera en la que nos enteramos del semestre, creo empecé muy emocionado por este semestre, ya que nos iban a poner un reto, e iba a ser como trabajar por un semestre.

Empezamos algo raro, ya que no supimos ni el reto, ni el horario hasta el primer día de clases. Las únicas cosas que sabíamos antes de eso, era que el reto estaba relacionado a Internet de las Cosas, y que el horario iba a ser dinámico. Para los alumnos, y los profesores esto rompía paradigmas, entonces tomó trabajo el acostumbrarse al ritmo de trabajo, y a los diferentes módulos. El primer día hicimos los equipos con los que íbamos, y estamos trabajando todo el semestre. Los profesores nos dieron la opción a nosotros de hacer los equipos, y nuestro equipo fue el más grande, cinco personas; Pietra, Edwing, Diego, Wicho y yo. Al principio estuvo chistoso, ya que yo solo conocía bien a Diego y Edwing, nunca pensé lo bien que me iban a caer los demás.  El trabajo en equipo es normal en el Tec, lo que no es normal, es trabajar en equipo todo el tiempo.

El primer “parcial” fue extremadamente confuso, ya que sabíamos cual era el reto, y sabíamos como resolverlo, pero solo a grandes rasgos, no teníamos idea de como plantear una solución que estuviera bien planteada, y fuera viable, pero medio a ciegas y a como pudimos salimos. Lo que se me hacía más extraño de este parcial, era obviamente el horario cambiante, pero tambien la materia Continue reading "Semestre I una breve historia"

Teoría de jerarquía de necesidades de Maslow

--Originally published at Luis Santana's Blog

Este trabajo me permitió aprender en realidad en que consisten las necesidades de Maslow. Porque escuché muchas veces de este tema pero en ningún lugar pude indagar a fondo en que consisten cada una de las necesidades hasta esta clase.  Gracias a este trabajo me di cuenta cuales son las necesidades que se deben cumplir primero y cuales después, aunque no necesariamente deben cumplirse las de abajo para tener las de arriba pienso yo.

Imagen4.png

El elemento

--Originally published at Luis Santana's Blog

En este trabajo me di cuenta de algo que se llama la zona, la zona es aquel lugar en el que se disfruta tanto lo que se hace, te adentras tanto que parece que lo que te rodea es insignificante, estas tan concentrado y lo disfrutas tanto que nada te puede sacar de tu zona, es muy difícil encontrar esto pero una vez que se alcanza te permite desempeñarte en lo que te dediques de manera completa y al 100%.

 

Imagen3

Agenda

--Originally published at Luis Santana's Blog

Este semestre aprendí a usar mi agenda, me di cuenta que antes era una persona muy desorganizada, que dejaba todo hasta el final y de esa manera no lograba resultados óptimos, muchas veces ni lograba resultados. Pero ahora con mi agenda, puedo organizarme de mejor manera y no descuidar ninguna materia por enfocarme en las demás. Con la agenda, puedo tener una visión mas amplia de los deberes y responsabilidades que tengo para una semana mas adelante o hasta un mes mas adelante. 20180501_143707.jpg