Architecting .NET apps Flashcards
What is a common problem in technology?
Learn something new and try to use it everywhere as at silver bullet.
What is an expert as per the bridge saying?
Anyone can design a bridge that stands, but it takes an engineer to design a bridge that barely stands. Meaning you need to spend just enough resources to solve the problem.
What are the reasons to select an architecture?
To: save money, effort and time. Instead of experimenting, challenging or improving the resume.
What are the 5 common “thinkings” of the astronaut assessment (head in the cloud)?
- We must use this shining technology for this!
- Reinvent the wheel.
- Never ORM.
- Always code to an interface.
- Use all the patters from the GoF book.
When is it allowed to introduce complexity to the application?
When it is JUSTIFIED. Ultimately we’re paid for solutions, not code.
What is the Parkinson’s Law?
Work expands to fill available time.
What the Parkinson’s law means in the software development when a developer has tight timeline?
He comes with smart and simple solution to meet the deadline. Developers somehow pull it off.
How usually developers proves the Parkinson’s law? Do they made things simpler?
By leveraging the SIMPLICITY: the art of maximizing the amount of work NOT done.
Why agile says about maximizing the work not done? Should we do everything right away?
You can wait as long as possible until the work is absolutely necessary (by then you might get more information that will help solving the problem).
What are the 6 aspects of the “Do the simplest thing that could possibly work”?
Note: This is listed in the extreme programming wiki.
Get done sooner.
Easier to communicate;
Duplication is obvious, so the need for refactoring is clearer;
Tests are easier to write;
Code is easier to performance tune;
You feel less stress, which enhances all of above.
What is the 80/20 rule?
Get 80% of the benefit by doing 20% of the work.
What does the agile manifesto say?
Maximize the work not done;
Welcome changing requirements, even late in development.
What are the 7 key lean principles?
1 - Eliminate waste; 2 - Amplify Learning; 3 - Decide as late as possible; 4 - Deliver as fast as possible; 5 - Empower the team; 6 - Build integrity in; 7 - See the whole.
What are the specifics of lean principles?
1 - Not adding value to the customer is likely waste;
3 - When the choice is unclear, choose the simplest one;
4 - Ideal architecture varies by team;
6 - Automated testing.
What is the main outcome of the minimum viable product?
The validated learning (user’s feedback). Is about answering questions.
What is not part of a minimum viable product?
Usually expensive items, such as Scalability, beauty, code cleanliness, performance, security and if it even actually works.