Ehsan Ghanbari

Experience, DotNet, Solutions

Is there any need to migrate from waterfall to agile?

If you take a deeper look at agile manifesto:

  1. Individuals and interactions over processes and tools
  2. Working software over comprehensive documentation
  3. Customer collaboration over contract negotiation
  4. Responding to change over following a plan

 

You will find out that it's all about a way of good thinking and culture. agile allows for organic changes and improvements along the way, even to project specifications.  agile dictates that communication among the team must occur daily so that everyone is aware of individual progress.

 

What's wrong with the waterfall?

it's completely obvious that the waterfall approach is step by step and each step is predictable, In iterative Waterfall, time is fixed, and scope is broken into segments to fit the allotted time and resources. Each iteration must go through requirements, design, build and test and is executed in a slightly staggered schedule, meaning that each iteration starts just before the previous iteration is complete. The advantage of the iterative waterfall is that it provides clear points to change requirements and receive users’ feedback, reducing re-work and time to delivery. The disadvantage is that it creates more potential points of failure and additional work for the project manager. Alternatively, you could attempt to change your organization to make Agile a better fit. As pointed out earlier, changing an organization’s culture is a difficult project and should be planned carefully.

 

How to Move From Waterfall to Agile

Agile

 

As you can see in the source page of the picture above on here, don't think that agile overrides the waterfall! Agile is a new way of thinking about software development and it's not the best solution for all problems. Changing a methodology must be accompanied by a comprehensive change management and strong leadership as it's not an easy task.

The transition from waterfall to agile software development requires careful planning. The collaboration and flexibility that agile brings can result in a better end product for your client, and a more engaged, harmonious internal team. There are several methods to implement agile like scrum. In the scrum, there are some rules like daily meetings of team members, Poker planning that makes rapid completion of incremental tasks, shortened work cycle called 'Spring' which makes complete smaller increments of a product to get feedbacks frequently consider the project progress very quickly. What I personally interested in about agility is that team members by working together understand each other and their weaknesses, so it makes a kind motivation to facilitate the lacks.



How to make an agile team motivated?

Today I was in the second meeting of Iran agile community, although the discussion was a little bit messy I made some documents around. I'm just going to share what the members talked about and this blog post is the opinions of the members about "How to make an agile team motivated?"

 

What's the motivation?

Motivation is the process that initiates, guides and maintains goal-oriented behaviors. Everybody has a motivation, motivation to do something, to drink a glass of water to reduce thirstily, to create something, to live and blah blah! And also the main idea behind the motivation could be different in every individual, it could be prosperity, healthy, Esteem or something else. As a human being, you should discover your inner needs and requirements to create the motivation. Your motivation could be something different from a team's motivation that you are in it.

 

Where does it come from?

When you need to something you have the motivation to take an action about that and it's all about the necessity and requirement which makes you do something. it could be people and events outside of yourself,  beliefs and views of life, Fear and intimidation. Motivations source also could be nurtured by the prevailing culture.

 

What makes motivation?

Motivation is the core of all action. When you think that you are playing an important role, it could be useful to increase your motivation. By understanding and acting upon the things that motivate you one begins to understand what it means to live a healthy, happy life, energetic and efficient. Motivation is both genetic and learned trait.

 

What's the role of a team on creating the motivation?

An agile team shouldn't have any defined role for members! When you are talking about agility you should implement a cross-functional approach to create the real team working. An agile team has a specific goal but members may follow other goals. A team should create the members at a specific level. It's too important that how team members deal with other, a team member or as a leader Try Not to make somebody discourage if you can't make any kind of prompt!

 

How many Kinds of motivation are there?

The science of motivates trifecta is consist of autonomy, mastery, and purpose

 Autonomy: Everybody and overall every agile team should be independent on choosing methodologies, frameworks, tools and … but with little bit demur! you can't be too independent to disassemble the epidemic of the selected tools and methodologies or customer wants and any kind of Restriction.

