Wednesday, September 19, 2012

Software Architecture in an agile Context

In agile process models like Scrum there is no role defined for an architect. There’s just the team (besides the Scrum Master and the Product Owner of course) and every team member shall be able to fulfill the different roles as needed. That means that even the system or software architecture is done by the whole team. This works great as long as the team is able to find a consensus on all problems arising from the requirements and concerning the software architecture. But what if the team cannot find a solution or someone disagrees on proposals made by other team members? This blog post introduces the concept of an architecture keeper and tries to define that role with all its rights and responsibilities.

In general it is a very good idea to let the software architecture emerge from the team itself. One of the twelve principles behind the agile manifesto states: “the best architectures, requirements and designs emerge from self-organizing teams”. But why is this a good idea? Think of your first little program you implemented completely for yourself. Weren’t you proud of it? Are you not still proud of ideas you have and solutions you build within complex environments? When everyone in a team is able to contribute to the overall software architecture they have a more positive attitude towards it. Chances are much greater the architecture gets accepted by all developers of the team and they will have more fun using it during development. Furthermore they will more likely stick to the initial architecture and do not want to break boundaries. They will also defend the architecture against others because it’s kind of their baby. So, in general it’s a good idea to have a “team architecture”. But what about the problem mentioned above? What if the team cannot reach a consensus on the architecture? For this case there needs to be an additional role that was not originally defined by Scrum. There are other authors who call that role Architecture Owner. I will not use this term because I think it implies that there is someone who owns the architecture. But as with agile methods were the code is owned by the team rather than a single developer the architecture also belongs to the whole team. So there is just no owner of the architecture. To better reflect the role I’d like to propose the term “Architecture Keeper”. The Keeper takes care of the software architecture and manages all the processes and meetings concerning the architecture. In order to describe the role there are three questions that need to be answered:
1.       Which skills constitute a good Keeper?
2.       How to become an Architecture Keeper?
3.       What are the rights and responsibilities of a Keeper?
Let’s start with the first question. What are the skills you need to bring along to be a good Architecture Keeper. The following listing shows an excerpt of the skills that are crucial for every software architect. Not only the ones who are acting in an agile environment.
Make decisions, document and defend them
It’s important to make decisions but it’s also not easy. As an architect you have to make decisions without knowing all the environmental influences to your system. So some of your decisions may not lead to the optimal solution but that’s okay. Philippe Kruchten said: “The life of a software architect is a long and rapid succession of suboptimal design decisions taken partly in the dark.”  Document and defend your decisions. Architectural decisions mostly have a great impact on a system. These are decisions that cannot easily be undone or reverted. So you shouldn’t change your mind every day. Stick to your decisions, substantiate and explain them.
Review and present your architecture
A good architect will always review his own architectural decisions. A decision that well suited the requirements today may not be valid tomorrow when other requirements come into play. So always take a step back and reflect your architecture and the decisions you made.
Present your architecture. Explain it to the team, to stakeholders and to whoever is interested in it or just affected by it. Choose the correct level of detail and complexity for your presentations according to the audience.
Know the technologies and best practices
As an architect you need to know the technologies, libraries, frameworks and best practices you are working with. It’s not enough to be able to draw nice diagrams with a sophisticated architecture modeling tool. You need to make decisions for the use of certain technologies in your project. So you need to know their advantages and disadvantages. You need to know how to use the technologies and their pitfalls. It helps you in making better or at least not so bad decisions.
Talk to the team, to experts and stakeholders
Communicate! Don’t sit in your ivory tower drawing diagrams and providing them to the masses without comment. Explain your design to the team and demand feedback. Talk to experts if you’re not sure about a certain aspect of your design or a certain technology. Ask stakeholders about their expectations, their requirements and even their hopes and wishes for the new system. Take care of them and listen carefully to their needs.
Keep an eye on the project environment and its influences
Turn your focus not only to the project and the system itself. Look out for environmental changes, for changing influences and of course changing requirements. Try to anticipate them and plan for possible changings of the systems architecture.
For architects acting in an agile environment there are a few more requirements that need to be met:
Communicate even more
Nothing to explain here. Agile is all about people and interactions, so communication is the basis for a successful project.
Be part of the team
I think it is very important for a Scrum team that the Architecture Keeper is part of the team. This increases the feeling that the architecture itself belongs to the team. In addition it facilitates communication and it becomes easier for the keeper to actually take care of the architecture because he can see how it is used and if everybody is still developing inside the defined boundaries.
Design for change
This one is not new. It’s the battle cry of all modern architects around the world. For agile environments sticking to that statement is fundamental. It doesn’t mean that you should design your system to handle any possible speculative requirement. This will lead to complex and over-engineered architectures. Instead it requires the careful handling of dependencies by appropriate separation and modularization of the systems components. So choose an agile architecture and appropriate patterns to achieve the needed level of isolation and try to build your system as flexible and extendable as possible.
Make decisions as late as possible
In an agile process model it is crucial for the success of the project that you are able to defer architecture decisions as much as possible. The more degrees of freedom remain the better you are able to respond to changing requirements or environmental influences. In order to defer decisions you need to find the last responsible moment (LRM). That is the moment where you finally have to make a certain decision because it can no longer be deferred. Communicate these moments to others and explain them why you don’t make the decision right now.
Let’s have a look at the second question: How to become an Architecture Keeper? Scrum Masters can do a certification and can then take a corresponding position in the Scrum team. But what is someone supposed to do to become an Architecture Keeper. Well, I think there are two possibilities besides that you need to bring along the skills mentioned beforehand. First the Keeper may be elected by the team. This is the better approach because it increases the acceptance of the Keeper and her decisions later in the project. This approach works only if the team knows each other or is at least able to estimate who may be suited for that role. When this is not the case the Keeper needs to be appointed by the responsible authority which is the second possibility. This holds the danger that the Keeper and her decisions will not be accepted by the team. A careful selection process is needed in order to select the best person for the job.
The third question is an interesting one. What are the rights and responsibilities of a Keeper? The Keeper may act within the team or even outside of the team.
Within the team the keeper makes decisions concerning the systems architecture if the team is not able to find a common solution to a given problem. This is also a possibility to prevent unnecessary discussions about possible scenarios or solutions that may otherwise take too long. The Keeper plans and conducts meetings that are relevant to architecture, for example modeling meetings at the beginning of a sprint or architecture review meetings at the end of a sprint. He acts as a moderator and supports the team with his technical expertise. He is also responsible for the selection and use of appropriate modeling tools and he takes care about documenting architecture decisions and the architecture itself.
In addition to the Scrum Master the Architecture Keeper is also allowed to act outside of the team. This applies especially for the presentation and defense of the architecture against stakeholders. The Keeper is the first contact for the Product Owner or Scrum Master concerning the feasibility of a certain feature regarding the systems architecture.
The following picture shows all the aspects that were mentioned in the post above concerning the architecture keeper. It shows the different roles of the keeper, her rights and responsibilities and what it takes to be an architecture keeper.

