Friday 1 February 2013

Engineering with agile - is it possible?

Engineering is the application of scientific, economic, social, and practical knowledge, in order to design, build, and maintain structures, machines, devices, systems, materials and processes. http://en.wikipedia.org/wiki/Engineering


The engineering approach in software development can be seen as a top-down process.
Starting from the problem, first of all it has to be deeply understood by analytics before the solution is proposed by designers. Finally it is implemented as a working thing by programmers in a selected programming language.
A good example of software engineering approach to software development is the Rational Unified Process (RUP). RUP consists of four major steps, that if followed, should result in a software system that fulfills specific technological and market needs. Each step requires the stakeholders to be equipped with specific competences (requirement engineers, analytics, designers, programmer and testers) and tools. RUP was proven to be useful in the development of many complex systems; however it requires the high organizational level of the stakeholders. 
Even if it is not specified explicitly, it is impossible to build a software by using RUP in organizations that do not have strictly defined hierarchy and communication channels of competitions. Moreover RUP requires knowledge management activities. Therefore RUP is primarily used in big corporations that are able to handle such complex hierarchies of stakeholders, and are able to effectively evaluate their outcome. Every RUP based project requires four phases that result in specific artifacts:
1)     Inception (requirement analysis) is used to identify the requirements as well as the scope of the software solution that is going to be released. Tasks should determine the needs or conditions required to meet the expectations, taking into account the potential conflict of requirements of the various stakeholders, such as beneficiaries or users.
2)     Elaboration (architecture and design identification) tries to identify an architecture that has a good chance of working. The architecture is often defined with diagrams, which explore the technical infrastructure, the major business entities and their relationships. The design is derived in a modeling session, in which issues are explored until the team is satisfied that they understand what needs to be delivered.
3)     Construction (software implementation), where the main focus is on the development of components and other features of the system. This is the phase in which the majority of the coding takes place. In larger projects, several construction iterations may be developed in an effort to divide the use cases into manageable segments that produce demonstrable prototypes.
4)     Transition (integration and tests). The primary objective here is to 'transit' the system from development into production, making it available to the end user and understood by him. The activities of this phase include training the end users and maintainers, and beta testing the system to validate it against the end users' expectations. The product is also checked if it satisfies the required quality level.
Critics say that RUP is a ‘high ceremony methodology’ because it demands all the requirements to be collected before starting the design phase. Once they are collected they need to be frozen before starting the development. However; it is very common that the requirements are not known in details or even a customer may require the features that are not needed at the end. Once the RUP process starts, all change requirements are recognized as additional cost. Also the process that once started, requires bureaucracy (every document must be approved in hierarchy of stakeholders), therefore it is considered as a slow and demanding method of software development.

An emergent behavior or emergent property can appear when a number of simple entities (agents) operate in an environment, forming more complex behaviors as a collective. This stream includes: neural networks, genetic programming, expert systems and many others AI activities.
With emergence as a key concept, it is also easier to understand what agile software development methodologies are proposing. If we take a look at a software as a result of work of group of programmers, where each one has a different background in field of software development and different psychological skills, it starts to become clear why it is so difficult to build the system related to the specific needs. Without consistent specification and prior educational task it is even harder. The agile methodology approaches this problem by focusing on building the ground for optimal cooperation between the stakeholders. The success of agile methodologies, that is currently observed, proves that even without specification and education, we can still build effective programs - what a surprise, with smaller budget and in a shorter time. Agile methods break tasks into small increments with minimal planning, and do not directly involve long-term planning. Agile Manifesto reads, in its entirety, as follows:
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
o   Individuals and interactions over processes and tools
o   Working software over comprehensive documentation
o   Customer collaboration over contract negotiation
o   Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
Agile methodologies, even if it is not clearly stated in manifesto, try to develop software products in emergent (self-organizing) way. Each agile programmer can be seen as a process that produces the part of computer system which in the end is a superposition of emergent work of the team. The core idea is the organization of the environment that will allow for emergent work e.g.:
-          Programming is made by  teams of competitive programmers, that handle the knowledge management inside the team
-          The team produces programs as well as other programs that are to prove that the  earlier mentioned ones are working
-          There is an automated process that verifies the core properties of the system of programs that is going to emerge