Mastery: We want to get better at doing things. A sense of progress, not just in our work, but our capabilities, contributes to our inner drive. Employers should look at calibrating what people must do by looking at what they can do. 

Purpose: Purpose is what gets you out of bed in the morning and into work without groaning and grumbling, or in other word something that you just can’t fake. People who find purpose in their work unlock the highest level of the motivation game. 

 

 

Thanks for your reading and thanks for Iran agile community and members which made my day today, keep your head down son! cheers...



Agile fundamentals and Principles

"Agile software development is a group of software development methods based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams. It promotes adaptive planning, evolutionary development, and delivery, a time-boxed iterative approach, and encourages rapid and flexible response to change. It is a conceptual framework that promotes foreseen interactions throughout the development cycle. The Agile Manifesto introduced the term in 2001." Wikipedia

What is all the fuss about !?

Every product has its own developing process and defiantly software has its own and one of the best new ways for creating software is agile. Agile is Not a framework or methodology, they say! It is a kind of thinking that has some manifesto and principle to reach the best software products. Agile is something like Lean (if you are familiar with) to creating a better product and so-called to create what exactly customer wants. Agile has no any complex concepts to go through or spend more and more time to discover what's going behind, remember that every newly tools, discovers, knowledge's and etc. are for making things simple.

In traditional waterfall project management, everything is by sequence, for example, you create the User interface, database, code and finally test the project to make it prepared to deliver to the customer. but In agile, the customer is in the process of creating the software and everybody like a developer, Product owner, domain expert sees the product result in developing process and unlike waterfall method, it's not only the developer or product manager who can estimate the future of the project. one of the agile purposes is customer satisfaction.

agile could be used in many industries Like lean but it mostly is seen in software development. As I said Agile is unlike waterfall approach, it's based on group working and separation of concern . also there is a Big issue in software developing and it is changing, changes are inevitable in every software project, In the agile approach, Changes are easier because of breaking large scenarios to small. Agile is based on testing the product in the process of developing not at the end by product owner! Agile doesn’t mean without a group of people in communication.

 

Agile Glossary and terminology

There are lots of agile terminology and framework that You can see the list of all them here.

 

As mentioned in the agile manifesto official website, agile is :

  1. Real-Time Planning
  2. Emergent Design
  3. Integrated Testing
  4. Collaborative Discussions
  5. Just-in-Time & Just-Enough Requirements

And also Agile has 12 main and famous principle,  I've listed them below :

  1. Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software.
  2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
  3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
  4. Business people and developers must work together daily throughout the project.
  5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
  6. The most efficient and effective method of conveying information to and within a development team is the face-to-face conversation.
  7. Working software is the primary measure of progress.
  8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  9. Continuous attention to technical excellence and good design enhances agility.
  10. Simplicity — the art of maximizing the amount of work not done — is essential.
  11. The best architectures, requirements, and designs emerge from self-organizing teams.
  12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.

 

take a look at these links for complete information :

  1. http://agilemanifesto.org/
  2. http://martinfowler.com/agile.html
  3. http://www.dummies.com/how-to/content/agile-project-management-for-dummies-cheat-sheet.html 



About Me

Ehsan Ghanbari

Hi! my name is Ehsan. I'm a developer, passionate technologist, and fan of clean code. I'm interested in enterprise and large-scale applications architecture and design patterns and I'm spending a lot of my time on architecture subject. Since 2008, I've been as a developer for companies and organizations and I've been focusing on Microsoft ecosystem all the time. During the&nb Read More

Post Tags
Pending Blog Posts
Strategic design
Factory Pattern
time out pattern in ajax
Selectors in Jquery
using Log4net in asp.net MVC4
How to use PagedList In asp.net MVC
Redis as a cache server
Domain driven design VS model driven architecture
What's the DDD-lite?
Multiple submit buttons in asp.net MVC