55 comments:

  1. very usefull notes and we need more information on this topic please post updated data . thanks for your post.
    Dot net online tutorials


    ReplyDelete
  2. I read this blog i didn't have any knowledge about this but now i got some knowledge so keep on sharing such kind of an interesting blogs.
    mulesoft training india

    ReplyDelete
  3. The QuickBooks Payroll Support Phone Number telephone number team at site name is held accountable for removing the errors that pop up in this desirable software.

    ReplyDelete
  4. QuickBooks Support offers an extensive financial solution, where it keeps your entire business accounting requirements in one single place. From estimates to bank transfers, invoicing to tracking your expenses and staying on top of bookkeeping with regards to tax time, it really is prepared for many from it at one go. A total package to create you clear of Financial accounting and back office worries any time to make sure you concentrate on your own expert area and yield potential development in business.

    ReplyDelete
  5. The customer care team assists you to in resolving every error that hinders the performance and speed with this work. Many of us studies every issue beforehand and offers you the optimised solution. If you come with any issue which many of us is just not conscious of then it`s not most likely a challenge for the team as it's quick and sharp to locate out from the issue and resolving it straight away. Go right ahead and e mail us anytime at Quickbooks Payroll Support Number.

    ReplyDelete
  6. QuickBooks Support Phone Number, it is a user-friendly accounting software; an easy task to maintain; assisting the business to keep the records of financial transactions, and many other things features.

    ReplyDelete
  7. QuickBooks Enterprise Support Phone Number team can help you deal with most of the issues of QB Enterprise. Now let’s have a look on the industry versions therefore it has furnished us with. You will discover six forms of industry versions that QB Enterprise offers.

    ReplyDelete
  8. You can use QuickBooks to come up with any selection of reports you wish, keeping entries for several sales, banking transactions and plenty of additional. QuickBooks Enterprise Support Phone Number provides a myriad of options and support services for an equivalent.

    ReplyDelete
  9. You will discover basic steps that you need to follow. Firstly, click on file and select the chance Open & Restore. Now open the file and click on Update Company apply for QuickBooks Tech Support Number Version. And now you may be all set.

    ReplyDelete
  10. The support specialist will identify the difficulty. The deep real cause is going to be found out. All the clients are extremely content with us. We have many businessmen who burn up our QuickBooks Support Phone Number service.

    ReplyDelete
  11. Confused with your QuickBooks software or stuck in the middle making invoice ?You can reach us at QuickBooks customer care contact number to achieve us for instant help. You just need to dial Our QuickBooks Support Phone Number to attain our experts.

    ReplyDelete
  12. You could get resolve most of the major issues include installations problem, data access issue, printing related issue, software setup, server not responding error etc with this Quickbooks Support Number.

    ReplyDelete
  13. By using Quickbooks Payroll Customer Support Number, you're able to create employee payment on time. However in any case, you might be facing some problem when making use of QuickBooks payroll such as for instance issue during installation, data integration error, direct deposit issue, file taxes, and paychecks errors, installation or up-gradation or simply just about some other than you don’t panic, we provide quality Quickbooks Support Number. Here are some features handle by our QB online payroll service.

    ReplyDelete
  14. QuickBooks Enterprise by Intuit offers extended properties and functionalities to users. It really is specially developed with regards to wholesale, contract, nonprofit retail, and related industries. QuickBooks Enterprise Help Number is recommended for users to provide you with intuitive accounting strategy to SMEs running enterprise as a type of QuickBooks.

    ReplyDelete
  15. Here we will update you how you'll be able to obtain QuickBooks Enterprise Help Number or simple recommendations for connecting QuickBooks enterprise customer support contact number.

    ReplyDelete
  16. We've been here to improve your understanding in regards to the payroll updates happens in QuickBooks Enterprise Technical Support, desktop, pro, premier 2019 versions.

    ReplyDelete
  17. Creating a set-up checklist for payment both in desktop & online versions is a vital task that needs to be shown to every QuickBooks user. Hope, you liked your internet site. If any method or technology you can not understand, if that's the case your better option is which will make call us at our QuickBooks Payroll SupportQuickBooks Payroll Support Number

    ReplyDelete
  18. For solving this harmful error you can use the customer support services provided by the QuickBooks Customer Service, especially for solving the programing issues like error 6189 that stops.

    ReplyDelete
  19. The payroll world is extremely crucial and important as well. The only that has deficiencies in knowledge battle to experience along with options. You can either perform payment processing in desktop or cloud, both ways are only just a little different but provde the same QuickBooks Payroll Support Number

    ReplyDelete
  20. After knowing the reasons and other information about QuickBooks 2017, now you want to know about the solutions that you can make for solving this crashing problem of QuickBooks Online Tech Support Phone Number. Check the solutions that you can make Reinstall the software:

    ReplyDelete
  21. QuickBooks Enterprise Support Number pro-advisors are certified Pro-advisors’ and has forte in furnishing any kind of technical issues for QuickBooks. They have been expert and certified technicians of these domains like QuickBooks accounting,QuickBooks Payroll, Point of Sales, QuickBooks Merchant Services and Inventory issues to provide 24/7 service to our esteemed customers.

    ReplyDelete
  22. When using QuickBooks if this error is coming that is Fix QuickBooks Error Code 6000-301 then QuickBooks struggles to open the business file due to file unable to save to the local hard disk either hard drive of s server or QB database server manager has already been running. There is another reason as a result of yet another desktop support file is damage and these files are QuickBooks transnational log files, network descriptor files, and data source name.

    ReplyDelete
  23. If you come with any issue which all of us is just not conscious of then it`s not after all a challenge for the team since it's quick and sharp to find from the issue and resolving it right away. Go right ahead and contact us anytime at QuickBooks Payroll Support Phone Number.

    ReplyDelete
  24. Since quantity of issues are enormous on occasion, they may seem very basic to you personally and as a consequence could make you are taking backseat and you may not ask for almost any help. Let’s update you with the undeniable fact that this matter is immensely faced by our customers. Try not to worry after all and e mail us at our QuickBooks Support For Technical Help. Our customer care executives are particularly customer-friendly which makes certain that our customers are pleased about our services.

    ReplyDelete
  25. QuickBooks has made payroll management quite definitely easier for accounting professionals. There are so many individuals who are giving positive feedback if they process payroll either QB desktop and online options. In this internet site, we will allow you to experience to produce and place up the checklist for employee payment. To get more enhanced results and optimized benefits, it is possible to take the help of experts making a call at QuickBooks Desktop Payroll Support Phone Number. Well! If you’re not in a position to customize employee payroll in Quickbooks which makes the list optimally, in QB and QB desktop, then browse the description ahead. Here, you will get the determination of several variety of information that which you’ve close by for assisting the setup process with comfort.

    ReplyDelete
  26. Any QuickBooks user faces any type of identified errors in their daily accounting routine; these errors can differ in one another to a big degree, so our dedicated QuickBook Support Phone Number Service Pro-Advisors are very well equipped with their tools and expertise to provide best possible resolutions in no time to your customers.

    ReplyDelete
  27. You might have trapped into an issue with Intuit product and payroll services? You are prepared to comprehend the best approach to obtain your hands on your client support team. QuickBooks Payroll Support welcome you 24*7 to gain access to the many support services of Intuit products asking for help.

    ReplyDelete
  28. Intuit QuickBooks Support Number, there's absolutely no point in wasting your own time, getting worried when it comes to problem you may be facing and so forth. Just call and you'll get instant rest from the problem brought on by various QuickBooks errors.

    ReplyDelete
  29. This software of QuickBooks Payroll Tech Support Number comes with various versions and sub versions. Online Payroll and Payroll for Desktop may be the two major versions and they're further bifurcated into sub versions.

    ReplyDelete
  30. Thus, for HP laptop overheating fix the consumer has to lighten the load and look for the behavioral changes. They could attempt to clean the fan (it may be done with or without compressed air, vacuum and opening the vents). If the issue doesn’t appear to go then the HP Printer Tech Support Team Number user needs to replace the battery for the system.

    ReplyDelete
  31. Welcome to Printersupporten right place to online help for HP Printer toll free Number USA offered by best technicians to resolve any issues with HP computers, laptops, printers, desktop, and alternative parable devices, etc.

    ReplyDelete
  32. QuickBooks Customer Support Phone Number now have a tendency to rank our customers over something and that we make an effort to offer you a swish accounting and management expertise. you’ll additionally visit our web site to induce to understand additional concerning our code and its own upgrades.

    ReplyDelete
  33. And also, some issues associated with QuickBooks company file, QuickBooks email service and heavy and unexpected QuickBooks Support Number and many other. So if that's the case, you just need the most advanced & highly certified experts, and now we have given you our excellent professional or experts team and additionally they provide you with an instant and incredibly easy solution of your all issues or errors.

    ReplyDelete
  34. A small grouping of execs can handle you manually as a result of they’re absolute to offer the standard services. So, in the event that you face any issue along with your package you don’t need to go anywhere except us. You just need certainly to build a straightforward charge less call on our QuickBooks Tech Support Phone Number variety and rest leave on united states country. No doubt, here you'll find the unmatchable services by our supportive technical workers.

    ReplyDelete
  35. As well as in the upcoming 2019 version of excellent QuickBooks Support accounting software, you will observe plenty of developments and improvements, especially provisioned to simply improve the consumer experience.

    ReplyDelete
  36. wow!!!! its really super helpful for me. didn’t find any other site like this . thanks for sharing such as good knowledgeable blog.
    QuickBooks Payroll Support Phone Number +1-888-833-0058 in USA & Canada

    ReplyDelete

  37. QuickBooks Pro is some type of class accounting software which includes benefited its customers with various accounting services. It includes brought ease for your requirements by enabling some extra ordinary features and also at QuickBooks Tech Support Phone Number it really is simple to seek optimal solutions if any error hinders your work.

    ReplyDelete
  38. Many of us resolves most of the QuickBooks Payroll Support Number issue this type of a fashion that you'll yourself believe that your issue is resolved without you wasting the time into it. We take toll on every issue through the use of our highly trained customer care.

    ReplyDelete
  39. Hope now you realize that how exactly to connect with QuickBooks Enterprise Support Phone Number and QuickBooks enterprise customer service contact number. We have been independent alternative party support company for intuit QuickBooks, we would not have virtually any link with direct QuickBooks, the employment of name Images and logos on website only for reference purposes only.

    ReplyDelete
  40. Along with all our QuickBooks, you'll have the ability to explore the most effective quality solutions. Our trained and well-seasoned professionals are all set to aid through QuickBooks Tech Support Number support you 24 hours a day. Besides, we believe to keep the high level of safety since the questions are mainly handled carefully to keep the pc program.

    ReplyDelete
  41. QuickBooks Enterprise can easily transfer your credit and manage your payroll. This industry version has its own advantages. User can review the client data and manage accounts seamlessly.You can clear all the undeposited funds on a single click on the screen.User can easily change in the files and send them to your clients and can start reconciliation in straight way. This software enables you to manage efficiently the payroll permissions and have the advantage of transferring credits instantly. If you are facing any problem then dial on QuickBooks Enterprise Technical Support Number and get all issues fixed by experienced professions.

    ReplyDelete
  42. The applying has made the accounting easier for all and has helped them in managing and organizing business smartly and effectively. However, after having numerous of positive point, the software is inclined towards errors and bugs. If you are also looking for the solutions associated with the accounting software, we recommend one to contact QuickBooks Premier Support.

    ReplyDelete
  43. Quickbooks as well as result in the list optimally, in QB and QuickBooks Payroll Support Number, then see the description ahead. Here, you're going to get the determination of all of the type of information whatever you’ve as it's needed for assisting the setup process with comfort.

    ReplyDelete
  44. QuickBooks Tech Support Phone Number +1-855-236-7529 is answered by experts who provide their matchless 24*7 support for the errors in QuickBooks & its versions. 1-855-236-7529 provide QuickBooks Support, we provide best technical support QuickBooks. So, Call now to QuickBooks Customer Support Phone Number team. QuickBooks Tech Support Phone Number +1-855-236-7529. In order to experience maximum benefits from the software, give a ring to us on our QuickBooks Tech Support Phone Number +1-855-236-7529. Or contact at QuickBooks Error 1904
    Read more: https://www.techiesupportnumber.com/quickbooks-error-1904/

    ReplyDelete
  45. Payroll and its own attributes demand lots of care and attention. These attributes of every business or organization always need to be run in safe hands. QuickBooks Support Phone Number is software that fulfils the requirement for accuracy, correctness, etc. in Payroll calculation. Our team at QuickBooks Payroll Support Phone Number makes sure to combat the errors that hinder the performance with this software.

    ReplyDelete
  46. I went through this entire blog of yours. I am awestruck by the quality content and relevant information. Keep going and wish success. I have an essential reference for the QuickBooks user suffering from technical problems such as QuickBooks Error -6150, -1006. Now, you can obtain technical help at QuickBooks Support Phone Number 1-833-441-8848.

    ReplyDelete
  47. Nice Blog ! Quickbooks Payroll Support Phone Number is available to meet the needs of quickbooks customers. Users can avail a huge number of benefits on using services by the support team. Dial our toll-free number 1-800-986-4607 now to meet your accounting needs at one place.

    ReplyDelete
  48. Error technically means an estimate difference between the calculated value of a quality and its true value. The numeric value, here, 9999 is the value to identity the error. It holds information, causes as well as the action causing the error. Banking error 9999 may encountered the user while searching online. It hangs, responds slower or even stop working. When trying updating the information, the users get entangled in error. If you would like to learn How To Fix Quickbooks Error 9999 yourself, you can continue reading this blog.

    ReplyDelete
  49. QuickBooks users might face technical issues but they can resolve them shortly, with the help of brilliant executives. They can report all queries and problems to customer care executives. The squad would provide meaningful solutions to its users at QuickBooks Support Phone Number +1-844-232-O2O2.read more:-https://tinyurl.com/y42ywocq
    & visi us:-https://jamessmithsu.wixsite.com/quickbookssupport

    ReplyDelete
  50. Whatever we gathered information from the blogs, we should implement that in practically then only we can understand that exact thing clearly sap bw online training , but it’s no need to do it, because you have explained the concepts very well. It was crystal clear, keep sharing..Sap Fico Tutorial for Beginners

    ReplyDelete
  51. QuickBooks Online Banking users must have an integration with the banking account. This integration can be carried out either by Direct Connect or Web Connect feature. If you would like to learn how to Resolve Quickbooks Error 9999, you can continue reading this blog.

    ReplyDelete
  52. Nice blog!
    Know how to fix QuickBooks error h101.if you are facing any issues then contact on Our toll-free Number 1-844-908-0801.
    Click here to know how to fix QuickBooks error h101
    Dial for any support +1-844-908-0801.

    ReplyDelete
  53. Well explained
    Know How to Delete Deposits in QuickBooks .For effective solution get in touch with Our expert.
    Click Here to Know How to Delete Deposits in QuickBooks
    Dial our tech support Number for any support +1-844-908-0801.

    ReplyDelete
  54. I think this the best blog with the most important information filled in this website
    I Got the more and more ideas from this blog Thank You for letting us to know.
    pythonTraining in chennai

    python Course in chennai

    ReplyDelete