| Tarik さんのプロフィールTour In Developer Lifeブログリストつながり | ヘルプ |
|
|
Software Development, Project Management, Agile, Scrum, XP, SDLC Ahmed El Malt (Project Manager at BlueBridge) has written a very interesting and simple article about Agile Software Development Read The Article Agile+ TOP 25 Security Programming ErrorsSecurity Is Not Fun Any More An Overview of Authentication Mechanisms on WindowsThis article gives overview of various authentication mechanisms for applications on Windows. It also touches upon upcoming technologies like CardSapce and OpenID. It concludes with relating the development of new authentication mechanisms to be evolving with a basic need for SSO. An Overview Of Authentication Mechanism On Windows - Code Project Article New ERA Of Software Development And ApplicationsOk After Having a Big Cup Of Cappuccino And Some Depression , You Might Like To Look Around And Say "What a World" , Software Developers Dramatically Changed This World , Who Would Imagine Few Years Ago That The Day Will Come And You Use Your Pocket PC Or What Ever Mobile Device To Manage Your Business While You Are Thousands Of Miles Away With All These From Push Technology , Mobile Agents , Aglets , ESB And etc , The World Has a New View In Cyber Space Which Already Changed Our Life Software Development Itself Has Changed , Over Years Developers Work Around OOP , Now Architects And Developers Talk About Web Services , SOA (SOA != Web Services), S+S (Software as Service) The Gab Between Desktop Applications And Web Applications In Its Way To Be Eliminated Through RIA (Rich Internet Applications) The World Gone Crazy , You Can Hear Terms like (Agile ,XP , Scrum , TDD , DSL , DDD) Even If Developers Hear About Them The First Time And Want To Know What Are These Terms Technology Like The Giant Ran Way From The Bottle , No One Can Control The Growth If You Can Not Refactor , Learn How ToThe Ability To Debug Or To Refactor Legacy Code Is a Skill , Not All Developers Have , I Think Most Of The Art Of Programming Arises From The Ability To Debug Or To Refactor Legacy Code Debugging And Code Refactor Knowledge Could Be Found In Books But Could Not Be Gained From The Books , Only Practice Will Give You This Skill Many Times I Saw Developers Ran Away From Debugging Or Refactor Code , Preferring Writing Code From Scratch To Ease Their Missions , That Is Right In Cases Like : 1 - Refactor Is Money And Time Cost 2 - You Are Writing New Code 3 - Business Decision (Reason Mentioned From Your Supervisor) The Book Refactoring: Improving the Design of Existing Code Is The Best Book To Learn How To Refactor (My Point Of View) The Last Two Weeks I've Faced Personally Such Problems Which Led Me To This Post , I Might Write About It In More Details Later Migration Success RoadmapWhen It Comes To Application Migration , Everyone Has His Own Attitude , Business Needs and Cost Vs Value Always a Determining Factor , I Liked That Simple Following Image Which Simply Explain Smooth Migration
Team LeadershipAs Also While I Was Surfing The Internet Searching Team Leader Responsibilities I Got Some Useful Links I Hope They Might Help You Determining Team Leader Responsibilities Software Team Turnover: Why Developers Leave (And What You Can Do About It)The Worst Dream You Can Dream Is Your Best Developers Leave The Work For Better Opportunities From The Best I've Read About This Is Software Team Turnover: Why Developers Leave (And What You Can Do About It) Also The Book The 7 Hidden Reasons Employees Leave: How to Recognize the Subtle Signs and Act Before It's Too Late You Can Easily Notice My Interest In The Human Factor In Software Development as Humans Make Software For Humans , As Software Affect Humans also IT People Affect Clients Through Their Work Software Development Top 30 MistakesPreviously Moahammed Hossam Has Published an Entry Top 30 Software Engineering Practice , Yesterday I Found Software Development 30 Mistakes Have Nice Time With Both Entries Interface Vs Class Implementation ProgrammingSijin Joseph Posted an Entry About His Philosophy Coding Classes , From His Experince He Suggested Not To Begin With Interface Prograaming (Related To OOP Not User Interface) , I Do Not Think That Is Right Because Good Class Design Would Lead To Abstraction From Beginning , Designning The Interface Then Implemented It Through a Class Would Make Adding Features Easier , May Be a Disadvantage Appear From The Interface Dependency Specially When Large Projects And Large Team
I Have Not Faced a Case Where I Could Neglect Interface Programming Before Implementation , I Shall Keep Posting About This Subject Later
Big Thanks For Sijin Joseph For The Nice Post List Of Software Companies In Egypt Have CMMIYesterday While I Was Discussing The Number Of Egyptian Software Companies Have CCMI With Our Branch Manager Eng\Alaa Fathy , I Was Thinking They Are Just 5 Companies In Egypt (They Are 6 in Real) , It Was Old Information (I Was Sure Of Three , IBM Egypt - ITSoft - ITWorx ) , Today When I've Made a Quick Search I Got List Of 15 Companies In Egypt Have CMMI With Different Levels , Most Of Companies Got It This Year 2006 , And Because I Didi Not Keep Reading About The New Companies So I Neglected 9 Companies This Year It's Really Promising To Me To Find 15 Of The Big Players In Egypt Have CMMI
Software Testing And The Role Of TestersThe First Time I Heared About Testing Was One Year Ago While I Was Taking My MCAD Coursed Our Instructor Told Me That 3 To 5 Companies In Egypt Have The Job Of Test Engineer That Was All , By The Time I Got Just Few Info About The Role Of Testing , At My First Day At The Work I Was Introduced To The Testers Manager Mr.Hossam El Masry I Was Surprised That Our Small Company Has This Job , I Was Curious To Know More About Testing So I've Read More About It , Asking My Friends Like Eng.Mohammed Hossam at Silverkey Who Gave Me a Good Starter In Unit Testing , By Time I Knew More About Testing And The Role Of People In My Company , They Are Working On Black Box Testing
Most Of The Time I've Read and Searched about Testing and Beeing Testers , I Got Nice Collection Of Knowledge Now About Testing and Looking For More , Today I'd Like To Intoduce You a KickStart
A discussion of relentless testing at Red Gate Software between James Moore (Software Developer) and David Atkinson (Test Manager)
http://en.wikipedia.org/wiki/Software_testing (My First Start Was There)
Driving Up Software Quality : The Role Of The Tester (Helen Joyce - Red Gate Testing Team)
Unit Testing Using NUnit (Arabic Article From Mohammed Hossam Technical Blog)
A Roadmap For Software Test Engineering (For Zero Experience People In Testing)
For Sorrow Rather The Importance Of Testing In SDLC , It Does Not Have The Enough Caring , I Hope By Time IT Companies and Managers Feel Its Importance What Is Wrong When Hiring IT Professionals ?As Most Of You See I Do Care For Human Factor and Management In Software Industry More Than The Technology Itself , as Human Factors Are The People Who Created These Technologies and The People Who Use It
During My Night Tours Surfing The Web I Found Interesting Article About Wrong Things When Hiring IT Professonals , I Fond Many Points Which The Author Suggest They Are Myths Like Specialization and Having Only One Primary Skill
I May Agree With Him With The Specialization as I Talked About The Importance Of Position Variation In My Current Job
But When Talking About One Primary Skill , It Is a Matter Of Thinking About It
I Shall Leave You With The Article
The Price, Cost Value Relationship-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* If I Were To Ask a Room Full Of 1000 Salespeople (I have done it) What Is The Number One Thing Consumers Want Today, What Do You Think Their Answer Would Be?
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Yesterday When I was Thinking About Software Marketing , I've Searched For Some Marketing Advice When I Got Nice Article Talks About Cost and Price ,I've Quoted The Above 2 lines From The Article , I Got New Point Of View On Selling Software After Reading The Article , I Hope It's Useful For Readers
Other Resources About Pricing Software :
Project Management In MicrosoftI Do Always Caring Toward Management and Human Resources , Time Ago I've Got a Book Called "Debugging The Development Process" , Nice Book Talking About Development Process Itself , Steve Maguire (Author) Has Written Some Papers I've Quoted From The Book and I'd Like To Share Them With You
/****************************************************************************************/
A Microsoft project typically has at least three different types of leads working directly on the development of the product:
* Project Lead. The project lead is ultimately responsible for the Code. He or she is also responsible for developing and monitoring the schedule, keeping the project on track, training the Programmers, conducting program reviews for upper management, And so on. The project lead is usually one of the most experienced programmers on the team and will often write code, but only as a secondary activity. * Technical Lead. The technical lead is the programmer on the Team who knows the product's code better than anyone else. The technical lead is responsible for the internal integrity of the product, seeing that all new features are designed with the existing code in mind. He or she is also usually responsible for ensuring that all technical documents for the project are kept up-to-date: file format documents, internal design Documents, and so on. Like the project lead, the technical lead is usually one of the most experienced programmers on the Project. Program Manager. The program manager is responsible for Coordinating product development with marketing, documentation, Testing and product support. In short, the program Manager's job is to see that the product—everything that goes into the box—gets done, and that it gets done at the Level of quality expected by the company. The program manager usually works with the product support team to coordinate External beta releases of the product and works with end Users to see how the product might be improved. Program Managers are often programmers themselves, but they limit their programming to using the product's macro language (if one exists) to write "wizards" and other useful end user macros. More than anyone else, the program manager is responsible for the "vision" of what the product should be. The name "program manager" can be misleading because it implies that the program manager is superior in rank to the project lead, the test lead, the documentation lead, and the marketing lead. In fact, the program manager is at the same level as the other leads. A more appropriate name for The program manager would be "product lead" since the program Manager is responsible for ensuring that all the parts of The product—not just the code—get done on schedule and at An acceptable level of quality. On a typical project, the program manager (or managers if the Project is large enough) works up front with the marketing, development, and product support teams to come up with a list of improvements for the product. After the list of features has been created, the Program manager writes the product specification, which describes in Detail how each feature will appear to the user—providing, for instance, a drawing of a new dialog box with a description of how it will work, or the name of a new macro function with a description of its arguments. As soon as the product spec has been drafted, it is passed out to all of the Teams involved with the product for a thorough review. Once the final Spec has been nailed down, the teams go to work. The program manager meanwhile uses mock-ups of features to Conduct usability studies to be sure that all of the new features are as intuitively easy to use as everybody originally thought they would be. If a feature turns out to be awkward to use, the program manager proposes Changes to the spec. The program manager also works on sample Documents for the product disks and on those end user macros I mentioned earlier. As features are completed, he or she reviews each to ensure that it meets all the quality standards for shipping the product In particular, that the feature is snappy enough on low-end machines. Development continues and eventually reaches a point known as "Visual freeze," meaning that all features that will affect the display have been completed. Once the code reaches the visual freeze point, the User manuals are finalized with screen shots of the program. Consequently, from that point on, developers have to be careful not to affect the display in any way so that the screen shots in the manuals won't differ from what the user sees in the program. The programmers, of course, Would prefer that the screen shots be taken only after all the code is finished, But the manuals need a long lead time and have to be sent to the Printer well before the code will be finalized. In some cases, in order to reach visual freeze on all the features in time for the manuals to be ready At The release date, the programmers will only partially implement the Features—for instance, displaying a nonfunctional dialog good for Screen shots but not much else. The programmers come back to the features and fully implement them later. Once all of the features have been completed—the "code complete" Stage—the programmers put their effort into fixing all outstanding bugs in the bug-list and making any necessary performance improvements.
When the code is finally ready to be shipped, the project lead or the technical Lead creates the "golden master disks." The program manager Sends the golden masters off to manufacturing for duplication, and the Software gets stuffed into the boxes with the manuals, the registration Cards and other goodies. A little bit of shrink-wrap, and the product is Ready for an end user I've left out a lot of details, but this brief overview should be Enough to enable you to put the occasional example in this book that Might otherwise be too Microsoft-specific into context. I should also mention that e-mail is the lifeblood of Microsoft. All Internal business is conducted over e-mail, and, at least in development Circles, you have to have a really good reason to interrupt someone with A telephone call. Most interaction among developers goes on over e-mail and in the numerous hall meetings that spring up spontaneously. This Corporate sensitivity to interruptions accounts for Microsoft's policy of giving everyone a private office with a door. If you're working and you don't want to be interrupted; you simply close your door. Software Development RisksSoftware development fails to deliver, and fails to deliver value. The failure has huge economic and human impact. We need to find a new way to develop software. - Kent Beck.
We May Write An Application Or Working On a Product Then Big OOOPS ,Failure
When I Was Surfing alittle I Got a Good Article About That Issue
*****************************************************************************
Fact: A majority of the software projects commissioned never go into production.
The basic problem with software development is risk- a problem that must be solved if the software development process is to be as reliable and as cost effective as other processes like building a house that we can consider to be reliable. Let us look at some of the risks involved: Schedule Slips: When the delivery date comes, we have to tell the customer that the software isn't ready as yet and that it may take some more time. Project Canceled: The customer decides that it would be better to cancel the project
System Goes Sour: The system does go into production (so far so good), but the defect rate or the cost of making changes is so high that the customer looks for other alternatives. False Feature Rich: The system has great features. Unfortunately these are not the features that the customer finds useful, rather these are the features that the programmer thinks are great features (usually something challenging to accomplish but without any great business value). Programming For The Future: The system is developed to accommodate features that might be requested by the client at a later stage. Also when the client actually requests the feature (if at all) that we developed, technological changes may have made it cheaper to implement. This leads to greater initial costs. Frustrated Programmers: Often software development schedules are fixed by the marketing persons in consultation with the client and the schedule is handed over to the programmers to get done. "Ok, guys get this project up and running, you have four weeks to accomplish this". The problem is not that the programmers were not consulted; the problem is that the estimate is not evenly remotely realistic. Often the estimate is as realistic as Clinton's truthfulness or Iraq's WMD. Being asked to meet such unrealistic schedules lead to frustrated programmers, and frustrated programmer don't write great code.
Now that we have discussed some of the problems that plague the software development process, let us look at ways to reduce these risks. Schedule Slips: We can have small release cycles - a large project is split into manageable small cycles. In each cycle something that is of value to the customer is implemented. The customer is allowed to decide which features are to be implemented first and which all are to be postponed to the end. Thus even if the project is getting late, the most important and valuable parts would be working. Project Canceled: The customer must be involved in each release cycle. This way he would be bale to decide the way the project is headed - can change the direction of project id his business needs change. Also if the project gets late, he will have the most important parts working and so will be less inclined to cancel the project. System Goes Sour: The only solution to this problem is to deliver better quality software. How to deliver better quality software would be discussed in the next article. (It's a topic big enough and important enough to merit an article to itself) False Feature Rich: In each release cycle, the customer be allowed to pick features that are important to him - he will be picking features that are relevant to his business process and not the processes that are a programming challenge. Programming For The Future: Keep it Simple. If a feature is not required now, don't implement it now, rather trust your ability to implement it when required. The advantages of this approach are:
Frustrated Programmers: The primary reason why programmers get frustrated with the project is that they are given an impossible schedule. The schedule can be fixed by the marketing people in consultation with the client and the programmers. The programmer must be allowed to say what he can do in a given interval, and how long will a feature take to implement. The client must be given these details and allowed to choose what he wants to be implemented first. Considering the fact that it is the programmer who has to develop the software and not the marketing guys, his estimate must be respected if schedule slips and poor quality software is to be avoided. Staff Turnover: Staff turnover in itself is not a problem, so long as at least someone is familiar with the parts of the project that needs change. This means that if everyone on a project is familiar with all the aspects of the project, there is a better chance that when the need arises at least someone will be familiar with the parts that need change. Also, if the programmers are not dissatisfied with the project and work conditions, the chances that they will leave are lower. If we accept the fact that these are the risks that we face in developing quality software and running a company that is in the business of developing good quality software, we must address these risks. We need to address a way of developing software that addresses these issues. We need to communicate this new way to developers, managers and customers. We need to change our work culture to reflect these changes.
Thanks To Sajith Madhavan is on the Customer Fulfillment team at Stylus. He lives by the saying "Nothing is too small to know, and nothing too big to attempt."
This Article Is Copied From Stylus Inc Freelancer Vs Full Time JobHow about being freelancer developer or a developer in some company , do you feel difference ?
I've Done Many Freelancer Work For People In Egypt,SA,USA,Canada Using MS Technologies (VB6,VB.NET,ASP and MS SQL Server) ,At The Beginning I Was Afraid To Do Work Or An Application For Any One , Yes I Got Good Knowledge From Reading And Practice But I Did Not Face The Real World Environment At The Time , I Said To My self why not ? go and try at least you shall know if you are good or not
For a Developer It's Difficult To Communicate With Customers As You Always Live With Your Own Thoughts ,Ideas And Your Codes Away From Social Life And Communications
This Is The First Thing I Have Faced As a Freelancer Developer , The Second Was That Freelancer Work Need More knowledge with Different Tools And Technologies , You Have To Exert Much Effort To Be Paid Then
Freelancer Developers Life Is a Risk From My Point Of View , You Can Not Find The Work All The Time You Should Be Caution And Save Some Money For The Non - Work Days
What I Have Learned From Being Freelancer
1 - Do Not Accept Work Unless You Are Qualified For It
2 - Please Advice Your Customer With What Fits His Needs , Some Customers Do Not Know What They Really Need , Others Have Strange Background They Have Heared From Previous Developers Or Somewhere Else
3 - Discuss Your Customer and Explain Him With No Technical Details Your Solution ,Where The Advatages Are
Show Your Customer That You Do Care For Him and For His Success
4 - Be Honest With Your Customer and Do Not Promise With Some Thing You Can Not Do
5 - Have Specification Paper From You Customer And Make Contract (I Just Gave You Advice)
6 - Be Away From (Learn By Doing) or You Shall Waste Your Time
e.g Customer asked you to do write control panel for his web site using perl , and you do have not even deal with perl before , do not try to be smart and say ''i shall learn perl while i am making the work " , you are obligied with time line
7 - Respect Your Customer , Respect Specification ,Respect Time Line and Love your Work
What Led Me To Write This Now , The Reason That I Have An Interview Today In Medium Size Software Comany , They Have Called Me Two Days Ago , I Got Some Questions Through The Phone And Through Chatting , I Have Final Interview Today , So I Would Like To Get Any Advice Or Background How Is The Differnce Between Freelancer World And Regular Company Work ?
|
|
|