One can say that the computer language is used to communicate with a computer, however nowadays, computer language is becoming more a communication language between stakeholders involved into software engineering process. Agile methodology these days, tends to be the standard for production of complex systems.
Without a specification it is impossible to build the system in any methodology based on engineering, while agile methods emphasize face-to-face communication over written documents to overcome this limitation.  This observation proves that agile methodologies are focused on psychological aspects rather than formal ones, therefore they are opposite to engeenering (see.
http://en.wikipedia.org/wiki/Engineering). Is it possible to merge them together?

14 comments:

  1. A USA women's golf shirt with agile engineering is achievable. This would be an excellent mix since it would demonstrate that the United States is an excellent location to live and work. It would also be an excellent opportunity to demonstrate your engineering abilities.

    ReplyDelete
  2. I am also an Engineering student but this time I am here to see how they run thai movie, as I have just come out of my exams and enjoying my time for a while.

    ReplyDelete
  3. Leather Jackets are a great way to add a touch of style to your look and they can also keep you warm in cooler weather.

    ReplyDelete
  4. Yes, it is possible to engineer with agile. There are many agile engineering practices that can be used to help create a product or service.
    There are plenty of Essay Help in Los Angeles. You just need to know where to look. Check out your local library or community college for writing resources.

    ReplyDelete
  5. I really appreciate your insights on engineering with agile. It's definitely something that I'm interested in pursuing. I'm currently searching to Take My Chemistry Class For Me and it's been a bit of a challenge, but I'm confident that I can get through it with the help of my classmates and our professor.

    ReplyDelete
  6. Did you know why Chesterfield Traffic Lawyer so important. They provide a legal advice, represent clients in court

    ReplyDelete
  7. Intriguing perspective on integrating Agile into the engineering sphere. Your analogy between traditional engineering practices and Agile reminds me of the evolution of technology tools. For instance, consider the transition from legacy systems that utilized the "scsi cable" to more contemporary, seamless interfaces. Just as the SCSI cable was once a standard, many thought it would remain so indefinitely. However, technology evolved, and we adapted.

    ReplyDelete
  8. Yes, it is absolutely doable and is becoming more popular to integrate Agile approaches into engineering. Within engineering projects, agile promotes cooperation and adaptation through a flexible and iterative methodology. When it comes to adaptability, the RG5-6399-030 - HP Fuser Power Supply PC Board (110V) for Color LaserJet 4600dtn Printer is comparable to the flexible character of today's printing solutions. Adaptability is a key component of both Agile techniques and the RG5-6399-030, allowing engineers and printers to quickly adjust to changing requirements and maintain peak performance throughout the process.

    ReplyDelete
  9. To truly appreciate the significance of the leather bomber jacket mens, it's essential to understand its historical roots. The story of this iconic garment dates back to World War I, where aviators needed practical and warm attire to protect them from the cold and high altitudes. These jackets, designed with snug cuffs and waistbands to keep out the wind, became standard issue for pilots and eventually evolved into the classic leather bomber jacket we know today.

    ReplyDelete
  10. Having a DUI lawyer on your side is crucial if your case proceeds to trial. They are adept at making strong arguments, knowledgeable about courtroom etiquette, and have conducted cross-examinations before. This knowledge could have a big effect on how the jury and judge view your case.Abogado de Fraude de Contratos del Gobierno de Virginia

    ReplyDelete
  11. Still you want to know how to pay Virginia Reckless Driving Penalty, Our skilled team is explain you.

    ReplyDelete
  12. south jersey flsa lawyer
    The article explores the possibility of engineering with agile methodologies, providing a thought-provoking question. It delves into the challenges and benefits of integrating agile practices into engineering processes, offering practical insights. The article includes success stories of companies successfully combining engineering with agile methodologies, providing real-world examples for readers to relate to. Visual aids like flowcharts or diagrams enhance the visual appeal and complement the textual content. The article encourages discussion by inviting readers to share their experiences and opinions on engineering with agile.

    ReplyDelete
  13. Bronx New York Divorce Lawyers


    "Engineering with Agile brings together the precision of structured methodologies with the flexibility to adapt and innovate in real-time. It's not just possible; it's the future of engineering excellence. By embracing Agile principles, teams can iterate rapidly, respond to changing requirements, and deliver value to customers faster than ever before. It's not about rigid processes; it's about empowering teams to collaborate, experiment, and continuously improve. So, yes, engineering with Agile is not only possible but essential for staying competitive and driving innovation in today's dynamic tech landscape."

    ReplyDelete