Posts

Be an answer to someone

Image
Deut 24:17 Help the orphans,  widows and the needy because there's a blessing God has aligned on that. James 1:27 The perfect religion is this helping the needy and widows. Zechariah 7:10 Consider the orphans and widows,  but take concern for them. Psalms 82:3 Defending the orphans and the needy,  deliver them from the hands of the wicked. Ezekiel 22:7 God blamed the Israelites for oppressing the orphans,  needy and widows. Deuteronomy 14:28 God again tells us to store up something so that orphans,  the needy,  widows so that God will bless the works of hands.

Software Development Commandment 8, 9 and 10

Image
8: Design Web-Centric Applications and Reusable Components As in the case of object-oriented programming, not all software architectures are web-centric. With the explosion of the public Internet, corporate intranets, and extranets, however, web-centric software is becoming more universal. This changes not only the way you design software, but also some of the very basic infrastructure requirements. Here are some of the infrastructure components needed for a typical web-centric application: Database server.  A web-centric application typically accesses one or more corporate databases. Unlike a two-tiered client/server application, however, a web-centric application is less likely to access the database directly. More commonly, a web-centric application accesses some sort of middle-tier application server containing the business rules of the application. The middle-tier application then communicates with the database server on behalf of the web-centric client. Such a multi-t...

Commandment 6 and 7

Image
6: Recognize and Retain Your Top Talent Too many software development books concentrate on technology or management practices. At the end of the day, a lot of your success in software development will come down to who you have working for you and how happy they are in their work. You can have the best technology and organize your team in the best way possible, but if you have the wrong team it won't do you much good. Another surprise, given the effort so many organizations put into recruiting talent, is their failure to recognize and  retain  that talent after they join the organization. Organizations that are successful at retaining their top talent start by recognizing their top talent. Plenty of metrics can be gathered around a developer's productivity and quality. Don't forget, however, the more subjective criteria summarized in Table 3. Who are the developers who always show up at other code reviews and make constructive comments? Who is known as the "go to...

commandment 4 and 5 software engineering

Image
4: Invest Up Front in Software Architecture Every morning, some developer goes to work with software requirements for a new application in hand and starts writing code. For those who do so without first developing software architecture, their programs are likely doomed to failure. Invest up front in your software architecture, and you'll be starting down the path to successful software development. Developing architecture for an industrial-strength software system prior to its construction is as essential as having a blueprint for construction of a large building. The architecture becomes the blueprint or model for the design of your software system. We build models of complex systems because we can't comprehend any such system in its entirety. As the complexity of systems increases, so does the importance of good modeling techniques. There are many additional factors to a project's success, but starting with a software architecture backed by rigorous models is one e...

Commandment Three

Image
3: Don't Allow Unwarranted Requirements Changes While user requirements often change, it's the job of the development organization to manage these changes in a controlled fashion and assure that requirements don't change or grow unnecessarily. Pity the poor programmer who started off writing a basic arithmetic calculator, agreed to add square roots and a few other user-requested functions, then a few more, and soon had the task of developing a 65-function scientific calculator. Modifying or adding new requirements can happen for many reasons, not the least of which is the failure to honor commandments 1 and 2. Another reason requirements grow beyond their original scope is simply that software is so easy to change, compared to hardware. No one would purchase a calculator at the local electronics store and then expect the manufacturer to add additional transistors to the calculator chip to implement a new function. But if the calculator is a software application, no o...

Commandment Two

Image
2: Honor Your Users and Communicate with Them Often Software developers don't generally use the applications they create; the intent is for the product to be used by customers, clients, and end users. This implies that someone in your development organization had better spend a lot of time communicating with users so that their requirements can be correctly understood. In the calculator example discussed earlier, a developer may be perfectly happy with the four basic arithmetic functions, while the user would like a square root function or a memory function. What the developer thinks is a complete set of requirements isn't necessarily so. Moving from a trivial to a real-world example, an enterprise-wide IT application may have many types of users, each with his or her own business requirements. Take a payroll system. An employee is one type of user, whose requirements include being paid the correct amount in a timely fashion. A manager wants to be able to administer sa...

Software Engineering Principles in form of Commandments

All great organizations have a vision, a mission, and elemental guidelines for proper behavior that are infused into their people. Perhaps the oldest code of conduct is the Ten Commandments. Since the day Moses stumbled off Mount Sinai, people have applied the idea of condensing their groups' rules into 10 easy-to-remember sentences. Following the lead of Moses, we've distilled the successful software development concept into 10 commandments. If you want to be consistently successful at software development, be sure you always embrace these 10 ideals: Start development with software requirements. Honor your users and communicate with them often. Don't allow unwarranted requirements changes. Invest up front in software architecture. Don't confuse products with standards. Recognize and retain your top talent. Understand object-oriented technology. Design web-centric applications and reusable components. Plan for change. Implement and always ...

Software Development 10 Commandments

Image
This book of the law shall not depart out of thy mind and l aptop ; but thou shalt meditate therein day and night, that thou mayest observe to do according to all that is written therein: for then thou shalt make thy way prosperous, and then thou shalt have good success as a developer . 1.  Thou Shall Ask For Help (  Be ye your senior/junior, don’t be afraid to ask  ). 2. Thou Shall Collaborate/Pair Program Often. 3. Thou Shall Be Empathetic to Other Developers. 4. Thou Shall Have the Knowledge that it’s Okay to not know Everything. 5. Thou Shall Acquire the right tools for day-to-day work and try to gain mastery in it. 6. Thou Shall Be very Confident in thy Abilities. 7. Thou Shall Be Very Formidable in Decision-making (  Your Clients would bow at your feet  ). 8. Remember Version Control and Keep it Holy (  Use Highly effective version control systems for all your projects  ). 9. Thou Shall not be Discouraged by the Successes of ...

Lesson to learn from deadly seven sins in Software development

Image
The 7 deadly sins were a grouping and classification of vices within Christian teachings. Behaviors and habits were classified in here if they directly gave birth to other immoralities. The 7 deadly sins were considered to be the polar opposites of the 7 virtues and were thought to be abuses or excessive versions of one’s natural tendencies. For instance, gluttony is an excess of the desire to eat. In addition to the 7 deadly sins of modern times, there are two other historical deadly sins (Acedia and vainglory) that have analogs in software development that are interesting enough to cover. “These came about in a time where the average person couldn’t read.” This classification system originated with the desert fathers, especially Evagrius Ponticus. They were brought to Europe by John Cassian (who wrote The Institutes), where it became fundamental to Catholic confession practices. The same ideas were later featured in literature like The Parson’s Tale from Chaucer’s Canterbury Tale...