ABSTRACT
Like many software companies, Microsoft has been doing distributed application development for many years. However, recent changes in the market have altered the rules, both in terms of customer expectations and programming models for ubiquitous interconnected smart devices. These changes have provoked two dramatic shifts in the way we develop software. The first is the creation and use of the .NET Framework as a simple, secure, and robust platform for device-independent software development, data manipulation, and communications. The second is an agile yet highly disciplined approach to designing, testing, implementing, and verifying our software which presumes all bugs are unacceptable and must be found and fixed early before they impact internal groups, external partners, and eventually our customers. This paper discusses the nature and impact of these two dramatic shifts to the development practices at Microsoft.
- Fowler, Martin, et al. Refactoring: Improving the Design of Existing Code. Addison-Wesley Pub Co, 1999. Google ScholarDigital Library
- Meijer, Erik, and Szyperski, Clemens. Overcoming Independent Extensibility Challenges. Communications of the ACM. Vol. 45, No. 10, pp. 41--44, October 2002. Google ScholarDigital Library
- Newkirk, James, and Vorontsov, Alexei. Test-driven development in Microsoft .NET. Microsoft Press, 2004. Google ScholarDigital Library
- Poppendieck, Mary, and Poppendieck, Tom. Lean Software Development: An Agile Toolkit for Software Development Managers. Addison-Wesley Professional, 2003. Google ScholarDigital Library
- Schwaber, Ken. Agile Project Management with Scrum. Microsoft Press, 2004. Google ScholarDigital Library
Index Terms
- Journey of enlightenment: the evolution of development at Microsoft
Recommendations
Lean Software Development: A Tutorial
“Lean Software Development” has become a popular term over the last few years. This tutorial describes where it comes from, what it means, how it relates to well-known agile development practices, and how it will evolve in the future.
Agile and Kanban in Coordination
AGILE '11: Proceedings of the 2011 Agile ConferenceIterative development and Kanban are not mutually exclusive competing methodologies, in essence they are complementary processes that when used together can facilitate higher performance in large development teams. This paper is a walkthrough of the ...
Adopting to Agile Software Development
Abstract Agile software development can be made successful, but there is no well-defined way how to achieve this. The problem is that the successful adoption of agile methods and practices is a complex process and this process should be customizable for ...
Comments