Home » Agile, Architecture, Headline

Agile Development Using .NET

18 June 2013 7 Comments

BurndownTFS
Software development is important to many of us, so we strive to find better ways to do it.

In the late 20th century we spent a great deal of time and money developing requirements and specifications, thinking through each case and documenting possible uses and outcomes. We would plan a glorious plan before beginning development.

Wait, that never happened.

Mainly we were given a few ideas to go on, then ran to the computer and wrote some code. The Waterfall ideal of design before coding was seldom a reality. Even when there was time to do this, the design had changed so drastically by the time we began coding that it seemed like the time spent planning was wasted. In the end, we would usually have to rewrite it anyway.

Agile development from danhermes

What we learned was this: requirements, specification, coding, and design are not separable. Though they can be distanced for a time by process and habit, we are eventually forced to work in a cyclical fashion, reworking the design as the coding unfolds and changing the requirements as the code revealed truths previously unknown. We learned that software development is not like a track race where the analyst completes their laps then passes the baton to the developer. We learned that development works more like an automobile race, where each of the four tires must rest firmly on the changing terrain at all times: requirements, specifications, design, and code. The user needs must steer the code, but it can also be propelled by the technical design and coding discoveries in directions that may not have been clear by requirements and specifications alone. We learned that we must design and build less code more quickly, with tighter feedback loops with the users and business stakeholders.

Enter Agile: Tighter and faster design and coding cycles with more frequent user feedback.

These new cycles result in new challenges:
1. How to keep a team in sync at high speed?
2. How to keep up with testing?
3. How to implement super-fast releases?
4. How to keep the code from becoming a mess?

Scrum addresses the team problem.    User stories provide a lightweight requirements and specification framework.  User acceptance tests and an on-site customer and product owner offer quick feedback on completed work.  Extreme Programming(XP) offers solutions to cover the other bases:  Test-driven Development(TDD) stepped in to tackle the testing issue, slimming down the QA step and bringing testing responsibilities back to the developer who implements them the way he knows best: in the code. The release problem is resolved by Continuous Integration(CI) allowing code changes to flow into production as quickly as the team can produce them. Then how to avoid sprint-induced spaghetti code? With refactoring, the steady and continuous reorganization of code keeps it pruned, organized, and under control. Design patterns provide direction for developers to follow while they refactor.

Microsoft Visual Studio .NET provides ways to help us do all these things, the agile way.   Here are the .NET options, and a few non-.NET alternatives:

Agile with Scrum

Architecture

Refactoring

Test-driven Development(TDD)

Behavior-driven Development(BDD)

Continuous Integration(CI)

For additional information about the technical aspects of agile using .NET, I recommend these books.

Agile
VS 2012 – TFS
TFS Scrum template)
Backlog Management
Sprint Planning
Agile Task Board
MS 2012 Team Web Access
Powerpoint Storyboarding  ( Premium, Ultimate,Test Professional)
Code Review (Premium, Ultimate)
Architecture
MVC
Refactoring
Refactoring in Visual Studio
ReSharper by JetBrains (plug-in for VS)
Test-driven Development
Unit Test Template
MSTest, NUnit, XUnit
MVC
Behavior-driven Development
SpecFlow, Cuke4Nuke
Cucumber with Ruby
Continuous Integration
CI in TFS
Cruisecontrol.NET

7 Comments »

  • Online asp .net programmer said:

    Hello….Wow great knowledge about agile development using .net, I use .net programming language for many web applications. Thanks for sharing such a good information with us. Great job….

  • Lucian Schultz said:

    .NET is truly a very in demand software development framework. .NET programmers enjoy great demand due to the rise in the need for .NET solutions.

  • Dan Hermes (author) said:

    Thanks Lucian and programmer. Glad you enjoyed it.

  • Arun said:

    good info. thanks author! Application using Microsoft .NET and SQL server is fully capable of providing quality software!

  • IT Shopkeeping – Dan Hermes » Blog Archive » Three Little Books Coming Soon said:

    […] Agile Development in .NET (Spring 2014) How to be agile using .NET? Most Agile methodologies used in .NET shops nationwide are variations of Scrum and Extreme Programming(XP). This booklet covers these tools and techniques: Test-driven Development (TDD), Behavior-driven Development (BDD), Continuous Integration (CI), and Refactoring to Patterns.  slides from talk at .NET Saturday in Bermuda […]

  • raw steroid powders said:

    For organizations which are confirmed selling tainted products via advanced chemical testing procedures, the consequences can vary from seizure of merchandise, cessation of sales, as well as on some occasions, prosecution. Once these companies happen to be selected as problematic by the FDA, the financial losses and attorney fees involved often force closure or bankruptcy. In the priority to protect consumers could be the mission with the FDA, honest organizations who inadvertently purchase tainted ingredients without intent or knowledge at times must close their business from financial losses. This harsh the fact is not the fault of the FDA, but to blame will be the national and international manufacturers tainting their formulas without the retailer knowledge and aiming to expand their market base of outlets worldwide by manufacturing tainted formulas.

Your thoughts?

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.